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

Complexity

 Complexity

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 ACLs to TDD, 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 24, 2018
Tweet

More Decks by Daniel Terhorst-North

Other Decks in Technology

Transcript

  1. @tastapod We do what we know B back pain painkillers

    triggers relieves physio, exercise, diet, etc. back injury resolves delay B “Shifting the Burden to the Intervenor” causes diminishes “Addiction”
  2. @tastapod We do what we know B overwhelm workarounds triggers

    relieves refactoring, restructuring, simplifying, etc. complexity resolves delay B “Shifting the Burden to the Intervenor” causes “Addiction” diminishes
  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 ✓ 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