Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kicking the Complexity Habit

Kicking the Complexity Habit

Without rigorous care and attention software quickly becomes messy and unmanageable. Even with the best intentions entropy and complexity are a fact of life in growing applications. As in many other contexts it is easier to tackle the symptoms than the cause. Systems Thinking calls this behaviour "Shifting the Burden" and it is more widespread than you might think. From your IDE to your automated build, from DDD’s ACLs to TDD and other TLAs, from backlogs to burn-ups, we are surrounded by props for coping with complexity. As appealing as these are, they also make us less likely to address the underlying problem of complexity itself. Dan believes you can learn to recognise these coping mechanisms for what they are, and intends to set you on the path to simplicating your programming life.

Daniel Terhorst-North

May 20, 2014
Tweet

More Decks by Daniel Terhorst-North

Other Decks in Technology

Transcript

  1. @tastapod We do what we know http://www.freemarketcenter.com/systems/causal_loops/ Back pain Take

    painkillers Exercise, diet, lifestyle Back injury Addicted to painkillers!
  2. @tastapod We do what we know http://www.freemarketcenter.com/systems/causal_loops/ Frustration, confusion Work

    around the problem Tackle underlying complexity System complexity Loss of key skills
  3. @tastapod Painkillers are everywhere! Architecture Design Tools Techniques Process Organisation

    Enterprise mandates Undirected local choices IDEs Build automation TDD too much, too little Conway’s Law
  4. @tastapod Reducing complexity ✓ Monitor your cognitive load ✓ See

    what’s really there - and question it ✓ Use consistent idioms and principles - Principles + Context = Practices - Difference is data ✓ Familiarity is not the same as Simplicity - Use fresh eyes. “What’s the dumbest thing..?”
  5. @tastapod Avoiding complexity ✓ Complexity is the default state -

    There isn’t a “physics”, just local decisions - It grows one day at a time ✓ Consistency at scale is a daily choice - Agree idioms and guiding principles ✓ Strive for simplicity - Choose tools and techniques that make it easier
  6. @tastapod Summing up Complexity is the default condition Simplifying is

    always an option Consistency is the key
 
 
 It really shouldn’t be this difficult