Agile in Comparison: Advantages and Disadvantages of Different PM Methodologies
Agile is a modern approach to software development postulated back in 2001 by a group of leading developers who realized that it is high time to tailor software development process to the ever-changing business environment. In their Agile Manifesto, they suggested several principles which lay the foundation for all of the Agile methods.
These principles are:
- 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 principles provide a lightweight, iterative approach to software development with constant interaction and high involvement of all stakeholders. Agile methods are very flexible and they prompt continuous modification of the product throughout the development process.
Lately, Agile has become a buzzword in the IT sphere, so developers try to use it as often as possible. It is true that Agile offer revolutionary practices compared to traditional Waterfall methods. However, it is worth remembering that Agile is not a cure-for-all methodology and it should not be used for all development projects.
Here we would like to make an Agile methods comparison to specify differences between the methods and point out their advantages and disadvantages. In this article, we will take a look at Extreme Programming (XP), Scrum, Adaptive software development (ASD), Crystal, Dynamic systems development method (DSDM), and Feature-driven development (FDD).
Documentation
Agile methodology prioritizes verbal communication between the stakeholders over submitting in-depth documentation for each development cycle. Even though documentation is not a priority for Agile developers, they still have to deal with it. And the amount of documentation for each Agile method is different. Let’s take a look at Agile development comparison in terms of the amount of documentation.
- XP, ASD, Crystal, and Scrum do not urge to put too much effort into documentation. With a huge focus on verbal communication between the team members and the customer, these Agile methods are very lightweight in terms of communication.
- FDD requires sufficient amounts of documentation compared to the abovementioned methods.
- DSDM requires a moderate amount of documentation. It is significantly lower than in FDD method but higher than in XP, ASD, Crystal, and Scrum.
End user involvement
Any software should be developed with end user’s needs in mind. And Agile methodology brings this idea to a new level. However, there are Agile methods which promote higher end user involvement than the others. Let’s take a look at Agile model comparison in terms of end user involvement.
- Extreme programming requires an active participation of the end users in the development cycle. The software is developed in very short iterations and workable software pieces are additionally tested by end users.
- In Scrum, product owners represent end users.
- End users take part in incremental releases in DSDM, Crystal and ASD.
- In FDD, end users are involved in development through reports.
Project size
It is important to choose the right Agile method for the right project, as it will directly impact how many resources you will need. Some methods suit for large and complex projects, whereas the others should be used only with the projects of a smaller size. Let’s take a look at Agile comparison in terms of project size.
- Due to their specific features, XP and ASD suit well for smaller projects and should not be used with complex projects.
- Scrum, DSDM, Crystal and FDD are suitable for software development projects of any size. However, make sure you assess your resources right before using these methods for smaller projects. It is possible that you will manage them well with traditional Waterfall methods.
Team meetings
Interaction of all teams in Agile methodology is essential for success. However, this interaction is done through different channels and in different forms. Let’s compare Agile software development methods in terms of interaction between the members.
- Scrum and Extreme programming prompt informal daily meetings where team members voice their suggestions as to the flow of the project.
- In FDD and DSDM information is shared mostly through documentation, not through verbal communication.
- ASD and Crystal promote a face-to-face meeting of stakeholders.
Sprint cycle
- XP – 1 to 6 weeks
- Scrum – 2 to 4 weeks
- ASD – 4 to 5 weeks
- FDD – 2 days to 2 weeks
- DSDM – 80% of development should be accomplished in 20% of the time
Agile lean comparison of advantages and disadvantages
Here we are not trying to provide a full comparison chart for Agile methodologies and their advantages. However, it is worth mentioning what are the main benefits and drawbacks of each Agile method compared to the others.
Extreme programming
Advantages:
- Deep involvement of the customer in the project.
- Feedback is valued greatly and improvements are constantly made throughout the process.
Disadvantages:
- Lack of communication can be a disadvantage if you need to refer to the issues which appeared throughout the development process.
- A representative of the customer should constantly be available for consultation and feedback.
Scrum
Advantages:
- High level of communication among the teams which gives synergy to the process.
- It offers certification.
Disadvantages:
- Poor documentation.
- Lack of control over the project from the product owners.
- Customers are tempted to change the functionality of the product too often.
DSDM
Advantages:
- Project lifecycle is under strict control.
- Most important functions can be delivered first due to requirement priority approach.
Disadvantages:
- Unlike the other Agile methods, DSDM requires complex documentation.
Crystal
Advantages:
- The most important components of the software are delivered first.
- Development teams are constantly interacting which makes their ideas more elaborate.
- This method is very scalable – it can be used with different project sizes and team sizes.
Disadvantages:
- Planning and development phases don’t depend on requirements.
FDD
Advantages:
- FDD enables multitasking which saves time and resources of the development teams.
- Can be used for complex projects due to its scalability, attention to documentation and reports.
Disadvantages:
- Should not be used for small and plain projects due to its complexity and requirements.