Think you're organization is ready to transition to an agile software development process? Wondering how to make the move without breaking anything? Not sure how to make the transition stick? Joshua Kerievsky is the man to see.
Kerievsky has spent the past decade helping development organizations to "become" agile. He's the founder of Industrial Logic, specializing in "industrial Extreme Programming," and author of Refactoring to Patterns . Speaking at the recent QCon conference in San Francisco, California, Kerievsky shared his top ten tips for successful agile transitions with attendees. His advice?
1. Begin all transitions with a readiness assessment. "Really look at your organization. Talk to your people. Look for roadblocks. Ask yourself, what is this agile stuff and how does it compare to our old way".
2. Evolve by learning a little of everything. "Don't start with fragile agile, where you have a few pieces of the process, but nothing that is really going to make a difference in your organization".
3. Educate the "organizational antibodies". "After a successful project, they come out of the woodwork to declare that it was a fluke, to squelch the transition. Start with a pilot project, but be sure to take the time to dispel the myths about agile throughout the organization. Work with people who aren't part of that project. These are your future agile communities".
4. Sell the risks of not going agile. "You can't sell, say, pair programming. It's a mistake to try. But you can sell the risks of solo programming. Focusing the risks tends to be a good thing".
5. Business trumps process. "Once I say that to executives, they breathe a sigh of relief. At the end of the day, you've got to be in business. Understand that business concerns sometimes - not all the time - are more important than process concerns".
6. Engage the entire organization. "Talk to the executives and management. Talk to customers, subject matter experts, technical writers. Get everyone involved. Dispel their fears that there's no place for them in this new process".
7. Pick a big important project. "If you start with some big hairy project, there's a good chance you'll automatically cover several of the previous tips".
8. Handle the scaling problems. "This is an issue with agile. E-learning and a kind of serialized knowledge transfer can help".
9. Gather metrics. "This one trips people up. If you don't gather metrics for a living, work with an expert. With documented evidence that agile is making you more productive you'll have a better chance of keeping it in place when there's a management reshuffle".
10. Fail fast. "In this day and age, if you want to be successful in software, you've got to have the ability to fail fast. You want to see problems very quickly. But it's not just about testing. This is an attitude shift. Failure is not a bad thing; it's a way to learn".®