Getty Images
34 must-know Agile terms
Agile is the cornerstone of countless development efforts today. Use this definitive glossary as a quick reference for Agile terminology and concepts.
In the 20-plus years since its inception, Agile has grown into the predominant school of thought in software development.
The framework has spawned dozens of techniques, derivative frameworks and methodologies that have shaped the way modern developers approach their work. More than that, Agile has generated a language all its own. This is important to understand for modern developers, testers and project managers who will more than likely work in an Agile environment at some point in their careers.
Use this guide to brush up on the terms most essential to understanding Agile and its sprawling influence on modern application development.
Acceptance testing
Acceptance testing is often the final phase of software testing. It's typically when end users or clients test a system to determine if it meets the agreed-upon requirements. Acceptance testing enables organizations to engage end users in the testing process and gather feedback from them.
Agile manifesto
The Agile manifesto is the Agile methodology's defining document. It consists of four key values and twelve principles that guide software development. The manifesto was produced in 2001 by a group of developers known as the Agile Alliance. The manifesto's four main values are as follows:
- 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 methodology
Agile is a methodology that emphasizes the need for flexibility and pragmatism in the development and delivery of a product. Agile calls for an iterative approach to project management and software development, enabling better collaboration adaptability through incremental improvements. Agile software development's guiding principles are outlined in the Agile Manifesto.
Agile is the foundation for many software development frameworks and methodologies, including Scrum, Kanban and pragmatic programming. It was developed to counter the perceived inflexibility of preceding schools of thought, such as waterfall.
Behavior-driven development
BDD is an Agile development technique that defines tests first and then has teams augment code to get the tests to pass. BDD focuses on testing software against the expectations of developers and business stakeholders. When the software behaves as the stakeholders and developers believe it should, the tests pass.
Burndown chart
A burndown chart is a project management tool. It is a visualization of the amount of work left to be completed in a project. The amount of work is represented by a line on a vertical axis. The project is complete when the line reaches the bottom of the axis.
Burnup chart
A burnup chart is a visualization of the total amount of work in a project and the portion of work that has already been completed. Agile teams use burnup charts to track project progress in context of the project's overall scope. Burnup charts feature two lines on a vertical axis -- one that represents the total amount of work in the project and one that represents the amount of work completed. The project is finished when the two lines meet.
Continuous delivery
Continuous delivery (CD) is the second half of the CI/CD pipeline, where a software build undergoes more comprehensive testing and is delivered for deployment. Once validated, a successful build is packaged for deployment and moved to a staging environment, where a human can decide whether to deploy the build or bring it back into the development environment.
Continuous deployment
Continuous deployment is like continuous deployment but automates the process one step further. After the build is validated, continuous deployment automatically deploys it instead of delivering it to a human for deployment.
Continuous improvement
Continuous improvement, or Kaizen, is the idea that small, incremental changes add up to significant improvement in the long run. Agile incorporates fast feedback loops and iterative releases to foster continuous improvement in software development.
Continuous integration
Continuous integration (CI) automates the early stages of the development pipeline. In CI, multiple developers can merge code changes into a shared repository simultaneously. Code changes then undergo a series of automated tests, such as unit, integration and regression tests. CI is the first half of the CI/CD pipeline. CI is complete when a build completes initial testing and can move to more substantial tests.
Daily stand-up
The daily stand-up is a daily meeting that the Agile team participates in to create transparency, identify roadblocks, address project concerns and reinforce team accountability. Each team member gives a progress report and shares their plans for the day during the meeting. Different Agile frameworks have their own versions of the daily stand-up. For example, Scrum has daily Scrum, which specifies how each of the team roles should participate in the meeting.
Definition of done
The definition of done in Agile is a list of standards and characteristics that a project or user story must meet for it to be considered complete and ready for further development. Teams develop the definition of done during product increment planning. All team members must understand their roles in aligning the project with the definition of done.
DevOps
DevOps is a development philosophy that aims to promote communication and break down silos between development and operations teams. DevOps focuses on both the technological and cultural changes required to strengthen the bond between development and operations teams. Examples of DevOps technologies include CI/CD pipelines, which automate the tasks involved in continuously developing and deploying software. Another example includes real-time monitoring tools, which provide insights to development and operations teams, giving both a common ground to work from.
Dynamic Systems Development Method
DSDM is an Agile framework that emphasizes active user involvement, quick delivery and business needs. DSDM was developed in response to the need for rapid software delivery. The framework prioritizes system requirements using the MoSCoW method in categories of must-have, should-have, could-have and won't-have now.
Extreme programming
Extreme programming is an Agile technique that emphasizes improving software quality by incorporating feedback and shorter development cycles for more frequent releases. Extreme programming has teams perform many traditional development tasks -- such as code review and documentation -- continuously or in parallel to one another. For example, pair programming has one programmer reviewing another programmer's work as they produce it in real time, instead of having one programmer produce work for the other to review upon completion.
Iteration
An iteration is a single pass through all the steps in a development process. For example, when a development team completes a potentially shippable increment of a product, they have completed an iteration. Iterative development involves repeatedly running through iterations, incorporating feedback on each cycle to continuously improve the product.
Kanban board
A Kanban board is a visual tool that Agile teams use to track project progress. Teams move cards that represent different tasks across columns on the board. The columns represent different stages of the project. For example, when a team member finishes a task, they could move the corresponding card from the work in progress column to the completed column.
Lean
Lean management or lean production is a methodology that focuses on reducing waste and using the fewest resources to achieve the end product. Lean principles aim to eliminate non-value-adding activities, streamline operations, and continuously improve quality and efficiency.
Mob programming
Mob programming involves multiple developers working together on one task in real time. Mob programming uses the group's collective knowledge to solve problems that would otherwise be difficult to solve individually. Mob programming consists of the driver, navigator and mob. The driver controls the computer, the mob discusses the problem at hand and the navigator communicates the ideas of the mob to the driver for them to implement. The mob might also include a designated champion, whose role is to keep the mob's discussion on topic and center the problem at hand.
Pair programming
Pair programming is an Agile practice in which two developers work together to design, code and test user stories. One programmer, the driver, controls the computer and the other programmer focuses on the overall direction of the programming, directing the driver. Pair programming aims to facilitate collaboration on Agile teams and helps developers work together to solve problems that might be difficult to crack individually.
Planning poker
Planning poker is a collaborative, gamified Agile estimation technique that helps teams outline the amount of time and effort a project or task will require. Teammates use a deck of cards to individually estimate the amount of time and effort a task will take, then reveal their cards to discuss their estimations and reach a consensus.
Product backlog
The product backlog is a prioritized list of features, requirements and requirements for the product. The development team uses the product backlog as a dynamic to-do list.
Product owner
The product owner is a Scrum accountability or role. The product owner defines the product goals, manages the product backlog, helps teams define sprint goals, ensures they prioritize the most valuable aspects of the product and collaborates with the development team and stakeholders.
Scaled Agile Framework
SAFe is a framework to implement Agile enterprise scale, supporting coordination across multiple teams and complex projects. SAFe relies on a top-down approach and aligns technology development with strategic business goals. It combines Agile development, systems thinking and lean.
Scrum
Scrum is an Agile project management and development framework that emphasizes accountability, teamwork and iterative development. Scrum teams consist of three main roles or "accountabilities" as they are called in the Scrum Guide, Scrum's guiding document. The three accountabilities are the Scrum master, the product owner and the scrum developers. Sprints minimize risk by breaking development work into shorter iterations that allow teams to more dynamically gather and incorporate feedback.
Scrum master
The Scrum master is one of the three main accountabilities in Scrum. The Scrum master is the team's facilitator and Agile coach. Their primary goal is to remove impediments to the team's progress and ensure the team adheres to Agile principles.
Scrumban
Scrumban is a hybrid Agile development framework that combines Scrum and Kanban. Scrumban uses Scrum's events -- sprints, daily scrums and retrospectives -- and incorporates Kanban's emphasis on a visual workflow and limiting work in progress.
Software development lifecycle
The SDLC is a representation of the software development process, broken into several distinct phases including planning, analysis, design, implementation, testing, deployment and maintenance. The SDLC provides repeatable guidelines for bringing a software project from ideation to deployment.
Sprint
A sprint is a fixed period of time in which development work must be completed. Sprints consist of planning sessions, daily progress meetings and sprint reviews, where the team demonstrates completed work to shareholders and gathers feedback. Sprints are defined in Scrum -- an Agile framework -- as not exceeding one month in duration.
Story points
Story points are an Agile estimation technique that measures the amount of effort it will take a development team to complete a task or user story. Story points exclude the amount of time a project will take, instead focusing solely on effort.
Test-driven development
TDD is an Agile development practice in which teams write tests before the software code. At the beginning of TDD, there is no code and all tests fail. Teams iteratively write code until the tests pass.
Three Amigos meetings
Three Amigos meetings are collaborative sessions meant to align the perspectives of business, development and QA personnel for sprint planning and evaluation. Three Amigos meetings usually consist of a businessperson or product owner, a developer and a quality assurance professional. These meetings help develop a consensus on what product should be produced, how it will be produced and how to evaluate the product.
Timebox
A timebox is an allotted amount of time designated for completing a task or activity. Many Agile activities are definitively timeboxed. For example, sprints are supposed to occur in a set amount of time -- usually one month or less. Timeboxing aims to increase focus and efficiency on Agile teams.
User stories
User stories are brief descriptions of software features or requirements from the user's perspective. User stories typically follow the format: "As a (user), I want (action) so that (result) occurs." User stories describe how a particular feature or requirement delivers value to the end user. User stories are a tool for developers to prioritize work.
Ben Lutkevich is site editor at Informa TechTarget. Previously, he wrote definitions and features for Whatis.com.