@tastapod
“It really shouldn’t be this difficult”
“Someone really thought about this”
Slide 6
Slide 6 text
@tastapod
Know your enemy
Identifying complexity
Reducing complexity
Avoiding complexity
Slide 7
Slide 7 text
@tastapod
Identifying complexity
Slide 8
Slide 8 text
@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”
Slide 9
Slide 9 text
@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
Slide 10
Slide 10 text
@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
Slide 11
Slide 11 text
@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..?”
Slide 12
Slide 12 text
@tastapod
A tale of two cities…
Slide 13
Slide 13 text
@tastapod
The real other city
Slide 14
Slide 14 text
@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
Slide 15
Slide 15 text
@tastapod
Summing up
Complexity is the default condition
Simplifying is always an option
Consistency is the key
It really shouldn’t be this difficult
Slide 16
Slide 16 text
@tastapod
Thanks for listening
@tastapod
[email protected]
http://dannorth.net