Best practices, methodologies, and templates for agile software development

Last updated: January 2025

Agile software development is oriented around delivering customer value as quickly as possible. Instead of focusing on a final output — the finished product — teams practicing agile software development prioritize working in short increments with frequent release cycles. Other hallmarks of agile software development include empowering developers through self-organizing teams and a commitment to continuous improvement, both in the software you ship and how you work.

Whether you are an experienced teammate looking for a refresher, standing up an agile development group, or are entirely new to agile workflows, this guide offers a high-level overview of agile software development topics:

What is agile software development?

Agile software development refers to a collection of methodologies and frameworks that promote adaptive planning, evolutionary development, and continuous delivery. Agile encourages cross-functional collaboration, where teams work closely with stakeholders to ensure each release delivers meaningful improvements. As teams iterate, they refine both their products and processes, staying aligned with user needs and business goals.

Agile values and principles

Agile is an umbrella term for a philosophical approach to work. The term emerged in the early aughts when a group of forward-thinking software developers gathered to document a growing shift towards fluid and dynamic development practices. This meeting resulted in what we now refer to colloquially as the “Agile Manifesto.”

There are four values at the core of agile software development 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

A graphic showing the values of agile: Customer collaboration, working software, individuals and interactions, and responding to change

In addition to these core values, the Agile Manifesto spelled out 12 principles:

  1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.

  2. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.

  3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.

  4. Business people and developers must work together daily throughout the project.

  5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.

  6. The most efficient and effective method of conveying information to and within the development team is face-to-face conversation.

  7. Working software is the primary measure of progress.

  8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.

  9. Continuous attention to technical excellence and good design enhances agility.

  10. Simplicity — the art of maximizing the amount of work not done — is essential.

  11. The best architectures, requirements, and designs emerge from self-organizing teams.

  12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

Extending agile beyond the development team

Following agile values and principles can encourage greater productivity and alignment for software development teams. You can achieve faster results and deliver a better customer experience. When you are flexible and willing to pivot quickly, you reduce risk — it is possible to move fast, deliver the functionality that customers need, and enjoy doing it.

However, there is often a disconnect with how much different areas of an organization are willing to modify their thinking and behavior to adopt agile. Results from Digital.ai's most recent State of Agile report revealed that a major barrier to successful agile transformation was resistance to change, particularly from the business side of organizations. Specifically, 47% of survey respondents reported general organizational resistance to change, 41% indicated there was not enough leadership participation in agile adoption, and 37% shared that business teams lacked understanding of what agile does and/or can do.

Remember that building and delivering a winning product requires cross-functional collaboration across the entire organization: leadership, product, engineering, marketing, sales, and support. An agile approach should extend beyond the core development team to those cross-functional groups as much as possible, especially in customer orientation and dedication to continuous improvement. Individual developers can act as agile stewards and evangelizers within the organization.

Related:

Top

Since the Agile Manifesto was published in 2001, agile has evolved and grown to include many different formal (and informal) methodologies and frameworks. Most of the people behind these methodologies and frameworks were themselves software developers and many were authors of the original manifesto. Some agile methodologies have become incredibly widespread (see: scrum) while others remain more niche — all draw on agile values and principles.

The list below is presented not by popularity but in alphabetical order:

Crystal

Crystal is a collection of agile software development approaches developed by Alastair Cockburn, who was one of the original authors of the Agile Manifesto. During his time at IBM in the 1990s, Cockburn studied and interviewed software development teams to identify better approaches to software development. His findings eventually coalesced into Crystal. Unlike other agile methods which apply one framework to many situations, Crystal emphasizes that every software development team and project is unique and requires a custom process.

Pros of Crystal:

  • Lightweight and customizable, with little overhead

  • Teams are encouraged to problem-solve and develop their own way of working.

Cons of Crystal:

  • Freeform structure may not be suitable for all organizations.

  • Little documentation and lack of plans may increase risk.

Extreme programming (XP)

Extreme programming, or XP, is an agile software development framework developed by Kent Beck in the late 1990s. Another original author of the Agile Manifesto, Beck’s framework differentiates from others in its specificity about development practices — not just workflows. This specificity makes XP suitable for some, but not all software development projects.

Some of the practices spring from pair programming. For example, there is a focus on face-to-face communication (preferably in person, without walls between teammates). There is an emphasis on small releases, collective ownership, and continuous integration — reducing feedback cycles so that developers can more quickly identify and resolve issues, ultimately shipping cleaner code.

Pros of XP:

  • Focus on practice excellence encourages team discipline.

  • Visibility and feedback loops reduce risk of bugs.

Cons of XP:

  • Some practices may not be possible or desirable for all teams.

  • Emphasis on code may come at expense of design and user experience.

Lean software development (LSD)

Lean software development (LSD) draws on lean manufacturing (specifically, the Toyota Production System) and translates those practices to software products. While many software teams had been borrowing lean manufacturing methods, LSD was formally introduced in 2003 in a book by Mary and Tom Poppendieck that details the approach, including the slogan "Think big, act small, fail fast; learn rapidly.”

Lean is different than agile but incredibly similar — think fraternal, not identical twins. The principles of LSD emphasize reducing waste, team learning, rapid decision-making, and conceptual integrity of the software system. LSD practices mirror other agile frameworks with a focus on value-stream mapping, pull systems, and test-driven development.

Pros of lean software development:

  • Streamlined work may shorten time to market.

  • Focus on eliminating waste reduces risks and cost.

Cons of lean software development:

  • Requires detailed documentation and metrics to reduce waste

  • “Optimize the whole” principle may be challenging depending on organizational structure.

Scaled Agile Framework® (SAFe®)

The Scaled Agile Framework, also known as SAFe, is a set of guidelines for implementing agile and lean principles at scale. SAFe was first released in 2011 by Dean Leffingwell, an author and lean-agile expert. The framework draws upon agile software development, lean product development, and systems thinking. SAFe promotes regular planning and scheduled integration points so large numbers of agile teams can deliver in sync and on cadence.

It is a highly structured approach best suited to very large enterprises with portfolios of complex products. There are four configurations of SAFe: Essential SAFe, Large Solution SAFe, Portfolio SAFe, and Full SAFe. SAFe coordinates agile teams into an Agile Release Train that shares a commitment to delivering value in each release. Scaled Agile (the company behind SAFe) maintains a comprehensive website full of knowledge resources related to the framework, as well as professional training and certifications.

Pros of SAFe:

  • Focus on both business and development agility

  • Enables large enterprises to adopt agile principles in a structured way

Cons of SAFe:

  • High level of complexity with many disparate activities

  • Extensive level of knowledge required, which may require paid training

More about SAFe:

Scrum

Scrum is an agile framework that focuses on delivering work in time-boxed efforts called sprints. It was co-created by Ken Schwaber and Jeff Sutherland in the early 1990s. Both were original contributors to and authors of the Agile Manifesto as well. Scrum is founded on empiricism, with iterative and incremental software development that is informed by experience and experiments.

The framework prescribes small teams of less than nine people organized around sprints (typically two-week iterations). At the start of each sprint, the team sets a sprint goal, selects items from the product backlog, and agrees on the scope of work. At the end of the sprint, the team presents the completed work to business stakeholders for review. This approach makes it possible to integrate change throughout the project lifecycle while enabling teams to deliver working software on a regular cadence.

There are specific roles, such as a scrum master, to facilitate team productivity and learning. Scrum is prescriptive. You cannot “do” scrum without doing all of scrum. Scrum.org publishes guides, case studies, and offers professional training opportunities and certifications.

Over the years, agile practitioners have built upon the foundation of scrum to create several standalone adaptations that are unaffiliated with Scrum.org. These include scrum-related frameworks designed to support larger teams and organizations such as Large Scale Scrum (LeSS) and Scrum@Scale, as well as hybrid models like scrumban, which blends scrum and kanban practices.

Pros of scrum:

  • Breaking work into small chunks encourages rapid and regular releases.

  • Ceremonies foster transparent communication and team buy-in.

Cons of scrum:

  • Requires a skilled scrum master who understands method deeply

  • Self-organizing teams and lack of upfront detailed planning require active involvement.

More about scrum:

What about kanban?

Kanban is a workflow management method that emphasizes the continual delivery of value. Based on lean principles, kanban focuses on visualizing work to increase collaboration, limiting the amount of work in process, and continuously improving flow to reduce lead time. Many teams use it in conjunction with agile methods to increase productivity.

Kanban was first developed by Toyota to improve manufacturing processes, but it is often used to optimize the delivery of knowledge-based work. Kanban boards are frequently included in various agile frameworks. The pull system underpins development workflows in most agile methodologies.

Related:

And what about DevOps?

DevOps is an approach to software delivery that promotes deep collaboration between software development and IT operations teams. DevOps gained popularity around 2008 in response to concerns about the disconnect between the people who write code and the people who deploy and support that code. While it is not itself an agile methodology or framework, DevOps does include many agile values such as rapid feedback and cross-team collaboration.

Top

Common metrics for measuring agile software development

Agile encourages flexibility, not foolhardiness. You still need to establish clear metrics for success and track and analyze output. Agile metrics help you repeat your successes and spot opportunities to make adjustments.