Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

104
1 Microservices and Conway’s Law James Lewis @thoughtworks ROME 24-25 MARCH 2017

Transcript of Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

Page 1: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

1

Microservices and Conway’s Law James Lewis @thoughtworks

ROME 24-25 MARCH 2017

Page 2: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

2

Page 3: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

CONSULTANTS!HELL YEAH!

Page 4: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

4

Page 5: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

5

BDD

Page 6: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

6

Page 7: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017
Page 8: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

8

“…organizations which design systems … are constrained to produce designs which are copies of the communication structure of those organizations”Melvyn Conway, 1968

Page 9: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017
Page 10: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

The mirroring phenomenon is consistent with two rival causal mechanisms. First, designs may evolve to reflect their development environments. In tightly-coupled organizations, dedicated teams employed by a single firm and located at a single site develop the design. Problems are solved by face-to-face interaction, and performance “tweaked” by taking advantage of the access that module developers have to information and solutions developed in other modules. Even if not an explicit managerial choice, the design naturally becomes more tightly-coupled.

By contrast, in loosely-coupled organizations, a large, distributed team of volunteers develops the design. Face-to-face communications are rare given most developers never meet. Hence fewer connections between modules are established. The architecture that evolves is more modular as a result of the limitations on communication between developers.

10

http://www.hbs.edu/faculty/Publication%20Files/08-039_1861e507-1dc1-4602-85b8-90d71559d85b.pdf

"Exploring the Duality between Product and Organizational Architectures : A Test of the “Mirroring” Hypothesis"

Page 11: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

loosely-coupled organizations ⇒ the architecture is more modular

11

tightly-coupled organizations ⇒ the design becomes more tightly-coupled.

Page 12: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

organised around business capabilities

componentisation via services

products not projects

smart endpoints and dumb pipes

decentralised governance

decentralised data management

infrastructure automation

evolutionary design

designed for failure

Page 13: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

organised around business capabilities

componentisation via services

products not projects

smart endpoints and dumb pipes

decentralised governance

decentralised data management

infrastructure automation

evolutionary design

designed for failure

Page 14: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

How big are they?

Page 15: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017
Page 16: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017
Page 17: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017
Page 18: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

18

microservices should be:

cheap to replace

and should allow you to go as “fast as possible”?

quick to scale

resilient

Page 19: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

A TYPICAL COMPANYI got approximately 5 problems out of a maximum of about 20- I reckon

19

Page 20: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

develop-ment

20

testing

architects

ops

PMO

HR

sales

marketingfinance

Page 21: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

21

Page 22: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

develop-ment

22

testing

architects

ops

PMO

HR

sales

marketing

finance

Page 23: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

23

Project(process(

1(

Business

IT Solutions

dev

QA

Support

Idea

High level Estimation

and decision to proceed

Deployment

Testing

Business Requirement Document

Business Case

Project Brief

Functional spec

Initiation Doc

reqs. matrix

Detailed Estimate

Project Approve

d

TDD

PM docs

Test Script

s

Change Request

Requirements

clarification and

estimation

1010100010100101011010 Dev

Kick off Coding (Dev)

Additional <thing> raised

>10%

CAPEX

<10%

CAPEX

Support handover

User Acceptance

Testing

Normal Flow

Data Flow

Alternate Process

Flow

KEY

Dropped requirements become

Enhancements

Page 24: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

24

Page 25: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

develop-ment

25

testing

architects

ops

PMO

HR

sales

marketing

finance

Page 26: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

26

each of these chords represents at least one queue

Page 27: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

27

Page 28: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

28

Page 29: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

“There is nothing so useless as doing efficiently that which should not be done at all” Peter Drucker

29

Page 30: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

SYSTEMS WOT I HAVE SEENa synthesis of many different experiences…

30

Page 31: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

31

A capability is a combination of people, processes, systems that provides value to customers (internal or external)

The what of the business, not the how

Page 32: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

32

delivering stuff selling stuff

Often capabilities are built by large teams

Page 33: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

33

delivering stuff selling stuff

Using project-thinking, not product thinking*

* http://lmgtfy.com/?q=GDS+service+thinking

Page 34: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

34

And the nicely decoupled capabilities end up looking like this

Page 35: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

Feature starts dev

iteration 2

iteration 1

iteration 3

Feature deployed

regression testingperformance testing

deployment tests

cycle time

Anyone seen 6 week periods of “hardening”?

Page 36: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

Unit TestsBuild Service TestsService A

BuildService B

End-to-end Tests

BuildService C

BuildService D

Service TestsUnit Tests

Unit Tests

Unit Tests

Service Tests

Service Tests

Anyone seen “fan-in” to end to end tests?

Page 37: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

Anyone had to deploy everything all at once?

write spec

write code

test release

Without deploying into production, inventory is built up - inventory costs money and the more we have the more risky our deployments

?

Page 38: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

38

beware the distributed monolith!

Page 39: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

39

this is a recipe for a nervous breakdown

this is not “as fast as possible”

Page 40: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017
Page 41: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

WHAT MIGHT GOOD LOOK LIKE?

41

Page 42: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

42

Page 43: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

Pauline Cafferkey

Page 44: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

44

Team at the Royal Free

Page 45: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

infectious

45

lab services

facilities

domestic

physio

micro biology

estates

pharmacy

finance

Royal Free Hospital

Capabilities

<other><other>

Page 46: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

infectious

46

lab services

facilities

domestic

physio

micro biologyestates

pharmacy

finance

Page 47: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

47“The approach favors agility over raw power <snip>”http://en.wikipedia.org/wiki/OODA_loop

Page 48: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

48

1 Dr Rebecca Lester, Infectious diseases, Specialist registrar

2 Dr Damien Mack, Microbiology, Consultant

3 Dr Ruaridh Buchanan, Infectious diseases, Specialist registrar

4 Dr Simon Warren, Infectious diseases, Consultant

5 Oliver Carpenter, Infectious diseases, Nurse clinical practice educator

6 Breda Athanasopoulos, Infectious diseases, Senior matron lead high level isolation unit

7 Dr Tabitha Mahungu, Infectious diseases, Specialist registrar

8 Susan Coath, Infectious diseases, Ward sister

9 Zenaida Pandio, Domestic services, Housekeeper

10 Claire Harawa, Domestic services, Domestic team leader

11 Renato Pandio, Domestic services, Deep cleaner

12 Sheila Connolly, Patient environment, Head of patient environment

13 Peter Williams, Facilities, Security manager

14 Marchito Tumibay, Domestic services, Support worker

15 Michael Campo, Facilities, Porter

16 Lauren Geddes, Physiotherapy, Clinical lead cardiorespiratory care

17 Victoria Maddox, Laboratory service, Senior health care scientist

18 Nikki Williams, Infectious diseases, Ward sister

19 Dr Sanjay Bhagani, Infectious diseases, Consultant

20 Sarah Stanley, Patient at risk team, Nurse consultant

21 Dr Susan Hopkins, Infectious diseases and microbiology, Consultant

22 Torrain Exall, Physiotherapy, Clinical lead critical care

23 Dr Stephen Mepham, Infectious diseases and microbiology, Consultant

24 Dr Michael Jacobs, Infectious diseases, Consultant

25 Simon Rattenbury, Laboratory service, Head of laboratory service

26 Bryan O’Farrell, Pharmacy, Senior Pharmacist

27 Adrien Cooper, Estates, Director of estates

28 Robert Elliot-Cooke, Pharmacy, Senior pharmacist

29 Allan Harris, Estates, Engineering supervisor

30 Sumal Kuranaratne, Facilities, Support services manager

31 Dave Reavy, Facilities, Head of security and support services

32 Garba Ibrahim, Domestic services, Domestic team leader

33 Stephen King, Royal Free Charity, Head of finance

Page 49: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

49

1 Dr Rebecca Lester, Infectious diseases, Specialist registrar

2 Dr Damien Mack, Microbiology, Consultant

3 Dr Ruaridh Buchanan, Infectious diseases, Specialist registrar

4 Dr Simon Warren, Infectious diseases, Consultant

5 Oliver Carpenter, Infectious diseases, Nurse clinical practice educator

6 Breda Athanasopoulos, Infectious diseases, Senior matron lead high level isolation unit

7 Dr Tabitha Mahungu, Infectious diseases, Specialist registrar

8 Susan Coath, Infectious diseases, Ward sister

9 Zenaida Pandio, Domestic services, Housekeeper

10 Claire Harawa, Domestic services, Domestic team leader

11 Renato Pandio, Domestic services, Deep cleaner

12 Sheila Connolly, Patient environment, Head of patient environment

13 Peter Williams, Facilities, Security manager

14 Marchito Tumibay, Domestic services, Support worker

15 Michael Campo, Facilities, Porter

16 Lauren Geddes, Physiotherapy, Clinical lead cardiorespiratory care

17 Victoria Maddox, Laboratory service, Senior health care scientist

18 Nikki Williams, Infectious diseases, Ward sister

19 Dr Sanjay Bhagani, Infectious diseases, Consultant

20 Sarah Stanley, Patient at risk team, Nurse consultant

21 Dr Susan Hopkins, Infectious diseases and microbiology, Consultant

22 Torrain Exall, Physiotherapy, Clinical lead critical care

23 Dr Stephen Mepham, Infectious diseases and microbiology, Consultant

24 Dr Michael Jacobs, Infectious diseases, Consultant

25 Simon Rattenbury, Laboratory service, Head of laboratory service

26 Bryan O’Farrell, Pharmacy, Senior Pharmacist

27 Adrien Cooper, Estates, Director of estates

28 Robert Elliot-Cooke, Pharmacy, Senior pharmacist

29 Allan Harris, Estates, Engineering supervisor

30 Sumal Kuranaratne, Facilities, Support services manager

31 Dave Reavy, Facilities, Head of security and support services

32 Garba Ibrahim, Domestic services, Domestic team leader

33 Stephen King, Royal Free Charity, Head of finance

Page 50: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

50

1 Dr Rebecca Lester, Infectious diseases, Specialist registrar

2 Dr Damien Mack, Microbiology, Consultant

3 Dr Ruaridh Buchanan, Infectious diseases, Specialist registrar

4 Dr Simon Warren, Infectious diseases, Consultant

5 Oliver Carpenter, Infectious diseases, Nurse clinical practice educator

6 Breda Athanasopoulos, Infectious diseases, Senior matron lead high level isolation unit

7 Dr Tabitha Mahungu, Infectious diseases, Specialist registrar

8 Susan Coath, Infectious diseases, Ward sister

9 Zenaida Pandio, Domestic services, Housekeeper

10 Claire Harawa, Domestic services, Domestic team leader

11 Renato Pandio, Domestic services, Deep cleaner

12 Sheila Connolly, Patient environment, Head of patient environment

13 Peter Williams, Facilities, Security manager

14 Marchito Tumibay, Domestic services, Support worker

15 Michael Campo, Facilities, Porter

16 Lauren Geddes, Physiotherapy, Clinical lead cardiorespiratory care

17 Victoria Maddox, Laboratory service, Senior health care scientist

18 Nikki Williams, Infectious diseases, Ward sister

19 Dr Sanjay Bhagani, Infectious diseases, Consultant

20 Sarah Stanley, Patient at risk team, Nurse consultant

21 Dr Susan Hopkins, Infectious diseases and microbiology, Consultant

22 Torrain Exall, Physiotherapy, Clinical lead critical care

23 Dr Stephen Mepham, Infectious diseases and microbiology, Consultant

24 Dr Michael Jacobs, Infectious diseases, Consultant

25 Simon Rattenbury, Laboratory service, Head of laboratory service

26 Bryan O’Farrell, Pharmacy, Senior Pharmacist

27 Adrien Cooper, Estates, Director of estates

28 Robert Elliot-Cooke, Pharmacy, Senior pharmacist

29 Allan Harris, Estates, Engineering supervisor

30 Sumal Kuranaratne, Facilities, Support services manager

31 Dave Reavy, Facilities, Head of security and support services

32 Garba Ibrahim, Domestic services, Domestic team leader

33 Stephen King, Royal Free Charity, Head of finance

Page 51: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

“If you imagine all the functions a hospital has to have, not only the doctors and nurses and physiotherapists and pharmacists but estates management and food and facilities and laundry — they all have to be involved, and they all have to be specially trained to be safe to work in that environment. “ Dr Michael Jacobs - Consultant, infectious disease

51

Page 52: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

infectious

52

lab services

facilities

domestic

physio

micro biology

estates

pharmacy

finance

Royal Free Hospital

Capabilities

<other><other>

Page 53: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

infectious diseases

53

Ebola treatment

Page 54: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

54

single purposecross-functional teams

focussed entirely on ‘customer’ outcome

Page 55: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

55

In our study at a large Australian Telco, we found that stories leaving a team cycled 12 times slower than those that stayed in the team.

Page 56: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

56

This is true for Trauma teams in hospitals

And Formula 1 teams

And “reinforced battle groups”

Page 57: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

A SOFTWARE EXISTENCE PROOF…

57

Page 58: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

develop-ment

58

testing

architects

ops

PMO

HR

sales

marketing

finance

Page 59: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

x-func teams organised around lines of business

59

ops

HR

sales

marketing

finance

Page 60: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

insurance company

Page 61: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

insurance company

Page 62: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

separate lines of business

home motor life

Page 63: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

separate lines of business

and cross-cutting capabilities

home motor life

my account

Page 64: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

cross-functional teams delivering lines of business

Page 65: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017
Page 66: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

x-func teams organised around lines of business

66

ops

HR

sales

marketing

finance

Page 67: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

x-func teams organised around lines of business

67

ops

HR

sales

marketing

finance

Page 68: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

x-func teams organised around lines of business

68

ops

HR

sales

marketing

finance

Page 69: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

x-func teams organised around lines of business

69

ops

HR

sales

marketing

finance

Page 70: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017
Page 71: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

71

Page 72: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

72

DEVOPS!!!Well, build it, run it…

Page 73: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

x-func teams organised around lines of business

73

ops

HR

sales

marketing

finance

Page 74: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

74

ops

HR

sales

marketing

finance

build it / run it

Page 75: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

build it / run it

75

HR

sales

marketing

finance

Page 76: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

each of these capabilities can be tested and deployed independently

home motor life

my account

Page 77: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

build it / run it

77

HR

sales

marketing

finance

Page 78: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

78

Page 79: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

79But can we go further?

getting there…

Page 80: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

“If you imagine all the functions a hospital has to have, not only the doctors and nurses and physiotherapists and pharmacists but estates management and food and facilities and laundry — they all have to be involved, and they all have to be specially trained to be safe to work in that environment. “ Dr Michael Jacobs - Consultant, infectious disease

80

Page 81: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

build it / run it

81

HR

sales

marketing

finance

Page 82: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

HR

sales

marketing

finance

build it / run it

Page 83: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

83

http://nomad8.com/squadschaptersguilds/https://labs.spotify.com/2014/03/27/spotify-engineering-culture-part-1/

Page 84: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

84

market segments

Page 85: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

85

Value streams

Page 86: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

86

teams

Page 87: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

each teamowns one or more services

Page 88: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

~160-200~10-20

multiples thereof

Page 89: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

89Thomas J. Allen, 1977

0 10 20 30 40 50 60 70 80 90 1000

0.05

0.10

0.15

0.20

0.25

0.30

m

Probability of weekly interaction

x

x x

xxxxxxxxxxx

x xx

x xx x

The effect of distance on communication

communication frequency varies with the inverse square of distance

Page 90: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

co-locate as much as possible

take advantage of serendipitous conversations

Page 91: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

as you chunk up from team to value stream to market segment to organisation, use Conway’s Law, Allen’s research and Dunbar’s number to preserve low-coupling and high cohesion

and remember - whenever work leaves your team, you incur cost

Page 92: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

92

The “chunking up from microservices to teams to value streams to market

segments to organisations" practice onion*

*I might need a better name for this

Page 93: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

My hypothesis is that you can use organisational boundaries to reason about which testing types to apply and which integration patterns to use

Page 94: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

94

Low change rate

inter-market segment

High stability

Semantic Versioning

Contract Testing

Tolerant Reader“Conversational change”

Page 95: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

95

higher change rate

inter-value stream

lower stability

Semantic Versioning

Contract Testing

Tolerant Reader“Conversational change”

Page 96: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

96

higher change rate

inter-team

lower stability

Semantic Versioning

Contract Testing

Tolerant Reader“Conversational change”

Page 97: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

97

highest change rate

intra-team

lowest stability

Semantic Versioning

Contract Testing

Tolerant Reader“Conversational change”

Page 98: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

https://www.flickr.com/photos/snippets101/2686592689/https://creativecommons.org/licenses/by-nd/2.0/

Thoughts to finish

Page 99: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

successfully adopting the microservice-style of architecture requires more than just componentisation via services

organised around business capabilities

componentisation via services

products not projects

smart endpoints and dumb pipes

decentralised governance

decentralised data management

infrastructure automation

evolutionary design

designed for failure

Page 100: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

The Inverse Conway ManoeuvreDesign the organisation you want, the architecture will follow (kicking and screaming).Evan Bottcher, ThoughtWorks

Page 101: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

CONWAY’S LAW SENDS US SIGNALS

•constantly ordering work across capabilities

•splitting stories between teams

•moving people around

•deploying in lock-step

• fan-in for end-to-end testing

THERE IS A HIGH COST ASSOCIATED WITH WORK LEAVING YOUR TEAM

• raising tickets with the “platform team”

•handing off work to other departments

•constantly starting and stopping projects

Page 102: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

the last word

Page 103: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017
Page 104: Microservices and the Inverse Conway Manoeuvre - James Lewis - Codemotion Rome 2017

[email protected] @boicy

thanks!https://creativecommons.org/licenses/by-nc-sa/3.0/