What are the most common Agile Development Methodologies?
There are various methodologies that are collectively known as Agile and they all promote the values of the agile manifesto.
The most common agile development methodologies are DSDM, Scrum and XP.
DSDM which stands for Dynamic systems development method is probably the original agile development method, way before the term ‘Agile’ was even invented.
DSDM is an Agile project delivery framework, used as a software development method covering all aspects of change delivery from project initiation to benefits realisation.
Although DSDM was used before what we currently know as Agile, it still has the same principles and practices to all other Agile methods i.e:
- Breaking business requirements into small components – user stories
- Prioritising these components according to the business need
- Delivering, testing and accepting these components in small time frame
- Delivery through a collaborative team that includes the end users
- Regular and transparent feedback on both the solution and the process
DSDM is Project focused.
Scrum is also an agile development method, with great emphasis on how to manage tasks within a team-based development environment. Scrum is the most popular and widely adopted agile method.
The six Scrum principles are:
- Empirical Process Control – This principle emphasizes the core philosophy of Scrum based on the three main ideas of transparency, inspection, and adaptation.
- Self-organization – This principle focuses on today’s workers, who deliver significantly greater value when self-organized and this results in better team buy-in and shared ownership; and an innovative and creative environment which is more conducive for growth.
- Collaboration – This principle focuses on the three core dimensions related to collaborative work: awareness, articulation, and appropriation. It also advocates project management as a shared value-creation process with teams working and interacting together to deliver the greatest value.
- Value Based Prioritization – This principle highlights the focus of Scrum to deliver maximum business value, from beginning early in the project and continuing throughout.
- Time-boxing – This principle describes how time is considered a limiting constraint in Scrum, and used to help effectively manage project planning and execution. Time-boxed elements in Scrum include Sprints, Daily Standup Meetings, Sprint Planning Meetings, and Sprint Review Meetings.
- Iterative Development – This principle defines iterative development and emphasizes how to better manage changes and build products that satisfy customer needs. It also delineates the Product Owner’s and organization’s responsibilities related to iterative development.
XP (Extreme Programming) is a more radical agile methodology, focusing more on the software engineering process and addressing the analysis, development and test phases with novel approaches that make a substantial difference to the quality of the end product.
XP can be applied when we may have a system whose functionality is expected to change every few weeks/months. Sometimes, our customers may not have a concrete idea of what the system should exactly do. In many software industries, the requirements are dynamically changing and this change is the only constant thing. This is when XP will work while other methodologies do not work.
The main goal of XP is to deliver useful software to the customer as and when it is required. Here, we have to set expectations so that in a limited period of time, customers can receive a new build of the system with the most prioritized features. Then we can make new plans for the next release.