Agile guide · Agile beyond software
How Agile Software Development Works: Practices and Best Practices
Agile software development is where Agile began. Teams deliver working software in short iterations, supported by engineering practices that keep quality high while requirements change.
Key takeaways
- Agile software teams deliver working software in short iterations.
- TDD, CI/CD, code review and refactoring keep quality high under change.
- DevOps extends Agile into release and operations.
The development cycle
- The Product Owner orders a backlog of user stories.
- In Sprint Planning, developers pick stories and break them into tasks.
- Developers write code and automated tests together.
- Code is reviewed and merged frequently into a shared main branch.
- Continuous integration builds and tests every change automatically.
- Finished stories are demonstrated at the Sprint Review and released, sometimes many times a day.
See the Agile development life cycle for the wider process.
Core engineering practices
| Practice | What it is | Why it matters |
|---|---|---|
| Test-driven development (TDD) | Write a failing test, then the code to pass it, then refactor | Fewer defects, better design |
| Continuous integration (CI) | Merge and test code at least daily | Integration problems found early |
| Continuous delivery (CD) | Keep software always releasable; automate deployment | Fast, low-risk releases |
| Pair programming | Two developers share one task | Quality and knowledge sharing |
| Code review | Another developer checks each change | Quality and shared ownership |
| Refactoring | Improve code structure without changing behaviour | Keeps code easy to change |
| Trunk-based development | Short-lived branches merged quickly | Avoids painful merges |
Agile and DevOps
DevOps extends Agile beyond development into operations: teams own their software in production, automate infrastructure, monitor real usage and recover quickly from failures. Widely used DevOps measures include deployment frequency, lead time for changes, change failure rate and time to restore service.
Best practices
- Keep stories small enough to finish in a few days.
- Make the Definition of Done include automated tests.
- Pay down technical debt continuously; reserve capacity each sprint.
- Automate builds, tests and deployments.
- Release small changes often, using feature flags to separate deployment from release.
- Involve users early and measure real usage after release.
- Hold blameless reviews after incidents.
Free templates for this topic
Frequently asked questions
What is the difference between Agile software development and DevOps?
Agile focuses on how teams plan and build software iteratively; DevOps extends that collaboration and automation into releasing and running the software.
Does Agile software development still need documentation?
Yes: enough to help users and future developers, such as clear code, automated tests, API docs and short decision records.
What is Agile software development?
Building software in short iterations by small cross-functional teams, with frequent integration, testing and release, and regular feedback from users.
What is test-driven development in Agile software development?
Writing a failing automated test first, then the code to pass it, then refactoring. It leads to fewer defects and better design.
What is continuous integration in Agile software development?
Merging and testing code changes at least daily, with automated builds and tests, so integration problems are found early.
In Agile software development, what is the difference between continuous integration and continuous delivery?
Continuous integration merges and tests changes frequently; continuous delivery keeps the software always releasable, with automated deployment.
What is pair programming in Agile software development?
Two developers working on one task at one screen, improving quality and spreading knowledge.
What is trunk-based development in Agile software development?
A practice in which developers use short-lived branches and merge into the main branch frequently, avoiding painful merges.
What is refactoring in Agile software development?
Improving the structure of code without changing its behaviour, so it stays easy to change.
What is technical debt in Agile software development?
The future cost of shortcuts in code or design. Left unmanaged, it slows teams down and can show up as falling velocity.
How big should a user story be in Agile software development?
Small enough to finish in a few days, so it can be built, tested and integrated within a sprint. See user stories.