Explore  

12 agile methodologies: Pros, cons, and when to use them

Agile methodologies provide a framework for software development that is centered around collaboration, iteration, learning, and value delivery. Development teams break large efforts into manageable increments and tackle them in time-boxed cycles. The idea is for your team to have a clear, unified approach for how to define and complete work — for more flexibility, faster time to market, and higher quality software.

Scrum is indisputably the most popular agile framework used by teams today. According to the most recent findings from one annual report, 87 percent of teams leverage scrum. Notably, this particular survey includes all types of teams — from marketing to IT to engineering. That is… a lot of teams. One reason that scrum is adopted by so many is that it offers a lightweight framework for continuous improvement, from sprint planning to retrospectives.


Sprint retrospective large



Agile development principles

Following agile principles can lead to greater productivity and team alignment. When you are flexible and willing to pivot quickly, you reduce risk — it is possible to move fast and give customers what they want.

Agile manifesto values

There are four values at the core of agile approaches, as stated in the Agile Manifesto:

  • Individuals and interactions over processes and tools

  • Working software over comprehensive documentation

  • Customer collaboration over contract negotiation

  • Responding to change over following a plan

Building and delivering a winning product requires cross-functional collaboration across the entire organization — product, engineering, marketing, sales, and support. Whether or not your team follows agile principles, it is crucial to have guidelines and practices in place for how you will complete your work. When everyone understands and agrees on a method, it is easier to make progress towards your goals. You can achieve faster results and deliver a better customer experience.

Related:


How to choose an agile methodology

Typically a CEO or CTO will select the methodology, with input and support from engineering team leads. If you are part of a group tasked with choosing which agile methodology to embrace, there are a variety of factors that you should take into account as part of your evaluation.

Organizational characteristics

  • Size: Smaller companies can often get started with more lightweight approaches, whereas larger enterprises benefit from sophisticated frameworks.

  • Industry: Some industries require specific checkpoints for security or regulatory concerns, which can impact the agile method the team follows.

  • Culture: Management styles, communication, and openness to change all influence workflow choices.

Product characteristics

  • Type: Hardware, software, IT, consumer — what it is you are building and for whom will play a role in methodology selection.

  • Maturity: Products have a lifecycle with distinct stages.

  • Complexity: Highly complex products require a defined framework that still allows for adaptability.

Team characteristics

  • Size: Scrappy startups will have people doing the work of several different roles versus an established company with many groups of engineers supporting.

  • Experience: Novice developers do not need the weight of a heavy framework, but will benefit from structure.

  • Location: Small co-located teams have different needs than groups dispersed globally.

Related:


What are agile best practices?

No matter which methodology you choose, remember that being more agile requires shifting the way you think about the work you are doing. It helps if everyone on the team can articulate the ultimate goal — the reason why you are shifting to agile and the value it will deliver to customers beyond the individual features you ship. This makes rallying the team around a specific way of working a bit smoother.

Regardless of which methodology you choose, you can plan on incorporating the following agile best practices:

  • Iterative cycles: Teams follow a repeatable cycle of development activities such as planning, design, development, testing, and deployment. Each iteration provides an opportunity to incorporate feedback and deliver a better product.

  • Incremental development: Developers break down large projects into smaller, more manageable units of work. Since each batch of work builds on previous increments, your product is constantly being improved. Updates come early in the process versus in a single release at the end of development.

  • Frequent communication: Alignment across the entire product development team depends on ongoing communication. Regularly connecting with cross-functional teammates minimizes costly rework. Agile teams touch base on capacity, work status, and any issues that need to be addressed.

  • Time-boxing: Developers focus on completing one task at a time before moving on to the next project or phase of work.

  • Retrospectives: Team members check in with one another at regular intervals (typically after a set time-boxed period like a sprint) to reflect on how to improve processes going forward. Agile retrospectives facilitate the kind of transparent, open communication that allows teams to constantly evolve.

Related:


When to invest in agile workflow tools

You can always try to adapt an existing workflow tool to fit an agile framework. But bug-tracking tools, simple task management boards, and spreadsheet tools can only take you so far. As you begin to mature in your processes, you will likely find that you need an agile workflow tool that provides templates, reporting capabilities, and empowers you to collaborate closely with product management.

Different types of agile development frameworks

There are many different agile development methodologies that teams adopt. Some stick to a single methodology, while others opt to use multiple frameworks. And many teams adopt a hybrid approach, combining elements of one methodology with others to meet their needs (for example, "scrumban").

Each methodology promotes the elements at the root of agile development — flexibility, collaboration, iteration, short release cycles, and immediate feedback.

Crystal Crystal focuses on customization. It empowers agile teams to define the most effective way of collaborating, based on details like the number of team members and the specific type of project you are working on. As a developer, you have the autonomy to adjust processes and optimize workflows to fit your needs.

Dynamic systems development methodology (DSDM) Dynamic systems development methodology (DSDM) combines the principles of time-boxing and collaboration with an emphasis on goals and business impact. It lays out distinct phases for tackling projects, from evaluating feasibility to creating prototypes to implementation. DSDM is typically selected by larger organizations and governments with the budget to cover overhead and implementation.

Extreme programming (XP) Extreme programming is all about collaboration and transparency. XP espouses five key values: communication, simplicity, feedback, courage, and respect. Developers typically engage in pair programming — sitting together and writing code on one machine. Small teams that are co-located and close-knit can benefit from using XP.

Feature-driven development (FDD) Feature-driven development espouses a customer-centric view to software development. By prioritizing user stories, FDD helps teams deliver more features that customers want. Work moves quickly — developers typically build each feature in two weeks. FDD can be useful for companies with a more rigid or hierarchical structure, where lead developers make decisions that impact the rest of the team.

Kanban Kanban is a visual method for managing workflows. Teams use a kanban board to quickly see the status of upcoming work. The goal is to reduce lead time by optimizing the flow of work and limiting the amount of work in progress. Kanban is popular with many types of agile development teams, as well as product and project teams.

Large-scale scrum (LeSS) Large-scale scrum defines 10 principles for deploying and maintaining scrum across an entire company. LeSS was created to support organizations with multiple scrum teams. There are two configurations: one for two to eight scrum teams and one for more than eight scrum teams. LeSS co-creators Craig Larman and Bas Vodde co-wrote a book that outlines how teams can adopt the principles.

Lean software development (LSD) Lean software development promotes a minimalist approach — eliminating waste, ensuring quality, and delivering quickly. Many growing teams rely on lean practices to help them create more functionality faster.

Nexus The Nexus framework was created by Ken Schwaber, one of the co-creators of scrum. It is an agile model that is used in tandem with scrum. Nexus adds an integration team composed of a product owner, scrum master, and integration team members. The nexus team is focused on facilitating dependencies and other issues between teams.

Rapid application development (RAD) Rapid application development emphasizes speed and flexibility. Developers build prototypes, collect user feedback, and iterate often. RAD is ideal for highly skilled teams that need to develop a product quickly (within a few months) and are able to collaborate with customers during the process.

Scaled agile framework (SAFe®) The Scaled Agile Framework is a set of principles, guidelines, and prescribed levels for implementing agile and lean principles at scale. SAFe is used by more than 70 of the 100 companies at the top of the Fortune 500 list.

Scrum Scrum is the most popular agile development methodology. Teams work in time-boxed sprints of two to four weeks and each person has a clearly delineated role, such as scrum master or product owner. After an initial planning session, teams meet daily and also have retrospectives at the end of each sprint to reflect on how to improve. Scrum is well-suited to small teams that are nimble, cohesive, and willing to pivot often based on stakeholder feedback.

Scrumban Scrumban is a hybrid of scrum and kanban. It was initially developed as a way for teams to transition from scrum to kanban or vice versa. But over time it gained traction as a standalone methodology, not just as a stopgap. The scrum part of scrumban gives teams defined guidelines for roles, planning, and how to run sprints effectively. The kanban part of scrumban offers a way to balance work against resources with the pull system — plus visualizations of work in progress.

What about DevOps? It is also worth mentioning DevOps, an approach to software delivery that grew out of agile philosophy. DevOps emphasizes short development cycles and continuous delivery of high-quality software. The focus is on close working relationships between the development and operations teams. Many principles of DevOps — such as automated testing, short feedback loops, and frequent collaboration — are seen in the agile development methodologies above.

Read next: What is agile transformation?


A great agile team needs the right agile tools. Try Aha! Develop free for 30 days.