Incremental Design
benji 2014-08
The Challenge
(XP Explained)
Invest in the design of the system every day. Strive to make the design of the system an excellent fit for the needs of the system that day.
When your understanding of the best possible design leaps forward, work gradually but persistently to bring the design back into alignment with your understanding.
Alternatives
- Design up front
- No Design
Simplest solution
"is the path of least resistance"
When is the last Responsible Moment?
- The God-object
- The Monolith
Pair Rotation
"destroys conceptual purity"
Collective Ownership
"no responsibility"
Continuous Integration
"tolerate the unfinished"
Mis-application worse than Non-application
Refactoring
"Work gradually but persistently to bring the system back into alignment with your understanding"
Branch by Abstraction
- Code - Functionality
- Infrastructure - Scale
Architecture as a shared responsibility
Fitness Feedback Mechanism
How?
Please Share
- When did things improve?
- When did things get worse?
- Why?
- How can we do better?