
The Complete Agile Dictionary: Every Term You Need to Know (Without the Confusion!)
Lost in Agile jargon? This fun guide explains every important Agile term in simple language that actually makes sense.
Lost in Agile jargon? This fun guide explains every important Agile term in simple language that actually makes sense.
Starting your first tech company can feel like learning a new language. Between investors throwing around terms like "MVP" and developers mentioning "sprints" and "scrums," it's enough to make your head spin!
Don't worry – we've got you covered. This complete Agile dictionary breaks down every important term from the official Agile Alliance glossary, explained in plain English that won't make your brain hurt.
Before we dive into the alphabet soup of terms, let's start with the basics. Agile is a set of methods and practices where solutions evolve through collaboration between self-organizing, cross-functional teams. Think of it like building with Lego blocks instead of carving a statue from marble – you can adjust and improve as you go!
Team members with different perspectives (customer, development, testing) collaborating to write acceptance tests in advance of implementing the corresponding functionality. It's like writing the rules of the game before you start playing.
A formal description of the behavior of a software product, generally expressed as an example or a usage scenario. Basically, it's testing to make sure your app does what you promised it would do.
Common solutions to common problems where the solution is ineffective and may result in undesired consequences. These are the "seemed like a good idea at the time" decisions that come back to haunt you.
The process that converts files and other assets into a software product in its final form. The build is automated when these steps are repeatable, require no direct human intervention, and can be performed at any time. Like having a robot chef that can make the same perfect meal every time.
When the product owner and team refine the backlog on a regular basis to ensure it contains the appropriate items that are prioritized and ready for delivery. Think spring cleaning for your to-do list.
A practice where members of the team discuss the expected behavior of a system in order to build a shared understanding of expected functionality. Everyone gets on the same page about what "done" looks like.
Charts that track the amount of output (in terms of hours, story points, or backlog items) a team has completed across an iteration or a project. Picture a mountain that gets smaller each day as you finish tasks.
The ability of an organization to sense changes internally or externally and respond accordingly in order to deliver value to its customers. Being quick on your feet when the market changes.
The explicit convention that every team member can make changes to any code file as necessary. Everyone can touch any part of the code – no "that's mine, don't touch it" attitudes.
Aims to reduce the time elapsed between writing a line of code and making that code available to users in production. Getting new features to users super fast.
The practice of merging code changes into a shared repository several times a day in order to release a product version at any moment. Like having multiple chefs work on the same recipe without ruining the soup.
Class Responsibility Collaborator (CRC) Cards are an object oriented design technique teams can use to discuss what a class should know and do and what other classes it interacts with. Think relationship mapping for code.
A four-step framework to discover and validate that you have identified a need that customers have built the right product to satisfy. Making sure people actually want what you're building.
One of the most commonly practiced Agile techniques that presents opportunity for a team to get together on a regular basis to coordinate their activities. A quick daily check-in where everyone shares what they're working on.
An agreed upon list of the activities deemed necessary to get a product increment, usually represented by a user story, to a done state by the end of a sprint. The team's agreement on what "finished" actually means.
Creating clear criteria that a user story must meet before being accepted into an upcoming iteration. Making sure a task is ready to be worked on before anyone starts.
A large user story that cannot be delivered as defined within a single iteration or is large enough that it can be split into smaller user stories. A big feature that needs to be broken into smaller pieces.
The evaluation of the effort necessary to carry out a given development task; this is most often expressed in terms of duration. Your best guess at how long something will take (spoiler: it usually takes longer).
A style or approach to testing software which is often contrasted to "scripted testing." Testing by actually using the software and exploring what might break.
An agile software development framework that aims to produce higher quality software, and higher quality of life for the development team. The most specific of the agile frameworks regarding appropriate engineering practices.
A person who chooses or is given the explicit role of conducting a meeting. The person who keeps everyone focused and productive.
An Agile team frequently releases its product into the hands of end users, listening to feedback, whether critical or appreciative. Getting your app in front of real people regularly.
A template intended to guide the writing of acceptance tests for a User Story: (Given) some context, (When) some action is carried out, (Then) a particular set of observable consequences should obtain. A way to write test scenarios that makes sense.
The team meets regularly to reflect on the most significant events that occurred since the previous such meeting, and identify opportunities for improvement. Regular team therapy sessions (but for work).
When each successive version of a product is usable, and each builds upon the previous version by adding user-visible functionality. Building your product piece by piece, where each piece actually works.
Any of a number of visual displays which a team places in a highly visible location, so that all team members can see the latest information at a glance. Think dashboards or charts on the wall that everyone can see.
Any efforts still required for a project team to deliver a product suitable for release as a functional whole. Making sure all the different parts of your software work together properly.
The acronym stands for a set of criteria used to assess the quality of a user story. If the story fails to meet one of these criteria, the team may want to reword it. A checklist for good user stories.
A timebox during which development takes place. The duration may vary from project to project and is usually fixed. A short period (usually 1-4 weeks) where the team works on specific features.
Agile projects are iterative insofar as they intentionally allow for "repeating" software development activities, and for potentially "revisiting" the same work products. Building in cycles and improving as you go.
A means to design, manage, and improve flow systems for knowledge work. The method allows organizations to start with their existing workflow and drive evolutionary change by visualizing their flow of work. A visual way to manage work using boards.
A visual workflow tool consisting of multiple columns. Each column represents a different stage in the workflow process. Like a digital bulletin board showing what's "To Do," "Doing," and "Done."
The time between a customer order and delivery. In software development, it can also be the time between a requirement made and its fulfillment. How long it takes from "I want this" to "here it is."
A team's detailed analysis of the project's significant events after a set period of time or at the project's end. A big picture look back at what happened.
A small, self-contained feature that can be developed quickly and that delivers significant value to the user. The smallest thing you can build that people will actually pay for.
The "version of a new product which allows a team to collect the maximum amount of validated learning about customers with the least effort." The simplest version that people can actually use and give feedback on.
A software development approach where the whole team works on the same thing, at the same time, in the same space, and at the same computer. Like pair programming but with everyone.
Commonly used in the context of crafting automated unit tests, consisting of instantiating a test-specific version of a software component. Fake versions of things used for testing.
Updated daily with each team member's mood for that day. Over time the calendar reveals patterns of change in the moods of the team, or of individual members. A mood tracker for your team.
When you bring together a group of folks, empower them to co-create their own learning, provide just enough structure to ensure progress, and hit the Start button. Self-organizing meetings where people choose what to work on.
Two programmers sharing a single workstation. The programmer at the keyboard is usually called the "driver," the other is the "navigator." Two developers working together on the same code.
Synthetic biographies of fictitious users of the future product. Imaginary people who represent your real customers.
An approach to estimation used by Agile teams. Each team member "plays" a card bearing a numerical value corresponding to a point estimation for a user story. A fun way to estimate how long tasks will take.
Agile teams generally prefer to express estimates in units other than the time-honored "man-hours." Possibly the most widespread unit is "story points." Using relative sizing instead of hours.
A list of the new features, changes to existing features, bug fixes, infrastructure changes or other activities that a team may deliver in order to achieve a specific outcome. Your product's wishlist.
A role on a product development team responsible for managing the product backlog in order to achieve the desired outcome. The person who decides what features get built and in what order.
A high-level summary of the project's key success factors displayed on one wall of the team room as a flipchart-sized sheet of paper. Your project's mission statement on the wall.
When "simple design" choices have far-reaching consequences, two or more developers meet for a quick design session at a whiteboard. Impromptu planning sessions when things get complicated.
Improving the internal structure of an existing program's source code, while preserving its external behavior. Cleaning up code to make it better without changing what it does.
One of the several distinct flavors of estimation used in Agile teams, consisting of estimating tasks or user stories, not separately and in absolute units of time. Comparing tasks to each other instead of guessing exact hours.
A set of criteria, in priority order, proposed by Kent Beck to judge whether some source code is "simple enough." Guidelines for keeping code clean and simple.
A process framework used to manage product development and other knowledge work. Scrum is empirical in that it provides a means for teams to establish a hypothesis of how they think something works, try it out, reflect on the experience, and make the appropriate adjustments. A popular Agile framework that organizes work into sprints.
The team role responsible for ensuring the team lives agile values and principles and follows the processes and practices that the team agreed they would use. The person who helps the team follow Scrum practices and removes obstacles.
A technique to scale Scrum up to large groups (over a dozen people), consisting of dividing the groups into Agile teams of 5-10. Scrum for really big teams.
A mixture of the Scrum Method and the Kanban Method. The best of both worlds.
Members of an Agile development team normally choose which tasks to work on, rather than being assigned work by a manager. Self-service work assignment.
A team adopting the "simple design" practice bases its software design strategy on a set of "simple design" principles. Keeping things as simple as possible.
The subset of product backlog that a team targets to deliver during a sprint to accomplish the sprint goal and progress toward an outcome. What the team commits to finishing in the next sprint.
Ordering user stories along two independent dimensions based on the order activities occur and sophistication of implementation. Organizing user stories visually to see the big picture.
Breaking up one user story into smaller ones, while preserving the property that each user story separately has measurable business value. Chopping big features into smaller, valuable pieces.
The team aims for a work pace that they would be able to sustain indefinitely. Not burning out your team with crazy hours.
A basic task board is divided into three columns labeled "To Do," "In Progress," and "Done." Cards are placed in the columns reflecting the current status. A simple visual way to track work.
Test-driven development (TDD) is a style of programming where coding, testing, and design are tightly interwoven. Benefits include reduction in defect rates. Writing tests before writing the actual code.
A "team" in the Agile sense is a small group of people, assigned to the same project or effort, nearly all of them on a full-time basis. Your core group of people building the product.
The team has the use of a dedicated space for the duration of the project, set apart from other groups' activities. A shared workspace for the whole team.
"Card, Conversation, Confirmation" is a formula that captures the social nature of user stories. The three parts of every good user story.
Refers to the primary perspectives to examine an increment of work before, during, and after development. Those perspectives are: Business - What problem are we trying to solve? Development - How might we build a solution? Testing - What could possibly happen? The three key viewpoints on every feature.
The daily meeting is structured around the following three questions: What have you completed? What will you do next? What is getting in your way? The standard daily standup format.
A previously agreed period of time during which a person or a team works steadily towards completion of some goal. A fixed amount of time to work on something.
Teams use a ubiquitous language to use the vocabulary of a business in the requirements, design discussions and source code for a software product. Everyone using the same words to mean the same things.
A unit test is a short program fragment which exercises some narrow part of the product's source code and checks the results. Small tests that check if individual pieces of code work correctly.
An empirical, exploratory technique to answer questions such as "how would an end user respond to our software under realistic conditions?" Testing how real people actually use your app.
In consultation with the customer or product owner, the team divides up the work to be done into functional increments called "user stories." Short descriptions of features from the user's perspective.
The "role-feature-reason" template is one of the most commonly recommended aids to write user stories: As a ... I want ... So that ... A formula for writing good user stories.
The total effort estimates associated with user stories that were completed during an iteration. How much work your team typically gets done in a sprint.
Not merely "good practice" but an enabler of a number of Agile practices, such as continuous integration. A system that tracks changes to your code over time.
Understanding Agile terminology isn't just about sounding smart in meetings (though that's a nice bonus). When you speak the same language as your development team, you can:
Agile might seem complicated at first, but at its heart, it's about being flexible, working together, and delivering value to your customers quickly. These terms are just tools to help everyone stay on the same page.
Remember: you don't need to memorize every term overnight. Start with the basics like Sprint, Backlog, and User Story, then build from there. Your team will appreciate a founder who makes the effort to understand their world.
Ready to put this knowledge to work and build something amazing? Reach out to us for all your software development and fractional CTO needs – we'll help you navigate the Agile world and turn your vision into reality!