how and why to design your teams for modern software systems - agile in leeds meetup - march 2017

67
How and why to design your teams for modern software systems Matthew Skelton | Skelton Thatcher Consulting @matthewpskelton | skeltonthatcher.com Agile in Leeds meetup - @AgileInLeeds 28 March 2017, Leeds UK

Upload: skelton-thatcher-consulting-ltd

Post on 06-Apr-2017

142 views

Category:

Software


5 download

TRANSCRIPT

Page 1: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

How and why to design your teams for modern software

systemsMatthew Skelton | Skelton Thatcher Consulting

@matthewpskelton | skeltonthatcher.com

Agile in Leeds meetup - @AgileInLeeds28 March 2017, Leeds UK

Page 2: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

Today•Conway’s Law (or heuristic)•Cognitive Load for teams•Real-world Team Topologies•Guidelines for team design

Page 3: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

About meMatthew Skelton

@matthewpskelton

Co-founder at Skelton Thatcher Consulting

skeltonthatcher.com

Page 4: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

Organisation design for effective software systemsTutorial / Workshop

Weds 24 May 2017, Manchesterhttps://ti.to/skelton-thatcher-consulting/organisation-design-for-effective-software-systems-tutorial-workshop

Page 5: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

Books

Page 6: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

Team-first digital transformation30+ organisations

UK, US, DE, India, Chinaskeltonthatcher.com

Page 7: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017
Page 8: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

How and why to design your teams

for modern software systems

Page 9: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

Safer, more rapid changes to

software systems

(Business Agility)

Page 10: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

TEAM

Page 11: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017
Page 12: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

TEAMcapabilities

appetite & aptitudeunderstanding

responsibilities

Page 13: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

(assumption)

the team is stable, slowly changing, and long-lived#NoProjects

Page 14: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

Conway’s Law(or Conway’s Heuristic)

Page 15: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

“organizations which design systems ... are constrained to

produce designs which are copies of the communication structures of

these organizations”

– Mel Conway, 1968http://www.melconway.com/Home/Conways_Law.html

Page 16: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

“if the architecture of the system and the architecture of the organization

are at odds, the architecture of the organization wins”

– Ruth Malan, 2008http://traceinthesand.com/blog/2008/02/13/conways-law/

Page 17: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

“We find strong evidence to support the hypothesis that a product’s

architecture tends to mirror the structure of the organization in

which it is developed.”

– MacCormack et al, 2012MacCormack, Alan, Carliss Y. Baldwin, and John Rusnak. ‘Exploring the Duality Between Product and Organizational Architectures: A Test of the

“Mirroring” Hypothesis’, 1 October 2012. http://www.hbs.edu/faculty/Pages/item.aspx?num=43260.

Page 18: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

homomorphic force

(#Conway #Yawnoc)

HT @allankellynet

(same) (shape)

Page 19: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

Front-end developers

Back-end developers

Page 20: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

‘Reverse Conway’Tobbe Gyllebring (@drunkcod)

Page 21: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

A

B

A B

Page 22: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017
Page 23: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

Design the organisation architecture

to produce the right software architecture

Page 24: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

Cognitive Load for teams

Page 25: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

Cognitive load

the total amount of mental effort being used in

the working memory(see Sweller, 1988)

Page 26: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

Cognitive load

Intrinsic Extraneous (Irrelevant )

Germane (Relevant)

Page 27: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

‘Hacking Your Head’: Jo Pearce

See http://www.slideshare.net/JoPearce5/hacking-your-head-managing-information-overload-45-mix

@jdpearce

Page 28: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

We have SCIENCE!

Page 29: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

Science since 1988• Driskell et al, 1999 ‘Does Stress Lead to a Loss of Team Perspective?’ Group Dynamics:

Theory, Research, and Practice 3, no. 4 (1999): 291.

• Fan et al, 2010 ‘Learning HMM-Based Cognitive Load Models for Supporting Human-Agent Teamwork’. Cognitive Systems Research 11, no. 1 (2010): 108–119.

• Ilgen & Hollenbeck, 1993 ‘Effective Team Performance under Stress and Normal Conditions: An Experimental Paradigm, Theory and Data for Studying Team Decision Making in Hierarchical Teams with Distributed Expertise’. DTIC Document, 1993.

• Johnston et al, 2002 ‘Application of Cognitive Load Theory to Developing a Measure of Team Decision Efficiency’. DTIC Document, 2002.

• Sweller, John, 1994 ‘Cognitive Load Theory, Learning Difficulty, and Instructional Design’. Learning and Instruction 4 (1994): 295–312.

• Sweller, John, 1988. ‘Cognitive Load during Problem Solving: Effects on Learning’. Cognitive Science 12, no. 2 (1988): 257–285.

Page 30: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

“stress impacts teamperformance … by narrowing or

weakening the team-level perspective required foreffective team behavior.”

– Driskell et al, 1999Group Dynamics: Theory, Research, and Practice 1999, Vol. 3, No. 4,291-302

Page 31: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

(not just ‘pop’ science!)

Page 32: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

High-performing teams are hugely effective

Optimise for the team

Page 33: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

Match the team responsibility to the cognitive load that

the team can handle

Page 34: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

Real-world Team Topologies

Page 35: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

DevOpsTopologies.com

Page 36: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

There is no single ‘right’ team topology, but several ‘bad’

topologies for any one organisation

Page 37: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

Guidelines for team design

Page 38: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

Collaboration vs X-as-a-Service

Collaboration X-as-a-Service

devops

topo

logies.com

Page 39: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

Collaboration vs X-as-a-Service

Collaboration X-as-a-Service

devops

topo

logies.com

Rapid discoveryNo hand-offs

Comms overheads?

Ownership clarityLess context needed

Slower innovation?

Page 40: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

Supporting & Business Domain

Supporting Business Domain

devops

topo

logies.com

Page 41: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

Inner Topologies

Collaboration XaaS

Within any group there may be internal collaborations AND other X-as-a-Service (XaaS) relationships

devops

topo

logies.com

Page 42: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

Team types

Component team

Platform / ’substrate’ team

Supporting / ‘productivity’ team

Product/Feature team

devops

topo

logies.com

Page 43: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

Team configurationde

vops

topo

logies.com

Platform / ’substrate’ team

Product/Feature team

Page 44: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

Team configuration

Component team

Platform / ’substrate’ team

Product/Feature teamde

vops

topo

logies.com

Page 45: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

Team configuration

Component team

Platform / ’substrate’ team

Product/Feature team

Supporting / ‘productivity’ team

devops

topo

logies.com

Page 46: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

Discovery vs. Predictability

Team 1

Team 2

Team N

Discovery, rapid learning

Predictable delivery

devops

topo

logies.com

Page 47: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

Established platform (PaaS)

Predictable delivery

devops

topo

logies.com

Page 48: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

Evolution of team topologiesde

vops

topo

logies.com

DISCOVER ESTABLISH

Page 49: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

Evolution of team topologies

Team 2

Discover Discover

Team N

Team 3

Use

Use

devops

topo

logies.com

Team 1

Establish

Establish

Page 50: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

Evolve different team topologies for different parts of

the organisation at different times to match the team

purpose and context

Page 51: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

Summary

Page 52: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

Front-end developers

Back-end developers

A

B

A B

Page 53: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

Design the organisation architecture

to produce the right software architecture

Page 54: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

“stress impacts teamperformance … by narrowing or

weakening the team-level perspective required foreffective team behavior.”

– Driskell et al, 1999Group Dynamics: Theory, Research, and Practice 1999, Vol. 3, No. 4,291-302

Page 55: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

Match the team responsibility to the cognitive load that the

team can handle

Page 56: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

DevOpsTopologies.com

Page 57: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

There is no single ‘right’ team topology, but several ‘bad’

topologies for any one organisation

Page 58: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

Team configuration

Component team

Platform / ’substrate’ team

Product/Feature team

Supporting / ‘productivity’ team

devops

topo

logies.com

Page 59: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

Evolution of team topologies

Team 2

Discover Discover

Team N

Team 3

Use

Use

devops

topo

logies.com

Team 1

Establish

Establish

Page 60: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

Evolve different team topologies for different parts of

the organisation at different times to match the team

purpose and context

Page 61: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

Caution

Page 62: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

Team topologies alone will not

produce effective software systems

Page 63: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

Also needed: culture, good engineering,

sane funding models, clarity of business vision

Page 64: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

Safer, more rapid changes to

software systems

(Business Agility)

Page 65: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

teamtopologies.com

Upcoming book:

Team Topologies for effective software systems

by Matthew Skelton & Manuel Pais

Page 66: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

Organisation design for effective software systemsTutorial / Workshop

Weds 24 May 2017, Manchesterhttps://ti.to/skelton-thatcher-consulting/organisation-design-for-effective-software-systems-tutorial-workshop

Page 67: How and why to design your teams for modern software systems - Agile in Leeds meetup - March 2017

thank you

Matthew Skelton & Manuel Pais@SkeltonThatcher

skeltonthatcher.com