our rollout at the first site and then transitioning the other geographic locations. We decided to make our original Scrum Master an "Agile Evangelist" responsible for overseeing the process transition and serving as a mentor to the entire organization. A second, more controversial, decision was around the Scrum Master role for the individual teams. After quite a bit of debate, we decided to transition that role to the development managers.
I know there are Agile purists out there who are cringing, so let me explain. One of the most challenging issues involved in transitioning a traditional software development organization to Agile is to reconcile the reality of existing hierarchies, roles and responsibilities with the "flat" team structure of the Agile approach. An executive has two choices: ignore the cultural implications and just move forward - risking alienation, passive-aggressive behavior, and even the departure of some of the most talented and experienced team members. Or "adapt the rules," and structure a transition that leverages and involves this talent without compromising the basic tenets that Agile promotes. The key is to be creative in how you manage inclusion and the buy-in process that is associated with any change.
The Benefits of Agile in the Enterprise
While there is much that I learned through this effort, I would like to highlight three areas in which Agile can yield benefits I feel have the potential to provide a tremendous advantage in delivering software: its model of self-directing teams, its ability to enable organizations to manage change, and the way it changes interactions with customers.
Self-Directing Teams are Productive Teams
My guess is that many of you may be a little skeptical of the self-directing teams concept. Can you really let the teams decide what they will work on and how they will accomplish it? The answer is yes. In fact, correctly implemented, this is extremely powerful. The power comes from the fact that in this environment team members begin to take a great deal of personal responsibility for their work.
The only way to achieve this is to make a leap and "let go" - you have to allow the teams to truly own their projects. While this underscores the importance of good hiring and it requires a certain level of trust, by giving those closest to the problem the power to act you remove overhead and speed delivery. We have found that shifting to Agile has resulted in improved morale across the organization. Teams have improved their abilities to communicate, coordinate, prioritize and focus. They are constantly evaluating their performance through the Sprint Review process, identifying ways to improve their efficiency, reduce their errors and refine their processes. This has all resulted in considerable increase in the organization's productivity and ability to deliver the "right" product to the customer.
Agility Truly is the Ability to Adapt to Change
Change is the uncontrollable factor that has been the undoing of man a software delivery project. Its inevitable, but something that a traditional, linear delivery process doesn't handle very well. If (when) you discover a new requirement or significantly change an existing one, there is no way to predictably inject change. You must always interrupt the current activities and go "back" to a previous phase.
Agile does away with the traditional phases of delivery. I like to say you are always moving forward in a Scrum environment. In our case, sprints are two to three weeks long. This allows us to inject change in an orderly manner on the two or three week borders without interrupting forward progress on a release. I say "borders" because