c a k e s , s h o w e r s a n d e l e c t r i c i a n s
EMERGENT DESIGN
Rouan Wilsenach
@rouanw
rouanw.github.io
thoughtworks.com
2
It is not enough for code
to work.
- Robert Martin
3
4
WHY DESIGN ?
5
6
7
8
9ANDY GREENBERG/WIRED
10Steve Jurvetson
11
Easy to learn Fast to changeFewer bugs
WHY EMERGENT ?
12
13https://www.flickr.com/photos/jshj/4619958228
14https://www.flickr.com/photos/chrisny2/4637837938
15
Build. Measure. Learn.
16
emerge
verb • become apparent
https://www.flickr.com/photos/schnappi/2321628609
17
not
become well-designed
https://www.flickr.com/photos/evaysucamara/5438832695
18
a change made in analysis
for $1 would cost thousands
to fix in production
- The change curve
19
a change made in analysis
for $1 would cost thousands
to fix in production
- The change curve
SIMPLICITY
What is good design?
20
21
Why is this so hard?
- Every developer, ever
22
a system made out of genuinely
simple parts, is going to be able to
affect the greatest change with
the least work
- Rich Hickey
23http://martinfowler.com/bliki/BeckDesignRules.html
AWAY FROM
!
THE CODE
24
25
Talk about it
26
Draw something
27
Know your challenges
28
Where are we going?
29
IN FRONT OF
!
THE CODE
30
31
refactoring
noun • a change made to the
internal structure of software to
make it easier to understand and
cheaper to modify without
changing its observable behaviour
http://martinfowler.com/bliki/DefinitionOfRefactoring.html
BEFORE
Preparatory refactoring
32
33
Make the change easy
(warning: this may be hard),
then make the easy change
- Kent Beck
34
You must kill all your
darlings
- William Faulkner
DURING
Continuous refactoring
35
36
Don’t forget the last step
37
Talk through it
AFTER
Take a step back
38
39
When writing code we
should always be
thinking of the reader
- Martin Fowler
40
Always leave the campground
cleaner than you found it.
- The boy scout rule, Robert Martin
41
Perfect is the
enemy of good.
- Voltaire
RECAP
Again! Again!
42
43
Build. Measure. Learn.
Working code is not enough
change the change curve
44
Simplicity
45
In front of
the code
Away from
the code
SOME RESOURCES
Articles
• http://martinfowler.com/articles/designDead.html
• http://martinfowler.com/bliki/BeckDesignRules.html
• bit.ly/nf-ead-all (Neal Ford)
Videos
• http://www.infoq.com/presentations/Simple-Made-Easy (Rich Hickey)
• https://vimeo.com/16955608 (Neal Ford)
Books
• http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882
(Uncle Bob)
• http://www.amazon.com/Extreme-Programming-Explained-Embrace-Edition/dp/0321278658
(Kent Beck)
News
• http://www.wired.com/2015/07/hackers-remotely-kill-jeep-highway/
• http://motherboard.vice.com/en_uk/read/how-is-critical-life-or-death-software-tested
46
a m e t a p h o r m a s h - u p
EMERGENT DESIGN
Rouan Wilsenach
@rouanw
rouanw.github.io
thoughtworks.com

Emergent design: cakes, showers and electricians.