Agile is a project management method that adopts an iterative or incremental approach to completing projects. Agile is very flexible and adaptive, relying on constant feedback from stakeholders and teams in order to steer a project towards a desired goal. It’s frequently compared to waterfall project management, which unlike Agile requires a strict sequence of phases and places heavy emphasis on pre-defined plans and scopes.
Agile is most popular in the software industry, although it has also found homes in information technology, engineering, product development, and other environments that experience many mid-project changes.
What are the Advantages of Agile?
Agile’s biggest strength is its flexibility and preference towards constant, timely feedback. The project is divided into many smaller iterations, each of which can last as short as two weeks.
As a project develops, Agile practitioners request and collect reviews, suggestions, and feedback on the latest iteration and how the next one can build upon it. These in-progress “course corrections” help teams achieve project goals with less backtracking. Waterfall projects, on the other hand, normally have one review phase near the end, which can sometimes be too late to catch any issues—especially ones introduced near the start of the project.
Some Agile methodologies even distribute project management responsibilities across a number of people in the organization, to prevent a project manager from becoming a bottleneck.
What are the Disadvantages of Agile?
To properly implement an Agile methodology, a team must have excellent communication (both within the team and with clients/stakeholders) and a great deal of independence. Unfortunately, many larger organizations don’t provide this sort of environment. The larger groups are either too process-bound or too unwieldy to support an Agile methodology.
Iterative projects have a lot of review phases, to which stakeholders will have to respond in a timely fashion. But if it requires a committee, or if the stakeholder isn’t responsive, then an Agile-style project will never be able to keep pace.
When Should I Use Agile?
Agile is best used for smaller, more focused projects with a faster development cycle. You can still use Agile for larger projects, but they have to be combined with other methodologies in order to make it work (like using Waterfall for the overall project but Agile to execute one of the phases).
Ideally, your team should be small and have a lot of independence on how you manage things, with plenty of timely communication between you and your project sponsor, stakeholders, and whomever else you need to consult for iteration reviews.
Image credit, Flickr, Sebastian Fuss