building effective microservice teams - amundsenbuilding effective microservice teams learning from...

99
Mike Amundsen CA Technologies @mamund Building Effective Microservice Teams Learning from Conway, Brooks, and Dunbar

Upload: others

Post on 04-Oct-2020

27 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Mike Amundsen

CA Technologies

@mamund

Building Effective

Microservice TeamsLearning from

Conway, Brooks, and Dunbar

Page 2: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Introduction

Page 3: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices
Page 4: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices
Page 5: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices
Page 6: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices
Page 7: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices
Page 8: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Effective Teams

Page 9: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Effective Teams

for Microservices

Page 10: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Melvin Conway

Page 11: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices
Page 12: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices
Page 13: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Project-Based Organizations

Page 14: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

“Project-based organizations

revolve around the concept

that a group of individuals or

firms join together with the

explicit purpose of producing a

tangible set of outputs”

-- Paul Chinowsky, EPOJ 2011

Page 15: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

“How Do Committees Invent?”

Page 16: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices
Page 17: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices
Page 18: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices
Page 19: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Any organization that designs a

system (defined more broadly here

than just information systems) will

inevitably produce a design whose

structure is a copy of the

organization's communication

structure.”

-- Mel Conway, 1967

Page 20: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

A system’s design is a copy of

the organization’s

communication structure.

-- Mel Conway, 1967

Page 21: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Communication dictates design.

-- Mel Conway, 1967

Page 22: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Conway’s Law

Page 23: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices
Page 24: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Brooks’ Law

“Adding manpower to a late

software project makes it later.”

-- Fred Brooks, 1975

Page 25: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Intercommunication formula

n(n − 1) / 2

-- Fred Brooks, 1975

Page 26: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Intercommunication formula

5*(5–1)/2 = 10

15*(15–1)/2 = 105

50*(50–1)/2 = 1,225

150*(150–1)/2 = 11,175

-- Fred Brooks, 1975

Page 27: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Dunbar’s Number

A measurement of the “cognitive

limit to the number of individuals

with whom any one person can

maintain stable relationships.”

-- Robin Dunbar, 1992

Page 28: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices
Page 29: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices
Page 30: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Dunbar Groups

Intimate friends: 5

Trusted friends: 15

Close friends: 35

Casual friends: 150

-- Robin Dunbar, 1992

Page 31: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Intercommunication formula

5*(5–1)/2 = 10

15*(15–1)/2 = 105

50*(50–1)/2 = 1,225

150*(150–1)/2 = 11,175

-- Fred Brooks, 1975

Page 32: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Communication dictates design.

-- Mel Conway, 1967

Page 33: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Conway’s (first) Law

Page 34: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Conway’s (first) Law

tells us TEAM SIZE is important

Page 35: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Conway’s (first) Law

tells us TEAM SIZE is important

so…

Make the teams as small as necessary.

Page 36: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Aim for “Dunbar level 1” (5),

possibly “Dunbar level 2” (15),

be wary of teams above that size.

Page 37: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

If you don’t have

a personal relationship

with every member of your team,

it is probably TOO BIG.

Page 38: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

So… what about other Conway Laws?

Page 39: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Conway’s Second Law

Page 40: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Doing it Over

“There is never enough time

to do something right,

but there is always enough

time to do it over.”

-- Mel Conway, 1967

Page 41: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Trade Offs

Page 42: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Efficiency-Thoroughness Trade Offs (ETTOs)

Page 43: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices
Page 44: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Satisficing v. Sacrificing

“Satisficing is explained as a

consequence of limited

cognitive capacity.

Sacrificing is explained as a

consequence of the intractability

of the work environment”

-- Eric Hollnagel, 2009

Page 45: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Satisficing v. Sacrificing

Problem too complicated?

Ignore details.

Not enough resources?

Give up features.

-- Eric Hollnagel, 2009

Page 46: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

ETTOs are “normal” and result in

success more often than failure.

Page 47: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices
Page 48: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices
Page 49: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

The enemy is intractability.

Page 50: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Increasing Intractability

1. Systems grow too large

2. Rate of change increases

3. Overall expectations keep rising

-- Eric Hollnagel, 2009

Page 51: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices
Page 52: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Conway’s Second Law

tells us PROBLEM SIZE is important

Page 53: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Conway’s Second Law

tells us PROBLEM SIZE is important

so…

Make the solution as small as necessary.

Page 54: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

If you (or your team)

cannot explain ALL the code

in your release package,

your release is TOO LARGE

Page 55: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Conway’s Third Law

Page 56: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Homomorphism

“There is a homomorphism

from the linear graph of a

system to the linear graph of

its design organization”

-- Mel Conway, 1967

Page 57: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices
Page 58: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices
Page 59: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Homomorphism

“If you have four groups

working on a compiler, you'll

get a 4-pass compiler.”

- Eric S. Raymond, 1991

Page 60: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Conway’s Third Law

tells us CROSS-TEAM INDEPENDENCE

is important.

Page 61: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Conway’s Third Law

tells us CROSS-TEAM INDEPENDENCE

is important.

So…

Make each team fully independent.

Page 62: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

If you have to hold a release

until some other team is ready,

you are not an

INDEPENDENT TEAM

Page 63: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Conway’s Fourth Law

Page 64: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Disintegration

“The structures of large

systems tend to disintegrate

during development,

qualitatively more so than with

small systems.”

-- Mel Conway, 1967

Page 65: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Three reasons Disintegration occurs…

Page 66: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Disintegration: Reason #1

“The realization that the

system will be large, together

with organization pressures,

make irresistible the

temptation to assign too many

people to a design effort”

-- Mel Conway, 1967

Page 67: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Brooks’ Law

Adding manpower to a late

software project makes it later.

-- Fred Brooks, 1975

Page 68: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Disintegration: Reason #2

“Application of the

conventional wisdom of

management to a large

design organization causes its

communication structure to

disintegrate.”

-- Mel Conway, 1967

Page 69: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Dunbar’s Number

A measurement of the “cognitive

limit to the number of individuals

with whom any one person can

maintain stable relationships.”

-- Robin Dunbar, 1992

Page 70: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Disintegration: Reason #3

“Homomorphism insures that

the structure of the system will

reflect the disintegration which

has occurred in the design

organization.”

-- Mel Conway, 1967

Page 71: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Communication dictates design.

-- Mel Conway, 1967

Page 72: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Conway’s Fourth Law

tells us TIME is against LARGE teams.

Page 73: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Conway’s Fourth Law

tells us TIME is against LARGE teams.

So…

Make release cycles short and small.

Page 74: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

If your release dates are often missed,

your release SIZE is TOO BIG.

Page 75: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

So, let’s review our options…

Page 76: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Conway’s Laws

can help us succeed

Page 77: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Conway’s Laws

can help us succeed

when working with

microservice teams.

Page 78: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Conway’s First Law

A system’s design is a copy

of the organization’s

communication structure.

Page 79: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Conway’s First Law

A system’s design is a copy

of the organization’s

communication structure.

Actively manage

communications within the

teams and across teams.

Page 80: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

James Herbsleb: “Tactics for Global Software Development”

Page 81: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

James Herbsleb: “Tactics for Global Software Development”

Page 82: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Increase communications

• Real-time Chat Tools

• Video Conferencing

• Online Forums/News Groups

• Wiki and Web Sites

Reduce the effort required to locate and

interact with the ‘right people’

Page 83: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Conway’s Second Law

There is never enough time

to do something right, but

there is always enough time

to do it over.

Page 84: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Conway’s Second Law

There is never enough time

to do something right, but

there is always enough time

to do it over.

Remember the process is

continually repeating.

Page 85: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Continuous Delivery

“The core concept of making

small frequent changes, and

testing at every step,

reduces the risk inherent in

deploying new code.”

Jez Humble, Thoughtworks.

Page 86: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Support continuous processes

• Implement small changes

• Test immediately

• Deploy constantly

Shorten the feedback loop as much as

possible.

Page 87: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Conway’s Third Law

There is a homomorphism

from the linear graph of a

system to the linear graph of

its design organization.

Page 88: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Conway’s Third Law

There is a homomorphism

from the linear graph of a

system to the linear graph of

its design organization.

Organize teams in order to

achieve desired system.

Page 89: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Microservices

Organized around

business capabilities.

Products, not projects.

Martin Fowler, Thoughtworks

Page 90: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices
Page 91: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices
Page 92: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Organize teams by product or BU

• Combine design, develop, test, & deploy

• Include storage, business process, & UI

• Allow teams autonomy within their boundary

• Require teams to inter-operate, not integrate

Make sure teams own their complete lifecycle.

Page 93: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Conway’s Fourth Law

The structures of large

systems tend to disintegrate

during development.

Page 94: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Conway’s Fourth Law

The structures of large

systems tend to disintegrate

during development.

Keep your teams as small

as necessary, but no

smaller.

Page 95: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Sizing Teams

Jeff Bezos, Amazon

Page 96: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Sizing Teams

If a team can’t be fed with

two pizzas, it’s too big.

Jeff Bezos, Amazon

Page 97: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Make team as small as necessary

• Resist urge to grow teams in response to deadlines

• Consider Dunbar’s groups when sizing teams

• Be prepared to break into smaller teams

It’s better to be “too small” than to be “too big.”

Page 98: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Conway’s Lessons

1. Increase communications

2. Support continuous process

3. Organize teams by products

4. Make teams as small as necessary

Page 99: Building Effective Microservice Teams - AmundsenBuilding Effective Microservice Teams Learning from Conway, Brooks, and Dunbar. Introduction. Effective Teams. Effective Teams for Microservices

Mike Amundsen

CA Technologies

@mamund

Building Effective

Microservice TeamsLearning from

Conway, Brooks, and Dunbar

http://g.mamund.com/2015-10-qcon-teams