Here are 9 steps on how to transition a multisite organisation to agile development
1. Identify Agile coaches for each of the deployment centres
They are going to be the torch bearers of Agile, who will train, coach & be the eyes and ears for your Agile deployment. Pick your Agile coaches who have hands-on experience on what you are developing, who understand the local dynamics of the organisation & most importantly those who can influence their peers
2. Understand the existence of Cross Cultural differences
It may be subtle or more prominent but it is something that you should take care off. Cross cultural differences could be in terms of leadership styles, where some center’s maybe used to only command & control style; if so, you will need to put in more work in allaying the leadership concerns in these sites. Further you need to look for the underlying ‘politics’, within and between the sites & handle them appropriately. A big organisational change such as this will affect status-quo
3. Communication
Agile is all about communication. Communication between people and communication between people and code. You may need to set-up two types of meetings
a. Setup a regular Scrum of Scrum meeting, where the teams discuss project related dependency status – start with weekly once or twice and then increase or reduce based on need
b. Setup a regular Agile transition meeting, where the Agile coaches sync up and discuss issues, learnings & solutions. When you start it off, you may need to meet at least once a week and keep tweaking the agreed process or find new ways to handle program level issues. As you progress across sprints, the need for this meeting becomes less frequent
4. Architecture
An architecture that supports feature level ownership cannot be emphasised more. Such an architecture or design will help you vertically slice the product, where the distance between developers & users is at the minimum. However for legacy products this may not be always possible, in such cases evaluate possibilities of complete ownership of a set of features by one centre & another set of features by another centre. You will need a mature agile team & agile practices to have features spread across locations, so when you start out new, look out for clear boundaries
5. Slicing PBIs vertically
Get the teams to understand on how to slice the Product Backlog Items vertically. Since progress is measured through working code, PBI slicing is the key to measure progress. If they aren’t sliced properly, early integration of code will not be possible
6. Identify dependency and acceptance test cases
Identify dependency between PBIs and share acceptance test cases for cross-site dependencies. The acceptance test cases will ensure that the team delivering the dependency is clearly aware of what is expected of their delivery. This will save a lot of effort & bugs for the entire program
7. Single Mainline branch
Work on a single mainline branch where everyone commits code irrespective of the location. The build should always pass on this integrated branch. If your Continuous Integration system isn’t mature enough or doesn’t have automated testing, you can temporarily have a team level scrum branch for each team, which is the mirror of the Main line during start of every sprint. Each of the scrum team develops on this branch and merges the changes on the Mainline, after testing in the latest context, at least once at the end of the Sprint. This though not an optimal approach, will initially help the team to maintain the integrity of the Mainline thus not impacting other teams
8. Joint Sprint Reviews
Have joint sprint reviews. Plan it on the last day of the Sprint & choose a convenient time considering the time difference. During the sprint review, each of the scrum teams, across the centre’s will demonstrate their Sprint output from the same Mainline build. This will ensure that the product is continuously maturing, sprint on sprint
9. Tooling
All the above is only possible through proper cross-site unified tooling – for both project, configuration & build management. There are many free tools available on the internet. Choose and deploy them globally