Agile Project Management Overview
August 29, 2008
What Is Agile Project Management?
Agile project management is an approach to software development that helps teams react to the instability of that process through incremental, iterative work cycles, called sprints. But prior to examining agile project management in specific terms, let’s back up and consider the dominant project management paradigm that preceded it: waterfall, or traditional sequential development.
Where Did Agile Project Management Come From?
Agile project management is not an extension of waterfall, but a reaction to it and couldn’t have existed without waterfall. In 1970, Dr. Winston Royce presented “Managing the Development of Large Software Systems,” a paper that introduced waterfall to the project management community. Royce stated that building software could be done with an assembly line approach, much like car manufacturing, in which each piece can be added in sequence without revisiting previous phases. This project management approach assumes that every step of the project can — and should — be completed before the step phase can begin. The team collects requirements first, works on architecture and design next, and so on. In this kind of project management, teams responsible for each step seldom — if ever — interact to optimize the release.
With virtually no collaboration taking place over the course of development, waterfall assumes that all variables in a given project can be absolutely identified at the onset. Of course, this is a very dangerous assumption. For example, could a customer identify every requirement of the project prior to any coding being written? If you’re a developer, then you that customers often need to interact with a piece of functioning software before they really know what they want. Many software developers have learned this lesson the hard way. In another common scenario, when a waterfall project wraps, a team that built software according to a customer’s instructions finds out that it’s not actually what the customer wanted or another project has rendered it irrelevant in the marketplace. You’d think organizations would want a project management strategy that doesn’t waste time or money.
Why Agile Project Management?
Agile project management and, in particular, the Scrum paradigm give teams repeated opportunities to evaluate a project’s direction throughout its development. These chances for evaluation are built into agile project management through sprints. At the end of each iteration in Scrum, the team presents a shippable product of software for the Product Owner’s review. This emphasis on a functioning code ensures that the team isn’t impeded by exhaustive requirements-gathering.
Because sprints repeat and the product continually adds increments of functionality, agile project management is described as “iterative” and “incremental.” In waterfall, development teams must work within much more stifling parameters: namely, they have a single chance to get each part of a project right. In agile or Scrum project management, on the other hand, every aspect of development is revisited throughout the lifecycle. If a project gets off-course, it can never head in the wrong direction for longer than a single sprint. Because the development team reassesses the direction of a project regularly, there’s always time to steer toward a new destination.
It’s not hard to see the advantages of this “inspect-and-adapt” approach. Agile project management and Scrum, in particular, cut both development expenses and time to market. Because teams can gather requirements while coding, comprehensive requirements-gathering can’t obstruct the team from making progress. And because Scrum teams develop within the steady cadences of a sprint, stakeholders have ongoing opportunities to evaluate how well the product matches up with the customers’ vision. It could be said that agile project management helps companies build the right products. Instead of blindly pursuing a piece of unwritten, sub-optimized software, agile project management empowers teams to build the best software they can. In the end, Scrum and agile project management protects a product’s vitality in the marketplace and keeps a team’s work from winding up on a shelf, unreleased — an option that makes both stakeholders and developers happy.
posted by: agile project management