Agile training methods are now mainstream. They work! Each Agile practice may not be appropriate for every organization. However, they have all provided real value to many organizations. Some Agile practices can be used by everyone!
Advantage #1: We meet the needs of our customers
Agile projects involve customers regularly, not only at the beginning (for requirements), but also at the end (for acceptance). This customer involvement helps to mitigate one of the biggest problems in software projects: What they accept at the end of a project is different from what they told us at its beginning.
Although good Business Analysis (or requirements analysis) practices can help reduce this risk, they are only a starting point. There is no substitute to showing the customer what we are doing and getting their feedback throughout the project. Agile projects are built on this principle.
This interaction helps customers to see the future product and helps to clarify any misunderstandings. Customers are able to visualize the functionality coming based on the work done so far. This helps them to understand their needs and give them the language to communicate it to developers. This allows them to identify changes in their needs, which we will discuss next with Advantage #2.
All these dynamics work together to allow the customer to direct the project towards producing as much as they need within the constraints of their project. This topic will be addressed in Advantage #3.
Advantage #2: Greater Agility
Between the time we start a project and when it is completed, the world doesn’t stay static. The project may take a few days or several months to complete. However, the world changes. The environment changes.
Agile methods are named “Agile” because they allow for change. The work is done in “iterations” or Sprints of a few weeks. The transition between each iteration involves taking stock of what has changed since the beginning of the iteration and how to adapt.
As we discussed in Advantage 1, customer needs can change. It doesn’t matter if the customer gains a better understanding of their needs or if it results in real changes in their environment. It is counterproductive and wasteful to deliver a product that does not meet the original (or obsolete) needs. The customer is not the only source for change. The situation of the development organization could also change.
Changes in the business environment could impact the value proposition of the project. Management might decide to increase or decrease resources, rearrange priorities, extend the timeline or cancel the project.
Because Agile planning is iterative and incremental, any changes are less disruptive than those on traditional projects. The overall project roadmap can be modified easily as it is based only on rough estimates and has very little detail. Because detailed planning is done in real-time (for a few weeks at most), there will be little to no rework.
The customer is equally involved in adapting to the change regardless of its source. This ensures that agility doesn’t come at the cost of satisfying customers (a point we will discuss next in Advantage #3).
Advantage #3: Realistic Customer Expectations
Customers have little to no idea what it takes for software development. This can lead to many problems and arguments in projects.