Slide 1

Slide 1 text

Microservices: software that fits in your head Dan North @tastapod

Slide 2

Slide 2 text

What is the point of software development?

Slide 3

Slide 3 text

What is the purpose of software development?

Slide 4

Slide 4 text

business impact create What is the purpose of software development?

Slide 5

Slide 5 text

business impact create positive What is the purpose of software development?

Slide 6

Slide 6 text

What is the goal of software development?

Slide 7

Slide 7 text

What is the goal of software development? to business impact minimise lead time

Slide 8

Slide 8 text

What is the goal of software development? to business impact minimise lead time sustainably

Slide 9

Slide 9 text

The goal is not to produce software!

Slide 10

Slide 10 text

produce

Slide 11

Slide 11 text

produce production

Slide 12

Slide 12 text

produce production productive

Slide 13

Slide 13 text

≠ effective productive

Slide 14

Slide 14 text

Code is not the asset…

Slide 15

Slide 15 text

Code is not the asset… Code is the cost!

Slide 16

Slide 16 text

Code is not the asset… Code is the cost! - writing code costs


Slide 17

Slide 17 text

Code is not the asset… Code is the cost! - writing code costs
 - waiting for code costs


Slide 18

Slide 18 text

Code is not the asset… Code is the cost! - writing code costs
 - waiting for code costs
 - changing code costs


Slide 19

Slide 19 text

Code is not the asset… Code is the cost! - writing code costs
 - waiting for code costs
 - changing code costs
 - understanding code costs

Slide 20

Slide 20 text

understanding code

Slide 21

Slide 21 text

understanding code code I know

Slide 22

Slide 22 text

understanding code code I know code everyone knows

Slide 23

Slide 23 text

understanding code code I know code everyone knows code no-one knows!

Slide 24

Slide 24 text

Code should be stabilised or killed off

Slide 25

Slide 25 text

Code should be stabilised or killed off fast!

Slide 26

Slide 26 text

Two complementary patterns

Slide 27

Slide 27 text

Two complementary patterns Short Software Half-Life

Slide 28

Slide 28 text

Two complementary patterns Short Software Half-Life Fits In My Head

Slide 29

Slide 29 text

Short Software Half-Life

Slide 30

Slide 30 text

Short Software Half-Life Design considerations

Slide 31

Slide 31 text

Short Software Half-Life - write discrete components
 Design considerations

Slide 32

Slide 32 text

Short Software Half-Life - write discrete components
 - define component boundary
 Design considerations

Slide 33

Slide 33 text

Short Software Half-Life - write discrete components
 - define component boundary
 - define component purpose
 Design considerations

Slide 34

Slide 34 text

Short Software Half-Life - write discrete components
 - define component boundary
 - define component purpose
 - define component responsibility Design considerations

Slide 35

Slide 35 text

Short Software Half-Life Stewardship considerations

Slide 36

Slide 36 text

Short Software Half-Life - write component tests and docs
 Stewardship considerations

Slide 37

Slide 37 text

Short Software Half-Life - write component tests and docs
 - optimise for replaceability
 Stewardship considerations

Slide 38

Slide 38 text

Short Software Half-Life - write component tests and docs
 - optimise for replaceability
 - expect to invest in stabilising
 Stewardship considerations

Slide 39

Slide 39 text

Short Software Half-Life - write component tests and docs
 - optimise for replaceability
 - expect to invest in stabilising
 - build a stable team Stewardship considerations

Slide 40

Slide 40 text

Fits In My Head

Slide 41

Slide 41 text

Fits In My Head - multiple dimensions

Slide 42

Slide 42 text

Fits In My Head - multiple dimensions - multiple scales

Slide 43

Slide 43 text

Fits In My Head - multiple dimensions - multiple scales - “What would James do?”

Slide 44

Slide 44 text

Fits In My Head - multiple dimensions - multiple scales - “What would James do?” Contextual Consistency

Slide 45

Slide 45 text

Fits In My Head - multiple dimensions - multiple scales - “What would James do?” Contextual Consistency - agree guiding principles

Slide 46

Slide 46 text

Fits In My Head - multiple dimensions - multiple scales - “What would James do?” Contextual Consistency - agree guiding principles - agree idioms

Slide 47

Slide 47 text

Fits In My Head - multiple dimensions - multiple scales - “What would James do?” Contextual Consistency - agree guiding principles - agree idioms - difference is data

Slide 48

Slide 48 text

Fits In My Head - multiple dimensions - multiple scales - “What would James do?” Contextual Consistency - agree guiding principles - agree idioms - difference is data - familiarity ≠ simplicity

Slide 49

Slide 49 text

Replaceable Component Architecture

Slide 50

Slide 50 text

Replaceable Component Architecture sustainably…

Slide 51

Slide 51 text

Replaceable Component Architecture sustainably…

Slide 52

Slide 52 text

Replaceable Component Architecture sustainably…

Slide 53

Slide 53 text

Replaceable Component Architecture sustainably…

Slide 54

Slide 54 text

Replaceable Component Architecture sustainably…

Slide 55

Slide 55 text

Replaceable Component Architecture sustainably…

Slide 56

Slide 56 text

Replaceable Component Architecture sustainably… “little computers
 passing messages”

Slide 57

Slide 57 text

Replaceable Component Architecture sustainably… “little computers
 passing messages” — Alan Kay

Slide 58

Slide 58 text

Replaceable Component Architecture sustainably… “little computers passing messages” — Alan Kay

Slide 59

Slide 59 text

Microservices can be a Replaceable Component Architecture

Slide 60

Slide 60 text

Microservices can be a Replaceable Component Architecture - if you choose to optimise for replaceability and consistency


Slide 61

Slide 61 text

Microservices can be a Replaceable Component Architecture - if you choose to optimise for replaceability and consistency
 - smaller is not necessarily better


Slide 62

Slide 62 text

Microservices can be a Replaceable Component Architecture - if you choose to optimise for replaceability and consistency
 - smaller is not necessarily better
 - more replaceable is better

Slide 63

Slide 63 text

Kill code fearlessly!

Slide 64

Slide 64 text

Kill code fearlessly! code I know code everyone knows code no-one knows!

Slide 65

Slide 65 text

Kill code fearlessly! code I know code everyone knows

Slide 66

Slide 66 text

Thank you! Dan North @tastapod http:/ /dannorth.net http:/ /leanpub.com/software-faster