emergent design: cakes, showers and electricians

47
cakes, showers and electricians EMERGENT DESIGN Rouan Wilsenach @rouanw rouanw.github.io thoughtworks.com

Upload: rouanw

Post on 13-Apr-2017

868 views

Category:

Software


2 download

TRANSCRIPT

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

9 ANDY 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

SIMPLICITYWhat 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

BEFOREPreparatory 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

DURINGContinuous refactoring

35

36

Don’t forget the last step

37

Talk through it

AFTERTake 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

RECAPAgain! 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