If your team follows a traditional, legacy approach to software development and wants to convert to an agile approach, how should you go about it? Let’s say you want to convert from a waterfall approach that uses a strict command-and-control model to Scrum that uses a self-organizing team model. How would you get from here to there?
There are many ways to undertake this change. None of them are quick or simple. Small organizations are more likely to succeed than big ones simply because they have less invested in the status quo. Big organizations have much to protect and preserve.
Here are two extreme examples of how you might proceed:
- Dump everything you’re doing now and adopt all new techniques. Don’t consider anything sacred or untouchable. Change everything.
- Change one thing, try it out, let it settle, then change something else. Approach the switch slowly and deliberately.
Which option is better? Which option will produce the better outcome? It’s up to you.
Advantages of #1
- Gets all the pain and discomfort out in the open immediately. Lets everyone know what’s going to change.
- Allows the team to focus in building competence with the new approach. There’s nothing to preserve.
Disadvantages of #1
- Causes maximum disruption which might jeopardize a product or service release.
- People may get confused and frustrated increasing the odds of the new approach failing completely.
Advantages of #2
- Minimizes the pain and discomfort making the transition manageable.
- Allows the team to focus on just one aspect of the new approach at a time building expertise as they go.
Disadvantages of #2
- Spreads out the pain and discomfort over a long period of time creating a difficult work environment.
- Increases the odds that the new approach will never be fully implemented.
If you select #1, be ready for plenty of turmoil. Offer lots of support, training and coaching. Be willing to accept some small failures and some employee turnover.
If you select #2, be vigilant. Keep pushing new ideas and new techniques. Do not accept “good enough”. Keep marching toward the final goal.