Agile is a project management methodology that emphasises continuous delivery through short development cycles known as sprints.
An agile approach supports iterative improvements and rapid responses to any issues, unlike the traditional waterfall methodology takes a sequential attitude to development.
The incremental nature of the Agile project management helps it adapt to changing requirements and user feedback.
It relies on embracing change and close collaboration between cross-functional teams for continuous delivery of new products and services.
The 12 principles of agile methodology
The principle of improving product delivery through short cycles of incremental development has existed for centuries, but the modern foundations of Agile project management lie in a 2001 meeting in a ski resort in Utah.
A collection of programming luminaries had come together under the banner of "The Agile Alliance" to find a new alternative to the traditional rigid, linear form of software development.
They agreed on 12 principles that could guide the new approach and documented them in the Agile Manifesto:
- Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
- Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
- Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
- Business people and developers must work together daily throughout the project.
- Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
- The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
- Working software is the primary measure of progress.
- Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
- Continuous attention to technical excellence and good design enhances agility.
- Simplicity - the art of maximising the amount of work not done - is essential.
- The best architectures, requirements, and designs emerge from self-organising teams.
- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behaviour accordingly.
Pros and cons of Agile project management
The benefits of Agile project management have led it to expand beyond IT into a wide range of other sectors, but there are aspects of the methodology that make it unsuitable in certain situations.
The pros of Agile methodology
- Faster delivery of working products.
- Rapid updates whenever needed.
- Closer collaboration between developers and the rest of the organisation breaks down working silos and encourages collective and individual buy-in through project ownership.
- Higher quality product due to focus on delivering and testing individual iterations.
- Faster detection and resolution of any issues.
- Easier ability to adapt as needs change and new ideas emerge.
- Greater focus on customer needs.
- Continuous improvement as the understanding of the project grows.
- Greater transparency of development processes.
- Provides the flexibility to introduce changes at any stage of the process.
- More efficient use of resources.
The cons of Agile methodology
- Older organisations with long-established methods and team members who prefer a traditional approach may not be ready for dramatic changes to their working methods.
- Documentation can be neglected due to focus on working software.
- Close collaboration can be difficult to implement in teams spread across multiple locations or with stakeholders who are unprepared or willing to commit their time to the project.
- Deadlines can be difficult to implement on large projects due to iterative nature of development.
- Agile methodologies can be hard to get the hang off compared to sequential approaches.
- The nature of iterative development makes it harder to accurately estimate costs and timeframes.
- Those who like to stick to firm plans may find that the final product is very different to what was initially expected.
- Developers have to dedicate a lot of time to the project due to the need for their ongoing and active involvement.
How to implement Agile methodology
An Agile approach has to suit the organisation and its objectives if is to be a success. A CIO needs to understand the business strategy and apply the Agile methodology to these needs and goals.
Flexibility is one of the great strengths of Agile project management, but thorough plans are still required. Anticipating the issues that may arise will help make your preparations effective.
Identify the design requirements of the project through meetings with all the stakeholders. Break the features down into small sections that can be worked on separately and prioritised. A roadmap with schedules for the separate iterations will help track the different elements of the project.
Create and test each feature as it's being designed and delivered, and assess whether the final version fulfils the customer's requirements. Any lessons learned can be incorporated into the project as it develops.
The work continues once the product is deployed. Customers and the project team may continue to discover problems to resolve and improvements that can be made.
Read next: Best open source project management tools