What is Agile?
In earlier modules, the term agile was used to describe a key aspect of DevOps culture: the ability to respond quickly to customer needs and feedback. However, Agile with a capital “A” has a more specific meaning. It refers to a formal approach to software development and project management that is closely aligned with DevOps practices.
In many organizations, moving from a traditional Waterfall model to Agile enables faster delivery, better quality, and stronger alignment with customer expectations.
This section explains what Agile is, its core values, and how it connects with DevOps.
Agile principles and values
Agile is a software development approach that emphasizes collaboration, continuous improvement, automation, and customer focus. Its primary objective is to deliver high-quality software more quickly and reliably.
Agile originated in 2001 with the creation of the Agile Manifesto, authored by a group of software developers who wanted a better alternative to rigid, process-heavy development models. The manifesto defines four core value statements, highlighting what Agile teams value more highly:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
These values do not eliminate processes, documentation, contracts, or planning. Instead, they emphasize flexibility, feedback, and people-driven outcomes.
Agile methods and practices
The Agile Manifesto intentionally avoids prescribing exact methods or tools. Agile is designed to be adaptable, allowing teams to select practices that best suit their context.
To provide structure, many teams adopt Agile frameworks. These frameworks offer detailed guidance across the entire software lifecycle, including planning, development, delivery, and operations. Two of the most widely used Agile frameworks are Scrum and Kanban.
What is Scrum?
Scrum is an Agile framework that helps teams collaborate and solve complex problems through short, time-boxed iterations called sprints, typically lasting between one and four weeks.
Scrum is built around three core components: events, artifacts, and roles.
Events (ceremonies)
- Sprint Planning: The team selects backlog items to work on during the sprint.
- Daily Scrum (Standup): A short, usually 15-minute daily meeting to align on progress and blockers.
- Sprint Review: The team demonstrates completed work to stakeholders.
- Sprint Retrospective: The team reflects on the sprint to identify improvements.
Artifacts
- Product Backlog: A prioritized list of features, enhancements, and fixes for the product.
- Sprint Backlog: A subset of backlog items selected for the current sprint.
- Task boards: Visual tools showing tasks as To Do, In Progress, or Done.
- Sprint burndown charts: Graphs showing remaining work over time to track sprint progress.
Roles
- Product Owner: Represents stakeholders and manages the product backlog.
- Scrum Master: Facilitates Scrum practices, removes blockers, and drives continuous improvement.
- Scrum Team: Builds the product and owns engineering quality and delivery.
Scrum teams use velocity as a metric to estimate how much work they can complete in each sprint, helping with planning and predictability.
What is Kanban?
Kanban, a Japanese term meaning “signboard,” originated in manufacturing as a method for improving efficiency. It has since been widely adopted in software development.
The foundation of Kanban is visualizing work using Kanban boards. These boards display work items as cards moving through columns that represent workflow stages, such as To Do, Doing, and Done. Teams can customize columns to reflect their actual delivery process, including stages like development and testing.
Kanban uses a pull-based model, where work is pulled into progress only when the team has capacity. This reduces overloading teams and improves quality. To further optimize flow, Kanban enforces Work in Progress (WIP) limits, restricting how many items can be actively worked on at once.
Kanban focuses on flow efficiency using key metrics:
- Lead time: Total time from request to delivery.
- Cycle time: Time spent actively working on an item.
Kanban teams also use a Cumulative Flow Diagram (CFD), which shows how work items move through different states over time. Expanding areas in the diagram often signal bottlenecks or inefficiencies.
Differences between Scrum and Kanban
Both Scrum and Kanban are Agile frameworks aimed at improving delivery speed and quality, but they differ in execution:
- Work cadence: Scrum uses fixed-length sprints; Kanban uses continuous flow.
- Roles and ceremonies: Scrum defines specific roles and events; Kanban leaves these optional.
- Work planning: Scrum commits to work during sprint planning; Kanban allows continuous reprioritization with WIP limits.
- Change handling: Scrum discourages mid-sprint changes; Kanban allows changes at any time.
- Visualization: Scrum relies on sprint boards and burndown charts; Kanban uses Kanban boards and CFDs.
- Metrics: Scrum emphasizes velocity and burndown; Kanban focuses on lead time and cycle time.
Bottom line
Agile provides the mindset and values, while Scrum and Kanban provide practical ways to apply those values. Both frameworks complement DevOps by enabling faster feedback, continuous improvement, and more reliable software delivery.
Top comments (0)