Agile methods for software development are one of the hottest movements in the methodology field. Agile methods provide a means of adapting quickly for teams facing unpredictable or rapidly changing requirements. Agile introduces a structured approach to software development (more structured than most "bandwagon" enthusiasts realize). This structure ensures that the customer gets early and periodic views of their solution for continuous feedback, more assurance that they get a solution that solves their business needs, and a working solution in typically a shorter timeframe. Unfortunately, some folks think Agile is the "wild west" of methodologies and think it provides them license to throw-out all process and documentation. Those who think this are sadly mistaken and give Agile a black eye.
Agile can be very effective under certain circumstances, if people take the process seriously. Barry Boehm and Richard Turner's book, "Balancing Agility and Discipline: A Guide for the Perplexed", offer strong evidence to this effect. However, the teams will have to be appropriately structured to provide agile climate in which it can thrive and benefit the company and businesses they serve.
When viewing the Agile world, it must be recognized that there are different types of folks who are in this space. Each has different motivations. I see four groupings of people who are in the Agile space: the Champion, Work Horse, Bandwagon Enthusiast, and Deceiver. It is important to distinguish between them. In addition, people may move from one group to the next depending on how involved they get in the Agile space.
A champion knows Agile and I mean really knows Agile (e.g., creators, consultants, etc.). They make up a small, yet core, leadership in the Agile space and communicate the real meaning of what Agile is and what it means have it applied. The folks in this group are motivated to establish Agile and build upon it. They are also motivated to educate others on Agile and understand how to change cultures (e.g., a cultural change agent) to accept Agile. Companies have very embedded cultures that are typically slow to change and grasp new ideas so an Agile leader must have the ability to make culture change occur in an adoptable manner. In relation to culture change and adoption, Agile leaders need to:
- Make it very clear in what conditions Agile will work and avoid having folks say that it will work on any project. Communicate where there are challenges and share new ideas in the Agile space. There are some good resources for this including (but not limited too):
- Agile Journal - see http://www.agilejournal.com/
- Agile Advice - see http://www.agileadvice.com/
- Agile Wikipedia - see
- Be able to generate both buy-in to initiate a new Agile culture (usually in pockets within the company) and understand the notions of culture change. Positive cultural change involves understanding enough about the values and beliefs of the leaders of a company in order to improve performance. This requires analysis of the company culture, an ability to understand change patterns within a culture, and the ability to negotiate and facilitate change.
- Avoid condemning other methodologies. An example is the "Waterfall Conference" (see: http://www.waterfall2006.com/ ) which spoofs the waterfall methodology. While I find this funny because I have witnessed problems with using waterfall, many do not. Yes, I know we are a small group and get bashed ourselves because some people see Agile as a fad or a threat to another way of doing business. However, reverse bashing (even if in jest) only creates contempt and may impact acceptance.
The work horse has learned about Agile