Agile software development is a method used by the vast majority of software development teams. For the non-techie, a discussion of agile can be confusing because of the high concentration of industry-specific terminology. Below, we’ve built a glossary of agile software development terminology, from A to Z. We cover as many common agile terms as possible, to help you get your head around agile.
Agile software development: an iterative, adaptive approach to building software. Work in a project is broken down into short bursts (commonly one or two weeks in length but this can vary) called sprints. The focus is on cross-functional teamwork, continual improvement, and transparency. Agile methodology allows for maximum flexibility and enables teams to deliver products faster.
Adaptive planning accounts for changing conditions or requirements during the course of a project. Agile development integrates adaptive planning, as opposed to predictive planning, which seeks to anticipate outcomes in advance. This approach is well-suited for uncertain or fast-changing environments, as it helps teams adjust and refine the project continuously.
The Agile Manifesto: A statement of values created by seventeen thought- leaders from the software community in 2001. The Agile Manifesto involves twelve principles that propose a new way of developing software, freeing the process from the constraints of top-down bureaucracy. The orientation is toward the delivery of working software.
Agile mindset: A set of attitudes that focus on the customer, problem-solving, transparency, embracing change, and adapting quickly. The agile mindset is often contrasted with a bureaucratic mindset, which usually operates with a fixed set of assumptions.
Acceptance Test Driven Development (ATDD): When team members from different perspectives and departments work together to write acceptance tests before implementing the corresponding functionality.
Acceptance Testing: A formal description of the behavior of a software product, generally expressed as an example or a usage scenario. Also known as a “functional test” or “customer test”, and sometimes also “story test”.
Application lifecycle management (ALM): Agile application lifecycle management puts the focus on cross-functional team collaboration, and the continuous and often simultaneous execution of all stages of product development. Requirements are regularly assessed and updated. Building, testing, and frequent delivery are intertwined.
Burndown chart: A burndown chart is one of many agile tools used to facilitate the success of a project. It visually represents the amount of allotted work and time remaining to complete a project. This helps the team assess their progress and determine how much work remains to be done. It can be applied to individual sprints or iterations, or the project as a whole.
Collective ownership: A convention adopted by development teams, where every member has a positive duty to make changes to the code to improve the overall structure of it. This allows the overall structure to be created with fewer errors, lessens dependency on any one person in the coder team, and promotes a wider knowledge base across the team.
Continuous integration: Continuous integration is the process of frequently merging the developers’ code into a shared repository, often done several times a day. The process is typically automated, and results in continuous improvement of the product in development.
Cross-functional team: Just as it sounds, a cross-functional team includes team members with expertise from different functional areas of the company, all working toward a common goal. An ideal cross-functional team will include members of different ages, genders, and seniority, each contributing different insights and perspectives for the benefit of the project.
Daily scrum: An event where the developers in a scrum team gather for fifteen minutes at the exact same time and place each working day. During the scrum, team members answer the following questions: What did you do yesterday? What are you working on today? Are there any obstacles or impediments blocking your way? This daily check-in allows the scrum masters to facilitate a smooth workflow through continuous problem solving..
Definition of done (DOD): The definition of done is a set of agreed-upon criteria or conditions that determine when a project or project increment is complete. The DOD helps the team stay on the same page and in agreement as to when their efforts have produced the right results. The DOD is created prior to planning the first sprint. Definition of ready is a related term.
DevOps: The term DevOps combines the terms “development” and “operations” (specifically, IT operations). It refers to the combined participation of the development and operations teams at all stages of the product and service life cycles, including design, development, and testing. DevOps is often described in contrast to traditional company structures, where development and operations departments can be siloed apart from one another which can inhibit collaboration.
Extreme programming: Extreme programming is a kind of agile software development methodology which features short development cycles and frequent releases. In extreme programming, programming is done in pairs, and the focus is on teamwork and constant testing. The end goal is faster development of a higher quality product.
Fail-fast: Fail-fast is a concept often associated with lean startup methodology. It’s an approach to developing software in small increments, with constant testing, to determine the viability of a project before the investment of extensive time and resources. Fail-fast seeks to remove the stigma associated with the failure. Instead, teams focus on collecting knowledge and using that to inform their next project, if necessary.
Feature creep: Feature creep, also called scope creep, or project bloat, happens when unnecessary features are added to a project, resulting in an overcomplicated product that is cumbersome and hard to use. This can be avoided by strong project planning and a focus on developing a minimum viable product (MVP) first.
Incremental development: “Nearly all Agile teams favor an incremental development strategy; in an Agile context, this means that each successive version of the product is usable, and each builds upon the previous version by adding user-visible functionality.” Agile Alliance Org
Iteration: An agile iteration is a short period of time (typically one-to-two weeks) during which a section of development work and testing takes place. Iterations are repeated over and over, eventually resulting in a full agile software development lifecycle.
Kanban is a method for managing your workflow in an agile environment. The Kanban approach is continuous and the focus is on constant communication and transparency. In Kanban, units of work are typically managed on a Kanban board, and limits are imposed on the number of items that can remain in-progress. In this way, completion of work becomes the focus.
Kanban board is a project management tool that enables a team to visualize work at various stages of a process. The goal is to limit works-in-progress, and to see tasks all the way through to completion. On a Kanban board, categories are typically organized in columns, and items are moved from left to right, across the columns, as they progress from start to finish, or initiation to completion.
Lean software development translates ideas developed in lean manufacturing to the world of software development. It’s focused on reducing waste and defects while streamlining production. As an agile approach, the goal is to remove “all things unnecessary.” It is often used in the development of an MVP.
Minimum viable product (MVP) A minimum viable product is the most essential version of a product that is still useful to a customer. Teams focus on building and releasing an MVP to test their product on users as early as possible so they can receive feedback on further development. An MVP enables a team to avoid feature creep and investing unnecessary resources before determining a product’s viability.
Pair programming: Pair programming is a method used in extreme programming, whereby coding is done by teams of two developers, usually working alongside each other. The focus is on teamwork and continuous testing. The goal is faster development and release of high-quality software products.
Personas: Made-up, pretend users of a product, created by development teams. One persona is necessary for each product category since most products are intended for multiple types of users. Personas are both visual and concise.
Product backlog A product backlog is a list of features, in order of priority, that must be completed during the course of an agile project. The backlog is often informed by the project roadmap, which dictates the strategy for the project. Developers refer to the product backlog to determine which tasks get done, and the order in which they should be executed.
Product owner The product owner is the member of the team who represents the interests of the customer and is responsible for managing the product backlog. They also answer any questions the developers may have regarding the customer’s expectations.
Rapid Application Development (RAD) Rapid application development is a highly popular method of agile project management that prioritizes fast delivery. This is achieved by focusing less on the planning phases of the project, and more on completion and release. Rapid prototyping is one form of RAD.
Release is when software/product is made available to users in a live or production environment. To attain this stage, quality and functional standards have to have been met.
Retrospective In agile, a retrospective is a regular event where teams reflect on how a sprint has been executed, and what they can do to improve their work in future sprints. It is often described as a kind of inspection where teams discover how they can adapt and improve.
Scrum Scrum is an agile project management framework that is focused on continuous improvement. Scrum is considered a method for applying the agile mindset:it enables teams to adapt to constantly changing conditions and requirements. Scrum projects are organized into sprints, with daily check-ins called daily scrums.
Scrum Master The Scrum Master is the member of an agile team who guides the application of agile practices and principles. They are responsible for facilitating the success of an agile project by clearing obstacles, addressing team dynamics, and ensuring a productive working environment.
Scrum team A scrum team is a group of 5-10 individuals who work collectively to achieve the goals of an agile project. A scrum team features a Scrum Master, a product owner, a group of developers, and often others. Scrum teams typically work in increments called sprints and focus on valuable, useful output at the end of each sprint.
Sprint A sprint is a concept in scrum methodology during which a team works on a set amount of work during a prescribed timebox. Teams use sprints to break large projects down into short, repeatable bursts of effort. Sprints typically last for one month or less. A sprint is a kind of iteration, so some companies use the terms “sprint” and “iteration” interchangeably.
Sprint review A sprint review is an event in scrum methodology where the team gathers to review work that took place during a sprint, and determine whether changes or improvements need to take place.
Stakeholder A stakeholder is a person external to the agile team who has a stake in the outcome of a project. A stakeholder could be a client, a product owner, or a member of upper management. Stakeholders need to be engaged throughout the agile process to be sure the project aligns with their goals and expected outcomes.
Stand-up A stand-up is a short, daily meeting for the core team of an agile project. The stand-up is timeboxed and typically takes place at the same time and place. Participants give brief status updates and information is shared about any developments or changes that may impact work progress or outcomes. The “daily scrum” is a form of stand-up meeting used in scrum methodology.
Story mapping is an ordering of user stories along vertical and horizontal axis. The horizontal axis shows the order in which the user would perform different functions. The vertical axis represents the increasing priority and complexity of the functional implementation. Additional horizontal rows are added for more functionality, after the first, “bare bones” functions are set.
Test-driven development is a form of development where testing and design are interwoven with the process of coding and development. Tests are written and applied to single aspects of the product. This helps development teams reduce errors, validate code, and produce higher quality results.
Timebox A timebox is an agreed upon timeframe when work takes place. Strict parameters are applied, and work must stop at the completion of the timebox. After each timebox, a review happens so the team can determine whether their goals were achieved. The timebox is a backbone of agile scrum methodology.
User story A user story is a nontechnical way of explaining a product feature from the POV of the user. It is usually written in one to two sentences, often in the following format: As a <type of user>, I want <some goal> so that <some reason>. The user story gives context to the development team, and helps them make decisions and prioritize tasks.
User persona A user persona is a semi-fictional character that captures the traits of an ideal customer. User personas are useful for targeting the needs of a prototypical user, and can be helpful in guiding choices around what kind of product to develop.
Velocity Velocity is a measure of the amount of work an agile team can deliver during a sprint or typical delivery cycle. It is a key metric used to measure team performance in scrum methodology.
See any terms we’ve missed in our glossary of agile terminology? Any gaps in our definitions? Drop an email to email@example.com and we’ll integrate your suggestion.
If you’re looking for an agile software development team to help out on your next project, get in touch and we can start a conversation. We specialize in custom mobile app and web app projects. We can take your product from concept to launch faster than you might think.
Editor’s note: Addie Kugler-Lunt expanded and updated this article in July 2022.
LimeTech is a creative tech company with a focus on app development. We help brands grow their impact by building digital products that please customers and solve business challenges. Our work includes strategy, design, content, and tech planning. Check out our portfolio or reach out to start a conversation about your project.
Building on our article “Hello, Color!”, we cover some common color terminology. This helps you have conversations with designers when you’re creating the look and feel of your app. Here we go with “color terminology explained”!Read more