There continues to be a lot of debate on whether Agile is mainstream. According to a Forrester report published in early 2010, while widespread “Agile” use of the iterative software development processes is found, " teams are not adopting scrum, extreme programming, or another specific Agile approach, but are embracing agile as an ethos or philosophy and cherry-picking the best bits from many different process models to develop a formula unique to their own situation." However, the largest category in the survey – and the one that is the most telling is that 30.6% of the respondents said they do not use a formal process methodology. Add to this my own experience implementing Agile, reading the latest Agile literature (e.g., articles, research, books, etc.), and discussing Agile (and Agile implementations) with people across numerous companies in North America, Europe, and Asia, and what this indicates to me is that:
- there is definitely broad awareness of Agile
- there are many companies who are on the Agile bandwagon because it is seems like the right thing to do
- there are many Agile “book-read” folks who have not really experienced an Agile implementation
- there are some teams who are “cherry-picking” parts of Agile process for their own Agile implementation
- there are fewer teams who are applying end-to-end Agile methods and practices across their lifecycle
- the companies that have made the cultural shift to the Agile mindset are still a minority
The question becomes, does this really represent a pervasive enough understanding of Agile and a thorough enough adoption of Agile across the industry for it to be mainstream?
IMHO, there are two indicators of what is meant by mainstream. The first indicator is whether enough people or teams who have implemented Agile can recognize common steps to a successful Agile implementation. The second indicator is whether those that have implemented Agile have actually made the cultural shift (aka, Agile mindset or self-empowered teams, servant-leader mentaility, etc. ) in order to gain the benefits of Agile and to make it mainstream? The focus of this article will tackle the first indicator.
Approaching an Agile Adoption
The focus of this article is to help the reader understand some practical steps in getting Agile up and running successfully by a product team. The goal is not to say that this is the definitive list, but to give those that are planning to adopt Agile some key areas to focus on in their Agile adoption journey.
It is important to think of an Agile adoption effort as a project. I emphasize this because adopting Agile is not not like turning the ignition key to start an engine. Instead it is a cultural change journey with numerous stops along the way. With this in mind, an Agile adoption effort may be divided into three phases: Readiness, Deployment, and Support.
Agile Adoption Roadmap
Throughout each phase, it is very beneficial to on-board an Agile Coach to improve your chances of success. The Agile Coach helps a team adopt and improve Agile methods and practice. They should have years of Agile experience having implemented Agile on several product teams and have participated as a ScrumMaster, Product Owner, or Agile team member on an Agile project. Their hands-on and consulting experience helps the team stay focused on the tasks in the journey to Agile. Let’s examine the tasks within each phase more thoroughly.
The goal of the readiness phase of Agile adoption is to understand the current state of the product team, setting the expectation for change, and to establish an overall strategy and plan for the engagement. This phase typically lasts about one to three months. Tasks to consider getting the product team ready include:
- Determine suitability of product
- While some may state that Agile methods can be applied to all product development, some products have more uncertainty than others and are more likely to benefit more from applying Agile methods and practices. This analysis can help you target the product teams that can benefit most from Agile, so that you get the biggest benefit for the effort (aka, bang for the buck).
- Determine willingness of team
- This involves evaluating the team for their willingness to move to Agile. It is important to understand those teams and team members that are Agile friendly, those that are unfriendly to Agile, and those that are uncertain about the changes it will bring. This analysis allows you to respond accordingly by either improving team member willingness or adjusting the