Adopt Which Agile Practices?
Now that we know what we want to achieve, we can examine the various practices that we could adopt and decide which of them will be appropriate in our organization. This is a piece of the process that is easy to miss, especially if the mandate is to adopt a specific Agile method (like eXtreme Programming or Scrum). But even if a specific method has been prescribed, it may not make sense to adopt all of the practices of that method. We need to carefully consider the uniqueness of our organization and the projects we undertake to decide which practices will fit in, and will help us in achieving the goals we have identified.
The major areas that we must consider are:
* Our organization’s culture
* Our customers and how they prefer to interact with us
* The types of projects we do
* The tools and processes that we currently use
* The strengths and weaknesses of our software-related staff
* Organizational Culture
All of the Agile methods are built around the concept of a self-directed team. The development team is not told what it will do and when it will be done by. Rather, they are given broad direction about goals, and then they work with the customer to determine how to reach those goals.
If your organizational culture is build on a "Command and Control" style of management, then many of the practices of the Agile methods will represent a serious challenge to the organization. The managers will need to alter their management methods and adopt a more collaborative relationship with the development teams. This is a very difficult transition for many old-school managers to make, and could be a significant stumbling block to the successful adoption of any Agile practices.
Another organizational issue revolves around planning and commitment making. If your organization expects plans and requirements to be finalized up front, and then adhered to throughout the project, then the Agile methods’ incremental planning and requirements definition practices will be problematic. The Agile methods assume that we cannot know all of the things that will come up during the project, so they plan and define requirements at only a high level in the beginning. Then they add detail and revise them incrementally throughout the project, always keeping the project’s broad goals in sight.
Examine the practices that you expect to adopt, and for each, determine the extent to which it can be implemented given the realities of your organization’s culture, and the benefits you anticipate can be reasonably expected to accrue.