Incremental Design

benji 2014-08

Start Thinking

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

XP doesn't work

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"

TDD
"induced damage"

Mis-application worse than Non-application

Toolbox

Refactoring

"Work gradually but persistently to bring the system back into alignment with your understanding"

Boy-scout rule

Branch by Abstraction

  • Code - Functionality
  • Infrastructure - Scale

Compatability View

Money

Big Picture

Complementary Stories

Avoid Pressure

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?