Chapter 11 – Agile PM

11.2. Definition

Iterative Process goes through a number of iterations that include design, development and testing.
Figure 11‑1: Iterative Process

As described in chapter 1, Agile Project Management is iterative (repetitive) short processes focused on customer feedback and satisfaction.  In such processes, the customer is allowed to verify that the features are being developed as they want, and suggest improvements. It also offers the customer the opportunity to release the product/service or software earlier than originally planned if the version presented at the end of a cycle is deemed good enough.

This is one of the many reasons Agile is favoured for software development or projects or exploratory projects. Agile products/services can be brought to market quickly. Then, continuously improved with subsequent updates. For many years, some “traditional” and Agile project managers viewed each other with a certain amount of skepticism about the value of each other’s methods. However, in recent years, project managers have seen the value of the techniques used in both of these two “camps” of project management. As a result, it is not unusual to see the design of a building using Agile techniques, and software development projects conducting a traditional risk analysis.

 

In the world of software development, a related methodology, Agile, is becoming increasingly popular. Although Agile had its roots in software development, companies have also expanded its use into a variety of project types, including product development, capital projects, and service projects.

The many flavours of Agile include:

  • Agile Scrum: Designed for completing complex projects, as described on ScrumGuides, Scrum is the most widely used form of Agile. When people talk about Agile, they are usually talking about Scrum.
  • Extreme Programming: Emphasizes short development cycles with frequent releases of software for evaluation, after which a new development cycle begins. You can read more about extreme programming at “Extreme Programming: A Gentle Introduction
  • Rapid Product Development: Emphasizes “simultaneous, coordinated activities by multi-functional teams, striving for smooth transitions between phases for the most rapid time-to-market” (ORC International: Expert Advisory Services, n.d.).

All forms of Agile emphasize an iterative approach (figure 11-1) to product development, with the project specifications evolving along with the customer’s notion of the software requirements. A project starts with a conversation between the developer and the product owner about what the customer wants the software or product/service to do. In Scrum terminology, the customer is the product owner, and the features that the product owner wants  are known as product stories.

With a description of the product stories in hand, the Agile developer gets to work, creating pieces of the project that address individual product stories. After a one- to two-week cycle of development (known in Scrum as a sprint) the developer hands off the new software/piece of the project to the product owner. They can try it out and make suggestions for improvement.

Anyone who has owned a cell phone knows that updates that come out are often full of “bugs.”  Some things just do not work.  The customer is relied upon to send messages to the Troubleshooting blogs or customer service with issues.  The company relies on these customers to share the issues.  They, then, go back to development and attempt to fix the “bugs.”  This is called agile project management.  There are new features added to the phone.  Customers complain about issues.  The development team goes back to a scrum, identifies the issues and fixes them.

The developer then begins another sprint, incorporating those suggestions into a new iteration. After every sprint, the product owner has the chance to redirect the team to new product stories, or to revise the team’s understanding of the existing product stories. Through these repeated interactions, which provide fast, focused feedback, the developer and the product owner zero in on an  application that does what the product owner needs it to do. If time and money are tight, as they often are, the product owner has regular opportunities to make choices about which product stories are the most important, and which can be dispensed with if necessary.

Agile development is essentially a learning process through which the developer and the product owner create a shared understanding of how many features they can create, given the allotted time and money. It’s very much a living order approach to project management, in that the early stages involve some ambiguity and many unknowns. According to Robert Merrill (2017), a Senior Business Analyst at the University of Wisconsin-Madison, and an Agile coach, “Agile is a way to manage projects in the face of unpredictability and constraints—often very rigid time and budget constraints. The fast feedback allows the team to create the best possible software within the given constraints” (Merrill, 2017).