Content assembled by R. Max Wideman, FPMI

Published here April 2018

Introduction | The Waterfall Methodology | The Agile Methodology
Making the Choice

The Agile Methodology

The sequence of the development phases, as shown in Figure 1 earlier, are essentially the same. However, Agile is an iterative, team-based approach to development. This approach emphasizes the rapid delivery of an application in complete functional components. Rather than creating tasks and schedules, all time is "time-boxed" into phases called "sprints." Each sprint has a defined duration (usually in weeks) with a running list of deliverables, planned at the start of the sprint. Deliverables are prioritized by business value as determined by the customer. If all planned work for the sprint cannot be completed, work is reprioritized and the information is used for future sprint planning.

As work is completed, it can be reviewed and evaluated by the project team and customer, through daily builds and end-of-sprint demos. Agile relies on a very high level of customer involvement throughout the project, but especially during these reviews.

Some advantages of the Agile approach:[7]

  • The customer has frequent and early opportunities to see the work being delivered, and to make decisions and changes throughout the development project.
  • The customer gains a strong sense of ownership by working extensively and directly with the project team throughout the project.
  • If time to market for a specific application is a greater concern than releasing a full feature set at initial launch, Agile can more quickly produce a basic version of working software which can be built upon in successive iterations.
  • Development is often more user-focused, likely a result of more and frequent direction from the customer.

Some disadvantages of the Agile approach:

  • The very high degree of customer involvement, while great for the project, may present problems for some customers who simply may not have the experience, time or interest for this type of participation.
  • Agile works best when development team members are fully dedicated to the project.
  • Because Agile focuses on time-boxed delivery and frequent reprioritization, it is possible that some items set for delivery will not be completed within the allotted timeframe. Additional sprints (beyond those initially planned) may be needed, adding to the project cost. In addition, customer involvement often leads to additional features requested throughout the project. Again, this can add to the overall time and cost of the project as compared to its business case.
  • The close working relationships required in an Agile project are more easily managed when the team members are located in the same physical space. This is not always possible, but there are a variety of ways to handle this issue, such as webcams, collaboration tools, etc.
  • The iterative nature of Agile development may lead to a frequent refactoring if the full scope of the system is not considered in the initial architecture and design. Without this refactoring, the system can suffer from a reduction in overall quality. This becomes more pronounced in larger-scale implementations, or with systems that include a high level of integration.
The Waterfall Methodology  The Waterfall Methodology

7. For more Agile Development benefits, please see 8 Benefits of Agile Software Development
 
Home | Issacons | PM Glossary | Papers & Books | Max's Musings
Guest Articles | Contact Info | Search My Site | Site Map | Top of Page