2.1 KiB
2.1 KiB
Clean Agile — Deep Reference
Based on Robert C. Martin, Clean Agile (2019). Use this when discussing agile values, practices, and the "Iron Cross."
Agile values (manifesto)
- Individuals and interactions over processes and tools.
- Working software over comprehensive documentation.
- Customer collaboration over contract negotiation.
- Responding to change over following a plan.
Uncle Bob stresses that the right-hand side still has value; the left-hand side is preferred when there is a trade-off.
Iron Cross (four supporting values)
| Value | What it means in practice |
|---|---|
| Communication | Prefer face-to-face (or high-bandwidth) communication; reduce information loss; keep the team aligned. |
| Courage | Courage to refactor, to say no to unreasonable requests, to change the design when the code tells you to. |
| Feedback | Short feedback loops—unit tests, integration tests, demos, small iterations. Learn fast what works and what doesn’t. |
| Simplicity | Do the simplest thing that could possibly work. Avoid speculative design and unnecessary abstraction. |
Practices
- TDD (Test-Driven Development) — Red, green, refactor. Write a failing test first, then minimal code to pass, then refactor. Tests act as specification and safety net.
- Refactoring — Continuous small improvements. Keep tests green; improve structure, names, and design in small steps.
- Pair programming — Two people at one machine. Improves design and quality; spreads knowledge. Not mandatory every hour, but a recognized practice for hard or critical work.
- Simple design — No duplication; express intent; minimal elements (classes, methods); small, focused abstractions. Add complexity only when the code asks for it (e.g., third duplication).
Relationship to craft
Clean Agile ties agile values to craft: sustainable pace, tests as requirement, refactoring as part of the loop, and simplicity over speculation. Use this reference when discussing how TDD, refactoring, or pairing support agility and quality.