Agile project management is a method of delivering projects in phases. Most experienced software development managers will recognize it as a variant of the iterative software development life cycle, influenced by the Rapid Application Development movement of the 1990’s. Agile started as a grassroots practitioner’s movement, and over the last decade has grown into a well-established alternative to the traditional waterfall software development life cycle.
In 2001, a group of software developers published the “Manifesto for Agile Software Development” to define the approach now known as agile software development. Some of the manifesto’s authors formed the Agile Alliance, a non-profit organization that promotes software development according to the manifesto’s principles. The Agile Manifesto reads, in its entirety, as follows:
We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.
Twelve principles underlie the Agile Manifesto, including:
- Customer satisfaction by rapid delivery of useful software
- Working software is delivered frequently (weeks rather than months)
- Working software is the principal measure of progress
- Even late changes in requirements are welcome
- Close, daily cooperation between businesspeople and developers
- Face-to-face conversation is the best form of communication (co-location)
- Projects are built around motivated individuals, who should be trusted
- Continuous attention to technical excellence and good design
- Self-organizing teams
- Regular adaptation to changing circumstances
After the Agile Manifesto was published, a group of software development project managers met to identify what management principles would be required to achieve the Agile Mindset in project management. In 2005, they published the “Declaration of Interdependence,” which states in part:
- We increase return on investment by making continuous flow of value our focus.
- We deliver reliable results by engaging customers in frequent interactions and shared ownership.
- We expect uncertainty and manage for it through iterations, anticipation and adaptation.
- We unleash creativity and innovation by recognizing that individuals are the ultimate source of value, and creating an environment where they can make a difference.
- We boost performance through group accountability for results and shared responsibility for team effectiveness.
- We improve effectiveness and reliability through situationally specific strategies, processes and practices.
There are a variety of Agile frameworks, including Extreme Programming and Atern, but Scrum is the most popular. Scrum relies on a self-organizing, cross functional team that includes everyone needed to take a feature from idea to implementation, plus a ScrumMaster (think “coach”) and a product owner, who represents the business. Scrum projects are organized as a series of “sprints,” which are iterations planned to be no more than a month long. Iterations are planned on a release burndown chart, which shows the sprints on the horizontal axis and the work remaining on the vertical axis.
At the beginning of each sprint, the team commits to delivering specific features from the project’s product backlog, a prioritized list of user stories (short descriptions of functionality described from the perspective of a user) that represent all functionality desired in the product. During the sprint, the team holds a daily scrum meeting (limited to 15 minutes) where they share what they worked on the prior day, expect to work on that day, and identify any impediments to progress. A sprint burndown chart is used to show work remaining. At the end of the sprint, they deliver a working, tested product integrated into a production system, and conduct a sprint review to demonstrate the new functionality to the product owner and other interested stakeholders. Their feedback typically influences the choices made for the next sprint.
For a brief but comprehensive introduction to Scrum, I recommend Peter Hundermark’s “Do Better Scrum” and “The Scrum Primer” by Pete Deemer, Gabrielle Benefield, Craig Larman and Bas Vodde. For a more comprehensive treatment, check out “The Scrum Papers,” by Scrum co-creators Sutherland and Schwaber. You should also read Pete Deemer’s “Role of the Manager in Scrum.” Several books on agile project management are available in the IT Project Manager Bookstore, including the second edition of Jim Highsmith’s classic “Agile Project Management” as well as books by Keith Richards, John C. Goodpasture, and Kim Pries.