The Limited Red Society Joshua Kerievsky Industrial Logic, Inc. joshua@industriallogic.com Twitter: @JoshuaKerievsky
Major League Baseball Team Salaries - 2002
The Art of Winning An Unfair Game
Team Strategy In A Graph “Can we predict By Javier López Peña and Hugo Touchette a winning team School of Mathematical based on its Sciences passing pattern?” Queen Mary, University of London
• Total Passes: 229 • Total Passes: 462 • Network Center: 6 • Network Centers: 3, 8, 11, 14 • Left-Focused Play • Centrality Well Distributed • Focus on Few Players • Midfield Concentration • Quick Attacks/Counterstrikes • Intricate Play
Complexity & Coverage
What About What Happens During A Checkout?
TO DO IN PROGRESS DONE
TO DO IN PROGRESS DONE
My Tests Are Green!
TO DO IN PROGRESS DONE
Green?
Pink!
Compilation Rash
Compilation Errors
Comfortably Pink
// FIXME: This REALLY needs to be an enum so we don't have any more instances of forgetting to add a type to allTypes! public class TddEventType { public static final TddEventType NEW_GREEN_TEST = new TddEventType("NEW_GREEN_TEST", "green", "Circle", "New Green Test"); public static final TddEventType NEW_GOOD_RED_TEST = new TddEventType("NEW_GOOD_RED_TEST", "red", "Circle", "Started with a failing test"); public static final TddEventType NEW_BAD_RED_TEST = new TddEventType("NEW_BAD_RED_TEST", "red", "Circle", "New test while others still red"); public static final TddEventType MADE_IT_PASS = new TddEventType("MADE_IT_PASS", "green", "Circle", "Made new test pass!"); public static final TddEventType WENT_GREEN_BROKE_OTHERS = new TddEventType("WENT_GREEN_BROKE_OTHERS", "green", "Circle", "Went green, but broke other tests"); public static final TddEventType REFACTORED_GREEN = new TddEventType("REFACTORED_GREEN", "blue", "Circle", "Refactored while all tests green"); public static final TddEventType REFACTORED_RED = new TddEventType("REFACTORED_RED", "blue", "Circle", "Refactored with red tests"); public static final TddEventType REFACTORED_PINK = new TddEventType("REFACTORED_PINK", "blue", "Circle", "Refactored with compilation problems"); public static final TddEventType REFACTORED_WHITE = new TddEventType("REFACTORED_WHITE", "blue", "Circle", "Refactored while no errors present"); public static final TddEventType PREMATURE_CLASS_OR_METHOD = new TddEventType("PREMATURE_CLASS_OR_METHOD", "black", "Circle", "Added code prematurely"); public static final TddEventType CALLER_CREATED_CODE = new TddEventType("CALLER_CREATED_CODE", "black", "Circle", "Caller-created code"); public static final TddEventType REFACTORING_BEFORE_ANY_TESTS_WERE_RUN = new TddEventType("REFACTORING_BEFORE_TESTS_WERE_RUN", "blue", "Circle", "Refactored before tests were run"); public static final TddEventType ADDED_CODE_SMELL = new TddEventType("ADDED_CODE_SMELL", "purple", "Circle", "Added code smell"); public static final TddEventType REMOVED_CODE_SMELL = new TddEventType("REMOVED_CODE_SMELL", "purple", "Circle", "Removed code smell"); public final String id; public final String color; public final String shape; public final String description;
public enum TddEventType { NEW_GREEN_TEST("green", "Circle", "New Green Test"), NEW_GOOD_RED_TEST("red", "Circle", "Started with a failing test"), NEW_BAD_RED_TEST("red", "Circle", "New test while others still red"), MADE_IT_PASS("green", "Circle", "Made new test pass!"), WENT_GREEN_BROKE_OTHERS("green", "Circle", "Went green, but broke other tests"), REFACTORED_GREEN("blue", "Circle", "Refactored while all tests green"), REFACTORED_RED("blue", "Circle", "Refactored with red tests"), REFACTORED_PINK("blue", "Circle", "Refactored with compilation problems"), REFACTORED_WHITE("blue", "Circle", "Refactored while no errors present"), PREMATURE_CLASS_OR_METHOD("black", "Circle", "Added code prematurely"), CALLER_CREATED_CODE("black", "Circle", "Caller-created code"), REFACTORING_BEFORE_ANY_TESTS_WERE_RUN("blue", "Circle", "Refactored before tests were run"), ADDED_CODE_SMELL("purple", "Circle", "Added code smell"), REMOVED_CODE_SMELL("purple", "Circle", "Removed code smell"); public final String id; public final String color; public final String shape; public final String description; ...
Visualize the Work
In Progress = Red
Shortest Longest Red
Shortest Longest Red “They reverted enough to finally discover a baby step that would get them to green and set them up to write the next test, all while limited time in the red.”
“A good retreat is better than a bad stand” -- Irish Proverb
Narrowed Change
Old Code Old Code Old Code Old Code Old Code Old Code
Old Code Old Code Old Code Old Code Old Code Old Code Old Code Old Code
Old Code Old Code New Code New Code Old Code Old Code Old Code Old Code
Parallel Change
Old Code Old Code New Code New Code Old Code Old Code New Code New Code Old Code New Code Old Code New Code
Old Code Old Code New Code New Code Old Code Old Code New Code New Code Old Code New Code Old Code New Code
New Code New Code New Code New Code New Code New Code
Continuous Deployment 10 12 0 2 4 6 8 5/31/2011 6/1/2011 6/2/2011 6/3/2011 6/4/2011 6/5/2011 6/6/2011 6/7/2011 6/8/2011
The Limited Red Society Accepting Members
Recommend
More recommend