Software exists to be changed. “Ware” means product; “soft” means easy to change. If our systems are hard to alter, we’ve turned software into hardware by mistake.
When requirements shift and builders complain, “That change breaks our architecture,” it’s a clear indication that the architecture sucks!
Embrace change as the point of the work. We make change inexpensive by focusing on tests, refactoring, simple design, and pairing. And we build architectures that bend without snapping so the team can deliver value continuously instead of fighting the codebase.
Discussions for the team
- Do we treat change as the norm or as an annoyance?
- What parts of our design resist safe change?
- Are TDD and refactoring in daily use?
- Approx how much does a typical change cost here?
- What new habits can we adopt to make change cheaper?