History of Agile Project Management Methodologies
This report will focus on agile project management. The methodology uses short development cycles. The cycles are called sprints. The development cycles are used to improve the development of a product or service. Agile project management methodologies delivers the product and services at higher frequency. Customer satisfaction is the highest priority of agile projects. The developers and the stakeholders of the project are directly involved with the project on a daily basis. Agile processes involves sustainable development and the processes are simple. All sectors in the industry today have adopted this methodology of project management. Software industry has the highest adoption rate with 23 % of agile project methodologies followed by financial services (14%), professional services (12%), insurance (6%), healthcare (6%), government (5%), telecoms (4%), transportation (4%), and manufacturing (4%).
The benefits of agile project management like increased deliverables, transparency, stakeholder engagement and satisfaction are making the methodology being more adopted by various sectors of the industry. It helps in decreasing the risk of missing objectives of the project and improving the quality of deliverables. Additionally, agile project management methodologies uses a lighter weight framework and gives more importance to customer need. The following paragraphs will enlighten on history of agile project management methodologies, working principle of the methodology, difference from the other popular project management methodologies followed by advantages and disadvantages and application of agile methodology in real world.
History:
Agile project management methodologies developed to meet the crisis of various sectors of the industry. In 1990’s, a PC computing faced crisis in software development. The aerospace engineers also faced crisis in delivering the projects on time. An aerospace engineer named Jon Kern became frustrated with the increase lead times of the projects. The automotive industry was also facing crisis as it took six years to develop a car. Therefore, leaders of various industry frustrated of software development crisis, held the meeting in Utah, which is popularly known as Snowbird meeting. The group met before in Oregon at Rogue River Lodge in 2000. The group came to be known as the agile community and was formed with programming pioneers namely Jon Kern, Ward Cunningham and Kent Beck, Alistair Cockburn, Arie van Bennekum and twelve others. In Snowbird meeting the two terms that were discussed were “light” and “lightweight”. The meeting was held to discuss methods that would help in the fast delivery of projects.
Traditionally, projects were handled using waterfall and PMBOK methodologies. However, waterfall had various disadvantages that led to the development of agile project management methodologies. In waterfall methodology, one step needs to be completed before moving to the next step. As waterfall cannot move uphill, similarly, in waterfall methodology there is no provision to go back to previous steps. This methodology was popularly used from 1970 to 1990. Software development crisis gave birth to agile project management especially in the software industry. Iterative methodologies were developed to combat with the crisis. In the Snowbird meeting, engineers and programmers decided to develop four types of agile methodologies namely scrum, kanban, extreme programming and adaptive project framework. Scrum was codified in 1995 to present the methodology in Austin, Texas where an object-oriented conference was held. “Scrum Software Development Process” was published in the same year. Then Kent Beck, who was hired as a consultant, developed extreme programming methodology while handling an experimental software development project as a project leader at Chrysler. The various agile and iterative techniques were codified in the Snowbird meeting in the year 2001. In a conference held in 2011known as the Better Software / Agile Development West conference, a keynote was presented by Kent Beck on software delivery acceleration. He mentioned about agile in his one-hour talk. He additionally mentioned that agile processes would be used for the fast and on-time delivery of projects. All the iterative and agile techniques are mentioned in the “Agile Manifesto”.
Working Principle of Agile Project Management Methodologies
Process/How it works:
There are two types of methodologies used in agile project management. They are scrum and kanban. The projects that are handled using this methodology are divided into small developmental cycles called sprints. It reduces the risks and provides value quickly. The methodology starts with noting the requirements of the project along with outlining the features of it. The project team then divides the project into small developmental cycles and team members carry out the project deliverables mentioned in each cycle.
Figure 1: Working of Agile project management methodologies
(Source: Aitken & Ilango, 2013)
The second iteration consists of planning the project followed by design, develop, release, track and monitor. Unlike waterfall methodology, where previous steps cannot be accessed, agile methodology allows moving to any sprint at any point of time. Therefore, the agile project management methodology is flexible and help to deal with complex projects.
Comparison with other methodologies:
Various project management methodologies are used to manage complex software development projects as well as other projects. They are Agile, waterfall, PMBOK, prince and the likes. There are differences between various methods of project management framework. The following paragraphs will enlighten on the differences between agile and waterfall framework, agile and scrum framework as well as agile and Kanban framework.
Similarities and Differences between Agile and scrum framework:
Figure 2: Difference between Agile and Scrum methodology
(Source: Cooper, 2014)
The two methodologies Scrum and Agile follows similar system, however, some differences exists between Agile and Scrum methodology. A set of principles of Agile is described in the Agile Manifesto that uses iterative development to build software. Whereas, while practicing agile software development a specific set of rules for scrum is followed. Scrum is the methodology whereas Agile is the philosophy that implements the agile framework.
Scrum and agile share several similarities as scrum is one way to implement Agile. The two methodology are focused on delivering the software as early as possible. Both can accommodate change in the iterations along with the iterative processes.
Compatibility of Scrum with Agile:
Among the several frameworks used in agile processes, scrum is one of the most common one. Agile is referred to as an umbrella term in which processes like Kanban, crystal, scrum and extreme programming are included. Agile is not Scrum however, scrum is agile.
When Scrum is used:
Scrum is recommended when:
- Requires continuous feedback.
- The project requirements will change and evolve.
- The project team wants autonomy.
- Commitment of a fixed release date is not required.
- Delivery of software should be done on a regular basis.
- As the method was not known before therefore, needs to be studied.
Projects that have a number of unknown factors and are continuously evolving is best handled by scrum framework. The changes are dealt with effectiveness such that the information can be accommodated easily and new features can be gained throughout the process.
Similarities and differences between Agile and Waterfall framework:
Figure 3: Differences between Agile and Waterfall framework
(Source: Hanney & Savin-Baden, 2013)
The differences between agile and waterfall methodologies can be explained in two words: flexible and rigid. The waterfall method is rigid whereas, the agile method is flexible and changeable. Waterfall method is more rigid and stricter whereas agile method is not rigid. Iterations can be added at any point of time. More differences are given as follows:
- In Waterfall projects, once the next step is done, previous steps cannot be accessed. In other words, first step or iteration needs to be completed before moving to the next step.
- Agile and waterfall methods can be have a number of similarities however, in project management agile is just the opposite of waterfall. Agile and waterfall both serve the same purpose in achieving the goals of the project. Both the methods are aimed at delivering quality projects in an efficient way.
- Waterfall methodology is a structured process, where a new phase cannot be started without completing the previous one. However, agile is flexible and the iterations or sprints can be accessed at any point of time.
- Linear process in not enforced by agile framework whereas, waterfall method is sequential.
- The requirements are defined before or in advance in waterfall method whereas, the requirements in agile method changes with the feedback of the customers.
Differences between Agile and other Frameworks
When waterfall should be used and when agile is used:
Agile should be used when:
- The requirements of the customers are well known in advance.
- Rapid deployment is the goal.
- Requirements are very well known and fixed.
- Ability to modify the scope is needed by the clients or stakeholders.
- The final product is not clearly defined.
- When the project is done a number of times before.
Waterfall is recommended when:
- Any kind of changes is anticipated during the project
- Changes in scope are not expected and working with fixed-price contracts are done
- Working with orderly and predictable projects
If changes are expected throughout the project then Agile method is chosen whereas, when no changes are expected in the project then waterfall is used. If the projects are unchanging, fixed and predictable then waterfall is the best choice.
Similarities and differences between Agile and Kanban framework:
Figure 4: Differences between Kanban and Agile methodology
(Source: Drury-Grogan, 2014)
Agile is visually represented in the form of Kanban Agile, they have many differences:
- Agile methodologies require knowledge and training whereas, kanban can be followed by any project manager without having proper knowledge and training.
- Iterations are a part of Agile method whereas, continuous flow is required in Kanban.
- All type of projects can use kanban methodology however, some projects are suitable for agile.
- Visual representation of workflow is required in kanban and is not required in agile.
- Kanban does not require cross-functional terms that are required by some agile projects.
- Kanban is a method whereas Agile is a convention.
In addition, Kanban and agile have similarities:
- Large number of upfront planning is not required by both methods.
- The project is divided into smaller chunks by both methodology.
- Continuous improvement is emphasized by both methods.
- Transparency is given most priority by both the frameworks.
- They work toward faster delivery.
No project management methodology framework are 100% perfect and on time. Kanban can be chosen for some projects and agile for others.
Advantages and Disadvantages:
Advantages of Agile
The agile framework developed in 1990s that evolved from lightweight software approaches that gives response to various project managers likes and dislikes to several rigid and linear waterfall methodology. The framework emphasizes on continuous improvement, flexibility and speed.
Some of the advantages of Agile:
- Change is allowed: Agile project management accepts and accommodates a number of changes with short planning cycles at any time during the project. Backlogs can be refined and prioritized by the use of agile framework letting teams that will initialise changes to project in a matter of weeks.
- Continuous improvement: Feedbacks from the users and team members are encouraged throughout the project, therefore future iterations can be improved from the lessons.
- Customers are heard: The customers will be able to see the delivery of work, share inputs and have a real impact on the products. An ownership sense can be gained by closely working with project team.
- Documentation can be neglected: The Agile Manifesto do not prefer comprehensive documentation and prefers working software, such that team members might feel that it is less important to focus on documentation. As comprehensive documentation does not lead to success of the project, agile teams find the right balance between discussion and documentation.
- End-goal might be unknown: The agile methodology is beneficial for the projects whose outcome is not known. With the progress of project, the goals are known and therefore, development of the project can be made according to the evolving requirements.
- High-quality and fast delivery: The project is broken down into various iterations that helps to manage the units that allows the team to focus on the quality of projects. They might lead to high quality of the projects through testing and collaboration. Testing is conducted in each iterations such that the bugs in the project are identified and thereby solved quickly. The high-quality project can be delivered fast with improved consistency and successive iterations.
- Final product might be significantly different:Agile framework initially might not have a definite plan therefore, the end product might look different from the initial product design. Agile framework is flexible with the capability of adding new iterations based on customer feedback that might result in the change of the final deliverable.
Disadvantages of Agile:
Some of the disadvantages of Agile:
- Less concrete planning: Sometimes it becomes difficult to deliver the project on time. The framework is on the basis of time-boxed delivery and the project managers reprioritize tasks. Therefore, the tasks or items that are previously scheduled for delivery might not be delivered on time.
- Interaction performed by strong team: The importance of face-to-face interactions frequent communication is highlighted in the agile method. The team members are able to do the projects together and take their own responsibilities.
- Team must be knowledgeable:The team that handles agile project are small. They should understand the comfortableness and feeling of the choosing the agile methodology.
- Time commitment from developers:When the project is the first priority of the development team, agile becomes most successful. The agile process requires complete involvement of the team members and the project managers that is more time consuming than an orthodox approach.
- Agile flexibility is positive along with some trade-offs. However, solid delivery date cannot be established along with neglecting of documentation and the final outcome might be quite different from the original.
Application/Industry use: The main application of the agile methodology is in software development or in other words in the information technology sector. However, the framework is also used in other sectors like the government, financial use, healthcare and other sectors. However, the main use of agile project management methodology is in software development with highest use rate of 21%.
Conclusion:
From the above discussions, it can be concluded that the agile project management method is used to solve the problem of complex project managements. The sectors that use agile project management frameworks are financial sectors, healthcare, government and so on. However, the highest rate of use of agile project management is in software development with 21% of use. The advantages of agile framework are that it is flexible, iterations or sprints can be added at any point of time and therefore, the goals of the project keep on changing with time. Unlike waterfall methodology, it is not at all rigid. However, it faces some disadvantages like delay in delivery and so on. Project managers applies agile project management in most of the project and considers the feedback of the customers in dealing with the project deliveries.
Abrahamsson, P., Salo, O., Ronkainen, J., & Warsta, J. (2017). Agile software development methods: Review and analysis. arXiv preprint arXiv:1709.08439.
Aitken, A., & Ilango, V. (2013, January). A comparative analysis of traditional software engineering and agile software development. In System Sciences (HICSS), 2013 46th Hawaii International Conference on (pp. 4751-4760). IEEE.
Conforto, E. C., Salum, F., Amaral, D. C., da Silva, S. L., & de Almeida, L. F. M. (2014). Can agile project management be adopted by industries other than software development?. Project Management Journal, 45(3), 21-34.
Cooper, R. G. (2014). What’s next?: After stage-gate. Research-Technology Management, 57(1), 20-31.
Cooper, R. G. (2016). Agile–Stage-Gate Hybrids: The Next Stage for Product Development Blending Agile and Stage-Gate methods can provide flexibility, speed, and improved communication in new-product development. Research-Technology Management, 59(1), 21-29.
Dingsøyr, T., Fægri, T. E., & Itkonen, J. (2014, December). What is large in large-scale? A taxonomy of scale for agile software development. In International Conference on Product-Focused Software Process Improvement (pp. 273-276). Springer, Cham.
Drury-Grogan, M. L. (2014). Performance on agile teams: Relating iteration objectives and critical decisions to project management success factors. Information and Software Technology, 56(5), 506-515.
Dybå, T., Dingsøyr, T., & Moe, N. B. (2014). Agile project management. In Software project management in a changing world (pp. 277-300). Springer, Berlin, Heidelberg.
Gandomani, T. J., Zulzalil, H., Ghani, A. A. A., Sultan, A. B. M., & Nafchi, M. Z. (2013). Obstacles in moving to agile software development methods; at a glance. Journal of Computer Science, 9(5), 620.
Hamed, A. M. M., & Abushama, H. (2013, August). Popular agile approaches in software development: Review and analysis. In Computing, Electrical and Electronics Engineering (ICCEEE), 2013 International Conference on (pp. 160-166). IEEE.
Hanney, R., & Savin-Baden, M. (2013). The problem of projects: understanding the theoretical underpinnings of project-led PBL. London Review of Education, 11(1), 7-19.
Hoda, R., & Murugesan, L. K. (2016). Multi-level agile project management challenges: A self-organizing team perspective. Journal of Systems and Software, 117, 245-257.
Kruchten, P. (2013). Contextualizing agile software development. Journal of Software: Evolution and Process, 25(4), 351-361.
Moniruzzaman, A. B. M., & Hossain, D. S. A. (2013). Comparative Study on Agile software development methodologies. arXiv preprint arXiv:1307.3356.
Serrador, P., & Pinto, J. K. (2015). Does Agile work?—A quantitative analysis of agile project success. International Journal of Project Management, 33(5), 1040-1051.
Sommer, A. F., Hedegaard, C., Dukovska-Popovska, I., & Steger-Jensen, K. (2015). Improved product development performance through Agile/Stage-Gate hybrids: The next-generation Stage-Gate process?. Research-Technology Management, 58(1), 34-45.
Špundak, M. (2014). Mixed agile/traditional project management methodology–reality or illusion?. Procedia-Social and Behavioral Sciences, 119, 939-948.
Stoica, M., Mircea, M., & Ghilic-Micu, B. (2013). Software Development: Agile vs. Traditional. Informatica Economica, 17(4).
Turk, D., France, R., & Rumpe, B. (2014). Limitations of agile software processes. arXiv preprint arXiv:1409.6600.
White, K. R., & FELLOW, P. (2014). Agile project management. The AMA handbook of project management, 441-450.