Sufficient Design

96
Sufficient Design December 2010 Joshua Kerievsky Industrial Logic, Inc. Twitter: @JoshuaKerievsky #SufficientDesign Thursday, December 16, 2010

description

If your software product were a film, which of its features would be a movie star, a supporting actor or an extra?Should you invest more in the software design of star features, especially if they generate the most revenue? And if so, what level of design quality is sufficient forfeatures that are supporting actors or extras? Doesn't Software Craftsmanship tell us that we need to write clean and simple code, regardless of its role? Or, if we are Lean and focus on increasing the speed of concept to cash, will quality suffer?Sufficient Design answers these questions and points the way towards how to blend Lean processes with Software Craftsmanship.

Transcript of Sufficient Design

Page 1: Sufficient Design

Sufficient Design

December 2010Joshua Kerievsky

Industrial Logic, Inc.Twitter: @JoshuaKerievsky

#SufficientDesign

Thursday, December 16, 2010

Page 2: Sufficient Design

ThereIFixedIt.comThursday, December 16, 2010

Page 3: Sufficient Design

ThereIFixedIt.comThursday, December 16, 2010

Page 4: Sufficient Design

ThereIFixedIt.comThursday, December 16, 2010

Page 5: Sufficient Design

ThereIFixedIt.comThursday, December 16, 2010

Page 6: Sufficient Design

ThereIFixedIt.comThursday, December 16, 2010

Page 7: Sufficient Design

ThereIFixedIt.comThursday, December 16, 2010

Page 8: Sufficient Design

Thursday, December 16, 2010

Page 9: Sufficient Design

What Is

Sufficient Design?

Thursday, December 16, 2010

Page 10: Sufficient Design

Thursday, December 16, 2010

Page 11: Sufficient Design

Thursday, December 16, 2010

Page 12: Sufficient Design

Build It Right!

Thursday, December 16, 2010

Page 13: Sufficient Design

Build It Right!

Ship It Fast!

Thursday, December 16, 2010

Page 14: Sufficient Design

Thursday, December 16, 2010

Page 15: Sufficient Design

Build It Right!

Ship It Fast!

What Is Best?

Thursday, December 16, 2010

Page 16: Sufficient Design

Thursday, December 16, 2010

Page 17: Sufficient Design

Dirty Clean

Fast

SlowThursday, December 16, 2010

Page 18: Sufficient Design

Dirty Clean

Fast

SlowThursday, December 16, 2010

Page 19: Sufficient Design

Dirty Clean

Fast

SlowThursday, December 16, 2010

Page 20: Sufficient Design

Dirty Clean

Fast

SlowThursday, December 16, 2010

Page 21: Sufficient Design

Dirty Clean

Fast

SlowThursday, December 16, 2010

Page 22: Sufficient Design

Dirty Clean

Fast

Slow

DEFECT

Thursday, December 16, 2010

Page 23: Sufficient Design

Low High

Value

Low High

Demand

Slow Fast

Delivery

Thursday, December 16, 2010

Page 24: Sufficient Design

Complex Simple

Design

Low High

Debt

Assembled Crafted

Development

Thursday, December 16, 2010

Page 25: Sufficient Design

5.X Development Deathcycle

Thursday, December 16, 2010

Page 26: Sufficient Design

1.0 Release

Thursday, December 16, 2010

Page 27: Sufficient Design

2.0 Release

Thursday, December 16, 2010

Page 28: Sufficient Design

3.0 Release

Thursday, December 16, 2010

Page 29: Sufficient Design

4.0 Release

Thursday, December 16, 2010

Page 30: Sufficient Design

5.0 Release

Thursday, December 16, 2010

Page 31: Sufficient Design

Costof

Change(CoC)

1 2 3 4 5Years

Release

Actual CoC

Optimal CoC

Model courtesy of Jim HighsmithThursday, December 16, 2010

Page 32: Sufficient Design

Costof

Change(CoC)

1 2 3 4 5Years

Release

Actual CoC

Technical Debt

Optimal CoC

Model courtesy of Jim HighsmithThursday, December 16, 2010

Page 33: Sufficient Design

Costof

Change(CoC)

1 2 3 4 5Years

Release

Actual CoC

Technical Debt

Optimal CoC

CustomerResponsiveness

Model courtesy of Jim HighsmithThursday, December 16, 2010

Page 34: Sufficient Design

Thursday, December 16, 2010

Page 35: Sufficient Design

Thursday, December 16, 2010

Page 36: Sufficient Design

Thursday, December 16, 2010

Page 37: Sufficient Design

Thursday, December 16, 2010

Page 38: Sufficient Design

Thursday, December 16, 2010

Page 39: Sufficient Design

Thursday, December 16, 2010

Page 40: Sufficient Design

Thursday, December 16, 2010

Page 41: Sufficient Design

Thursday, December 16, 2010

Page 42: Sufficient Design

Thursday, December 16, 2010

Page 43: Sufficient Design

Thursday, December 16, 2010

Page 44: Sufficient Design

Thursday, December 16, 2010

Page 45: Sufficient Design

Thursday, December 16, 2010

Page 46: Sufficient Design

Sufficient DesignCase Studies

Thursday, December 16, 2010

Page 47: Sufficient Design

Thursday, December 16, 2010

Page 48: Sufficient Design

Thursday, December 16, 2010

Page 49: Sufficient Design

Manufacture In Bulk At Low Cost

Thursday, December 16, 2010

Page 50: Sufficient Design

Deliver At No Cost To Least Served

Thursday, December 16, 2010

Page 51: Sufficient Design

Goal: Quickly DeliverTo 20 Million People

Thursday, December 16, 2010

Page 52: Sufficient Design

CheapPatio

Furniture

Tough,DurableBike Tire

ToughCheap

Castors

Steel FrameCheaply

Produced

SimpleParts +

Assembly

$59.20Competitor? $150

Thursday, December 16, 2010

Page 53: Sufficient Design

CheapPatio

Furniture

Tough,DurableBike Tire

ToughCheap

Castors

Steel FrameCheaply

Produced

SimpleParts +

Assembly

$59.20Competitor? $150

Thursday, December 16, 2010

Page 54: Sufficient Design

Low

Value

Low

Demand

Slow

Delivery

High

High

Fast

Thursday, December 16, 2010

Page 55: Sufficient Design

Complex Simple

Design

Low High

Debt

Assembled Crafted

Development

Thursday, December 16, 2010

Page 56: Sufficient Design

Thursday, December 16, 2010

Page 57: Sufficient Design

Low High

Value

Low High

Demand

Slow Fast

Delivery

Thursday, December 16, 2010

Page 58: Sufficient Design

Complex Simple

Design

Low High

Debt

Assembled Crafted

Development

Thursday, December 16, 2010

Page 59: Sufficient Design

Quick Collaborationon the Web

Thursday, December 16, 2010

Page 60: Sufficient Design

Low High

Value

Low High

Demand

Slow Fast

Delivery

Thursday, December 16, 2010

Page 61: Sufficient Design

Complex Simple

Design

Low High

Debt

Assembled Crafted

Development

Thursday, December 16, 2010

Page 62: Sufficient Design

Thursday, December 16, 2010

Page 63: Sufficient Design

Low High

Value

Low High

Demand

Slow Fast

Delivery

Thursday, December 16, 2010

Page 64: Sufficient Design

Complex Simple

Design

Low High

Debt

Assembled Crafted

Development

Thursday, December 16, 2010

Page 65: Sufficient Design

Thursday, December 16, 2010

Page 66: Sufficient Design

Thursday, December 16, 2010

Page 67: Sufficient Design

Low High

Value

Low High

Demand

Slow Fast

Delivery

Thursday, December 16, 2010

Page 68: Sufficient Design

Complex Simple

Design

Low High

Debt

Assembled Crafted

Development

Thursday, December 16, 2010

Page 69: Sufficient Design

Thursday, December 16, 2010

Page 70: Sufficient Design

Thursday, December 16, 2010

Page 71: Sufficient Design

Thursday, December 16, 2010

Page 72: Sufficient Design

Thursday, December 16, 2010

Page 73: Sufficient Design

Low High

Value

Low High

Demand

Slow

Delivery

Fast

Thursday, December 16, 2010

Page 74: Sufficient Design

Simple

Design

Low High

Debt

Assembled Crafted

Development

Complex

Thursday, December 16, 2010

Page 75: Sufficient Design

Thursday, December 16, 2010

Page 76: Sufficient Design

Sketch

Thursday, December 16, 2010

Page 77: Sufficient Design

Sketch

Thursday, December 16, 2010

Page 78: Sufficient Design

Sketch

Craft

Thursday, December 16, 2010

Page 79: Sufficient Design

Sketch

Craft

RefineThursday, December 16, 2010

Page 80: Sufficient Design

Fowler’s Design Payoff Line

Thursday, December 16, 2010

Page 81: Sufficient Design

Thursday, December 16, 2010

Page 82: Sufficient Design

“Good Enough” involves rational choices, not compulsive behavior.

-James Bach, Good Enough Quality

Thursday, December 16, 2010

Page 83: Sufficient Design

Thursday, December 16, 2010

Page 84: Sufficient Design

Thursday, December 16, 2010

Page 85: Sufficient Design

Thursday, December 16, 2010

Page 86: Sufficient Design

Thursday, December 16, 2010

Page 87: Sufficient Design

Sufficient Design may be Excellent to Poor design based on the CONTEXT at hand.

Thursday, December 16, 2010

Page 88: Sufficient Design

Good Enough has nothing to do

with mediocrity. -James Bach,

Good Enough Quality

Thursday, December 16, 2010

Page 89: Sufficient Design

“Our goal is to achieve an acceptable level

of risk.”-James Bach,

The Challenge of “Good Enough” Software

Thursday, December 16, 2010

Page 90: Sufficient Design

Thursday, December 16, 2010

Page 91: Sufficient Design

“Learn One New

Programming Language

Every Year.”

Thursday, December 16, 2010

Page 92: Sufficient Design

“Learn One New

Programming Language

Every OTHERYear.”

Thursday, December 16, 2010

Page 93: Sufficient Design

Thursday, December 16, 2010

Page 94: Sufficient Design

Thursday, December 16, 2010

Page 95: Sufficient Design

Thank You!

Thursday, December 16, 2010