When managing your projects, there are various project management methodologies which you can adopt. Agile is one such methodology, used to manage projects effectively. In this article we will learn, what the agile methodology is, where it is used and how it is implemented.
What is Agile Project Management?
Agile project management is an iterative approach to manage and deliver the projects. It is a more flexible and efficient way to manage the projects as compared to the conventional project management methodology. As the name ‘agile’ suggests, ‘able to move quickly or easily’, this methodology enables the project team to adapt faster and easier as compared to other project management methodologies. The project is divided into iterative or agile lifecycles which consist of several iterations as we proceed towards the journey of the project. This methodology is mainly used in software development projects. The benefits are releases throughout the process, rather than at the end pf the project.
In today’s competitive environment, the projects are exposed to more risks as compared to earlier once. The projects today have more uncertainties than a traditional project management methodology can handle. Therefore, it the need of the time to adapt more quickly and easily to the changes so that the project may be delivered successfully.
Agile methodology of project management works on four values and twelve principles to manage projects.
Four Core Values of Agile Methodology
The original agile manifesto declares four core values of agile methodology:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
Agile projects adopt iterative approach through which incremental, frequent and consistent delivery of products is made to the customers. This approach enables delivery of products to the customers without any delay due to changes and evolving requirements.
Agile has a high customer involvements and the progress of the project is reviewed frequently both at the customer as well as project team end. The agile approach is therefore, collaborative and people driven.
The agile projects can be operated on several different frameworks. Some of the most popular frameworks are:
- Extreme Programming
The Twelve Agile Project Management Principles
The agile manifesto stipulates 12 agile principles that has to be followed by all projects using this methodology. These 12 agile principles are as follows:
(1) Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
According to this principle, the project deliverables or outcomes are delivered to customer continuously across regular intervals through the project life cycle, instead of just one project outcome delivery at the completion of the project.
(2) Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
Conventional project management methodologies find it very difficult to introduce change at the later stages of the project lifecycle. Agile methodology ensures that agile projects can adept to any change, no matter at which stage of the project life cycle it is introduced, with minimum delay.
(3) Deliver working software frequently, from a couple of weeks to a couple of months, with a preference for shorter timescales.
The entire project duration of agile projects is broken into smaller project intervals ranging one to four-week long time intervals, and each time interval ends in delivering some product.
(4) Business people and developers must work daily throughout the project.
Agile projects are based on the principle that regular communication with all the stakeholders is critical for the success of the project. The project team and other stakeholders meet daily to monitor the project and resolve issues of the project.
(5) Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
In the agile projects, right people with required skills and capabilities are identified and given appropriate positions and autonomy to do the job. The objective is to motivate the people by giving them best environment and by trusting them, rather than to micromanage them.
(6) The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
Agile methodology believes that the face-to-face conversations are more effective than communicating through e- mails or phones. The project team and other stakeholders are therefore co-located at one place. If this is not possible, then communication is made through video conferencing, rather than using any non-verbal method of communication.
(7) Working software is the primary measure of progress.
Providing complete, working deliverables to the customers is the main aim of agile projects. Any other parameters such as, hours spent, number of manpower deployed are not considered as important as the delivery of the working product.
(8) Agile processes promote sustainable development. The sponsors, developers and users should be able to maintain a constant pace indefinitely.
Agile projects should have a consistent pace for each iterative cycle. The breakdown of agile projects into smaller time periods should eliminate the need for overtime or crashing schedules. The repeated cycles are created in agile projects in such a way that the project team can continuously follow the cycles as long as needed.
(9) Continuous attention to technical excellence and good design enhances agility.
The agile projects work on consistent improvement of the final product over time. Each iteration should improve the previous one and the team should always strive to innovate in each iteration.
(10) Simplicity- the art of maximizing the amount of work not done- is essential.
Simplicity is the core principle of agile methodology. Agile projects aim to get done just enough which is required to meet the end specifications. Any added features, processes, documentation, etc. which do not add value to the customer should be avoided.
(11) The best architectures, requirements, and designs emerge from self- organizing teams.
According to this principle, the team members should be given autonomy and environment to organize and innovate themselves. If the team members will be motivated and skilled then they will deliver best results. The project team should be trusted for their capabilities and should not be micro-managed.
(12) The team discusses how to become more effective at regular intervals, then tunes and adjusts its behavior accordingly.
The project team handling agile projects should assess their capabilities and skills themselves. The team members should strive to improve their skills and capacities consistently. They should meet at regular intervals to discuss their performance and should take necessary actions to improve the performance and outcome.
The History of Agile Project Management
In 2000, a group of 17 software developers including Martin Flower, Jim Highsmith, Jon Kern, Jeff Sutherland, Ken Schwaber, and Bob Martin met in Oregon to discuss how they can shorten the project time to bring new software in the market faster. They realized that this could be made possible in two ways:
(1) Shortening the delay of benefits to users by dividing the project into shorter iterations.
(2) Getting the benefits from users quickly to confirm the usefulness of the product and to improve it accordingly.
The group met again in 2001, and produced the ‘manifesto for agile software development’, commonly known as ‘agile manifesto’.
The agile methodology was initially developed to manage software development projects, but today it is being used to manage projects across various industries and businesses.
The Benefits of Agile Project Management
There are five main benefits of adopting agile methodology:
Agile projects are able to deliver products much faster than conventional projects. Instead of waiting for six to twelve months the customers get workable products in a short span of time, typically ranging from two to four weeks.
Decreased Project Risk
The teams working on agile projects aim to develop products quickly and getting customer feedback early, to minimize the chances of project failing. Breaking the project into small iterations reduce risk as the problems and critical issues may be detected at the early stage. Also it is easier to manage small iterations as compared to the whole project at once. If during an iteration, you find that the project is not workable and you have to cancel it, you’ll have invested less time and money as compared to conventional project.
Better Customer Support
Agile projects support regular interactions with all the stakeholders, including customers. All the stakeholders of the agile project meet frequently, review progress and discusses issues. This enables the agile projects to provide better customer support as compared to the conventional ones.
The Ability to Adept
The agile projects are able to adept the changes faster. Agile methodology welcomes changes, no matter at which stage of the project lifecycle, they are introduced.
Increased Product Quality
Agile projects teams work consistently on improving the quality and product and they always strive for innovations in their products. Frequent review by the project team and regular interactions with all the stakeholders enable agile projects to deliver better quality product to customers.
For Which Type of Projects, the Agile is Not Suitable?
There are some situations where the agile projects may not be beneficial. Some of the similar situations are described below:
The Outcome of the Project is Stable
Agile methodology is suitable for projects being executed in fast changing environment where there is a lot of uncertainty and the outcome of the project is not defined. In there is little uncertainty or less scope for innovation, then the agile methodology may not be beneficial because the iterations or multiple drafts will not be needed in that case.
The Stakeholders Don’t Want Agile
Agile projects require high involvement of stakeholders. If the stakeholders are not willing to devote much time or they feel that reviewing key phases or final delivery is sufficient due to low risk, the agile methodology may not be suitable in that case.
The Company Cannot Support Agile
If the team members of the company are not trained on agile or do not have understanding of agile methodology, the company cannot support daily interactions, the company structure cannot support cross functional teams or the organization require heavy documentation and test reports, then in these situations, agile methodology may not be suitable.
Situations Where the Agile Project Methodology is Suitable
The agile project methodology may be suitable in following circumstances:
- If the project does not have clear scope or requirements at the beginning.
- The projects are related to the industries or organizations having fast changing environment.
- Where heavy involvement of all the stakeholders is needed.
- Organizations looking for process or product improvement and strive for innovations.
- Projects that require frequent feedback from all stakeholders after each iteration.
(1) Agile project management is an iterative approach to manage and deliver the projects.
(2) It is a more flexible and efficient way to manage the projects as compared to the conventional project management methodology.
(3) This methodology enables the project team to adapt faster and easier as compared to other project management methodologies.
(4) Agile methodology of project management works on four values and twelve principles to manage projects.
(5) Agile projects adopt iterative approach through which incremental, frequent and consistent delivery of products is made to the customers.
(6) Agile has a high customer involvements and the progress of the project is reviewed frequently both at the customer as well as project team end.
(7) There are many benefits of agile products including faster delivery, decreased project risk, better customer support, better adaptability and increased product quality.
(8) The agile methodology is suitable for projects under fast changing environment, projects not having clear scope or requirements at the beginning, innovative products, situations where high stockholder involvement and frequent customer feedback is needed and for the organizations looking forward for process and product improvement.
(9) For projects having stable outcome and for organizations which cannot support daily interactions, where heavy documentation is required or do not have understanding of agile, this methodology may not be suitable.