Well in my effort to develop my programming skills I’ve spent a lot of time listening to various software engineering podcasts lately. The most common theme throughout the podcasts has been Agile Development in its various forms. Some dealt strictly with XP and others dealt with Agile in a more general sense.
One person interviewed on two separate podcasts really caught my attention: Alistair Cockburn (pronounced Coe-burn for the non-Scottish). One of the original founders of the Agile movement, and someone who spent several years actively researching software development methodologies, Alistair’s approach was very practical and refreshing.
In an nutshell, he found that anything that made a development team work better together was good and should be kept and anything that inhibited productivity should be tossed out. The humor of this is emphasized in the fact that Alistair is a Ph.D.specializing in methodologies and has developed his own Agile methodology called Crystal Clear.
To be sure, he does identify certain practices that when applied often lead to an increase in productivity. However what separates Alistair from most other Agile methodologists is that he is not rigid in the implementation of his or any other best practices. This was captured in a story he told about how he was brought in to an organization implementing XP and struggling with the weekly meetings. The developers weren’t enjoying them and as a result were not benefiting from them. But since they were a part of XP the meetings kept happening. Once Alistair discovered this, he suggested that they drop the meetings until the next evaluation cycle (3 weeks later) and see if losing the weeklies helped. The solution while simple was revolutionary to the team because it showed them that nothing was set in stone and that they could choose what worked best for them in the situation/project they were working.
When looking at Crystal Clear you get a clear picture of the best practices that Alistair values most:
1. Frequent Delivery
2. Reflective Improvement
3. Osmotic Communication
4. Personal Safety
5. Focus
6. Easy Access to Expert Users
7. A Technical Environment with Automated Tests, Configuration Management, and Frequent Integration
Each of these are relative and flexible in their implementation and need to be defined based on the values of the development team and the requirements of the project but when applied they consistently yield an increase in productivity.
What makes this approach so refreshing is that the ultimate goal of the methodology is to help development teams make better software and enjoy the process. The flexibility on the specific implementation of methods while holding fast to the values that inspired those methods is profound and shows a true grasp of the complexities that each project has the potential to bring to the table. Ultimately it also comes closer to the values espoused by the Agile Manifesto than other methods that are more rigid in their implementation.
Sphere: Related Content
0 Responses to “Exploring the Agile world”
Leave a Reply