How do different Agile methodologies compare to each other?
Scrum
Scrum is one of the most widely used Agile methodologies. A prescriptive framework, Scrum excels at managing iterative and incremental projects. Using the Scrum Agile methodology, a Product Owner sets a list of priorities, the Product Backlog, to be completed by a cross-functional team. The team works to deliver “potentially shippable increments” of software in 2-4-week sprints, at the end of which the Product Backlog is reevaluated and prioritized.
Agile teams like Scrum because it’s easy to follow and scale. It enables management teams to identify problems early on and fosters strong, active collaboration between teams and colleagues.
Extreme Programming (XP)
Another popular Agile methodology, Extreme Programming (XP) also emphasizes speed and continuous delivery. Like Scrum, XP enables closely-knit teams to deliver working software increments at frequent intervals, usually every 1-3 weeks. It relies on customers to communicate the most useful features of a software product and developers to work towards implementing that feedback.
XP is frequently recommended for small teams of experienced developers that are experienced in the XP Agile methodology and comfortable collaborating with stakeholders outside of IT.
Lean Software Development
Lean software development is more flexible than Scrum or XP, with fewer strict guidelines, rules, or methods. Lean is based on a set of principles developed to ensure value and efficiency in production in the mid 20th century and has evolved into the software setting. Lean relies on five principles of Lean management:
- Identify value
- Value stream mapping
- Create continuous workflow
- Create a pull system
- Continuous improvement
Lean particularly emphasizes eliminating waste. In the context of software development, that includes cutting out wasted time and unproductive tasks, efficiently using team resources, giving teams and individuals decision-making authority, and prioritizing only the features of a system that deliver true value.
Kanban
Like other Agile methodologies, Kanban focuses on helping teams work together more effectively to enable continuous delivery of quality products. Kanban is unique, however, for offering a highly visual method for actively managing the creation of products.
The Kanban Agile methodology relies on six fundamental practices:
- Visualize the workflow
- Limit work in progress
- Manage flow
- Make process policies explicit
- Implement feedback loops
- Improve collaboratively
Kanban achieves these practices through the use of a Kanban board. The Kanban board facilitates the visual approach to Agile using columns to represent work that is To Do, Doing, and Done. This Agile methodology improves collaboration and efficiency and helps define the best possible team workflow.
Crystal
The Crystal Agile methodology focuses more on the interactions of the people involved in a project versus the tools and techniques of development. A lightweight model, Crystal emphasizes interaction, people, community, skills, communications, and talents.
Crystal categorizes projects based on three criteria:
- Team size
- System criticality
- Project priorities
The approach is similar to other Agile methodologies in its attention to early and often delivery of software, high involvement of users, and removal of red tape. Crystal’s assertion that every project is unique, however, has led to its reputation as one of the most flexible Agile methodologies.
Feature-Driven Development (FDD)
Feature-Driven Development, or FDD, provides a framework for product development that starts with an overall model and gets progressively more granular. Like other Agile methodologies, FDD aims to deliver working software quickly in a repeatable way. It uses the concept of “just enough design initially” (JEDI) to do so, leveraging two-week increments to run “plan by feature, design by feature, build by feature” iterations.
Organizations that practice Agile like Feature-Driven Development for its feature-centric approach and its scalability.
Dynamic Systems Development Method (DSDM)
The Dynamic Systems Development Method (DSDM) rounds out our list of well-known Agile methodologies. DSDM originated in the 1990s as a way to provide a common industry framework for rapid software delivery. Today, it has matured into a comprehensive Agile methodology that revolves around:
- Business needs and value
- Active user involvement
- Empowered teams
- Frequent delivery
- Integrated testing
- Stakeholder collaboration
The DSDM framework is particularly useful for prioritizing requirements. It also mandates that rework is to be expected, so any development changes must be reversible. DSDM relies on sprints, similar to other Agile methodologies, and is often used in conjunction with approaches like Scrum and XP.
Frameworks for Scaling Agile
In addition to these Agile methodologies, organizations also rely on frameworks for scaling Agile across the enterprise. These include the Scaled Agile Framework (SAFe®), Large Scale Scrum (LeSS), Disciplined Agile (DA), [email protected], and others. These techniques and frameworks are often built upon and add value to the Agile methodologies explained above.
How do three of the most popular enterprise Agile frameworks differ?
Scaled Agile Framework® (SAFe®): The Scaled Agile Framework describes itself as a “knowledge base of proven, integrated principles, practices, and competencies for achieving business agility using Lean, Agile, and DevOps.”
SAFe is a well-established and rigorous approach to scaling Agile that includes planning at the team, program, and portfolio level. The framework introduced the idea of the Agile Release Train (ART) to structure work across teams of 50-125 people, as well as the Release Train Engineer (RTE) as the role at its helm. SAFe requires consistent two- and ten-week iterations, which can work well for organizations with a more established Agile practice but can prove ambitious for companies new to the practice.
Disciplined Agile (DA): Disciplined Agile, formerly known as Disciplined Agile Delivery (DAD), is “a people-first, learning-oriented hybrid agile approach to IT solution delivery.” DA is less prescriptive than SAFe and oriented more as a foundational approach to Agile than a strict “recipe” for scaling Agile. It emphasizes team roles and a goal-driven approach that makes it more flexible than other scaling Agile methodologies.
Large-Scale Scrum (LeSS): As its name implies, LeSS tackles the challenge of scaling Agile through the specific lens of the scrum, helping organization figure out “how to apply the principles, purpose, elements, and elegance of Scrum in a large-scale context, as simply as possible.” LeSS uses teams as its foundational building blocks, reduces the role of management, and advocates for simplicity versus strictly defined processes. LeSS is recognized as an impactful approach for organizations that already use scrum practices and want to scale Agile in a way that is both streamlined and robust.