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.

08145ecb1ce091d9dd3c328ea2a707fb?s=128

Daniel Terhorst-North

May 24, 2018
Tweet

Transcript

  1. Kicking the Complexity Habit Dan North @tastapod

  2. Kicking the Complexity Habit Dan North @tastapod

  3. Kicking Complexity Dan North @tastapod

  4. Complexity @tastapod

  5. @tastapod “It really shouldn’t be this difficult” “Someone really thought

    about this”
  6. @tastapod Know your enemy Identifying complexity Reducing complexity Avoiding complexity

  7. @tastapod Identifying complexity

  8. @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”
  9. @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
  10. @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
  11. @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..?”
  12. @tastapod A tale of two cities…

  13. @tastapod The real other city

  14. @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
  15. @tastapod Summing up Complexity is the default condition Simplifying is

    always an option Consistency is the key It really shouldn’t be this difficult
  16. @tastapod Thanks for listening @tastapod dan@dannorth.net http://dannorth.net