Refactoring Team Designagileaustralia.com.au/2018/slides/agileaus-2018-peter... · 2019-05-20 · 5...

35
Refactoring Team Design Designing teams and busting myths at REA

Transcript of Refactoring Team Designagileaustralia.com.au/2018/slides/agileaus-2018-peter... · 2019-05-20 · 5...

Page 1: Refactoring Team Designagileaustralia.com.au/2018/slides/agileaus-2018-peter... · 2019-05-20 · 5 Teams matching the most common profile: Delivery Lead - Designer - Developer -

Refactoring Team DesignDesigning teams and busting myths at REA

Page 2: Refactoring Team Designagileaustralia.com.au/2018/slides/agileaus-2018-peter... · 2019-05-20 · 5 Teams matching the most common profile: Delivery Lead - Designer - Developer -

Topics for today

• What does a typical REA team look like?

• Refactoring mobile teams

• Models for team collaboration

• What does the data tell us about our teams?

Page 3: Refactoring Team Designagileaustralia.com.au/2018/slides/agileaus-2018-peter... · 2019-05-20 · 5 Teams matching the most common profile: Delivery Lead - Designer - Developer -
Page 4: Refactoring Team Designagileaustralia.com.au/2018/slides/agileaus-2018-peter... · 2019-05-20 · 5 Teams matching the most common profile: Delivery Lead - Designer - Developer -
Page 5: Refactoring Team Designagileaustralia.com.au/2018/slides/agileaus-2018-peter... · 2019-05-20 · 5 Teams matching the most common profile: Delivery Lead - Designer - Developer -
Page 6: Refactoring Team Designagileaustralia.com.au/2018/slides/agileaus-2018-peter... · 2019-05-20 · 5 Teams matching the most common profile: Delivery Lead - Designer - Developer -

• Tribes and squads != agile

• Teams are complex and evolu@onary

Agile squads are dead

Page 7: Refactoring Team Designagileaustralia.com.au/2018/slides/agileaus-2018-peter... · 2019-05-20 · 5 Teams matching the most common profile: Delivery Lead - Designer - Developer -

Team design by imitation

We’ve done away with BAs

Company A‘‘ ’’

We don’t have QAs any more

Company B‘‘ ’’

We use Agile Coaches

Company Z

‘‘ ’’Let’s copy that

team on Level 3

Us

‘‘ ’’

We’re going DevOps

Company C‘‘

We’re SAFe

Anonymous‘‘ ’’

’’

Page 8: Refactoring Team Designagileaustralia.com.au/2018/slides/agileaus-2018-peter... · 2019-05-20 · 5 Teams matching the most common profile: Delivery Lead - Designer - Developer -

Product lifecycleExperimenting. Sustaining. Sunsetting.

Team design by contextKey concepts to consider

Distributed teamsWhat is optimal for remote teams?

CustodianshipYou build it, you run it

People leadershipDeveloping careers

Eco-system complexityIntegration points and dependencies

Products and platformsDifferent mindset?

TechnologyOptimising for skills and capabilities

Page 9: Refactoring Team Designagileaustralia.com.au/2018/slides/agileaus-2018-peter... · 2019-05-20 · 5 Teams matching the most common profile: Delivery Lead - Designer - Developer -

Stop treating teams and organisations as machines.

Start treating them as complex (living) systems.

Jurgen Appelo

‘‘’’

Designing teams - a complex problem

Page 10: Refactoring Team Designagileaustralia.com.au/2018/slides/agileaus-2018-peter... · 2019-05-20 · 5 Teams matching the most common profile: Delivery Lead - Designer - Developer -

Project Dynamite: blowing up team myths at REA

• There is a canonical REA team profile (myth?)

• We have a standard model for designing new teams (myth?)

• All teams have 12 people (myth?)

Page 11: Refactoring Team Designagileaustralia.com.au/2018/slides/agileaus-2018-peter... · 2019-05-20 · 5 Teams matching the most common profile: Delivery Lead - Designer - Developer -

Product delivery team roles

Product Manager Developer

QA

Systems EngineerBA

Designer

Delivery Lead

Page 12: Refactoring Team Designagileaustralia.com.au/2018/slides/agileaus-2018-peter... · 2019-05-20 · 5 Teams matching the most common profile: Delivery Lead - Designer - Developer -

Product delivery tribe roles

Tech Lead

Engineering Manager

Page 13: Refactoring Team Designagileaustralia.com.au/2018/slides/agileaus-2018-peter... · 2019-05-20 · 5 Teams matching the most common profile: Delivery Lead - Designer - Developer -

Scientific research

Page 14: Refactoring Team Designagileaustralia.com.au/2018/slides/agileaus-2018-peter... · 2019-05-20 · 5 Teams matching the most common profile: Delivery Lead - Designer - Developer -

The typical REA team?

There isn’t one

Page 15: Refactoring Team Designagileaustralia.com.au/2018/slides/agileaus-2018-peter... · 2019-05-20 · 5 Teams matching the most common profile: Delivery Lead - Designer - Developer -

5Teams matching the most common profile: Delivery Lead - Designer - Developer - Product Manager

6.6 Average number of developers per teams

44 Teams in REA Australia across 7 LoBs and 15 tribes 10.3 Average size of a

product delivery teams

11.9 Average size of a Xi’an teams

13 Teams distributed with Xi’an

35% Teams with a QA

7.6 Average number of developers in Xi’an teams 7:1 Average Developer to

QA ratio

15% People in “tribe roles”

The data

45% Teams with a BA

5Most common tribe roles: Systems Engineer Designer Technical Lead Engineer Manager Product Manager

25% Teams with a Systems Engineer

Page 16: Refactoring Team Designagileaustralia.com.au/2018/slides/agileaus-2018-peter... · 2019-05-20 · 5 Teams matching the most common profile: Delivery Lead - Designer - Developer -

Greenfields

Legacy

Leaf Core

The context for teams

Complexity Cost

Communica`on overhead Impact of mistakes

Page 17: Refactoring Team Designagileaustralia.com.au/2018/slides/agileaus-2018-peter... · 2019-05-20 · 5 Teams matching the most common profile: Delivery Lead - Designer - Developer -

Design teams based on your context

• Teams are complex

• There are many variables

• Determine what are you trying to optimise for

Page 18: Refactoring Team Designagileaustralia.com.au/2018/slides/agileaus-2018-peter... · 2019-05-20 · 5 Teams matching the most common profile: Delivery Lead - Designer - Developer -

• We refactor code design

• We refactor system design

• We should refactor team design

Evolutionary teams

Page 19: Refactoring Team Designagileaustralia.com.au/2018/slides/agileaus-2018-peter... · 2019-05-20 · 5 Teams matching the most common profile: Delivery Lead - Designer - Developer -

Refactoring our mobile teams

Page 20: Refactoring Team Designagileaustralia.com.au/2018/slides/agileaus-2018-peter... · 2019-05-20 · 5 Teams matching the most common profile: Delivery Lead - Designer - Developer -

2010

2011

First REA iOS app

First Android app

Mobile development @ REA

2012

Commercial iOS app

2014

Android team formed

2016

2017

Modern mobile architecture

2018

Federated deliveryNew apps launched

Page 21: Refactoring Team Designagileaustralia.com.au/2018/slides/agileaus-2018-peter... · 2019-05-20 · 5 Teams matching the most common profile: Delivery Lead - Designer - Developer -

Organiza`ons which design systems ... are constrained to produce designs which are copies of the communica`on structures of these organiza`ons

Melvin Conway

‘‘’’

Conway’s Law

Page 22: Refactoring Team Designagileaustralia.com.au/2018/slides/agileaus-2018-peter... · 2019-05-20 · 5 Teams matching the most common profile: Delivery Lead - Designer - Developer -

The unintended side effects of Conway’s Law

• Our iOS and Android teams built iOS and Android apps that lead the market

• and had different features

• and looked different

• and shared lihle

• We built two new monoliths

Page 23: Refactoring Team Designagileaustralia.com.au/2018/slides/agileaus-2018-peter... · 2019-05-20 · 5 Teams matching the most common profile: Delivery Lead - Designer - Developer -

Co-ordinating a feature across platforms/teams

Optimisation problems

No back end development skills: dependencies

Designers: platform-focused or experience-focused?

Page 24: Refactoring Team Designagileaustralia.com.au/2018/slides/agileaus-2018-peter... · 2019-05-20 · 5 Teams matching the most common profile: Delivery Lead - Designer - Developer -

Experiments in refactoring team design

• Plajorm teams

• Feature teams

• Virtual teams

Page 25: Refactoring Team Designagileaustralia.com.au/2018/slides/agileaus-2018-peter... · 2019-05-20 · 5 Teams matching the most common profile: Delivery Lead - Designer - Developer -

Clear purpose

Team design principles

Minimise dependencies

Maximise autonomy

Reduce communication overhead

Remove technology silos

Page 26: Refactoring Team Designagileaustralia.com.au/2018/slides/agileaus-2018-peter... · 2019-05-20 · 5 Teams matching the most common profile: Delivery Lead - Designer - Developer -

Objective-driven teams

• Kaizen

• Mobile architecture

Companion API

Listings Services

Results Details

Results Details

Listing data

View models

Page 27: Refactoring Team Designagileaustralia.com.au/2018/slides/agileaus-2018-peter... · 2019-05-20 · 5 Teams matching the most common profile: Delivery Lead - Designer - Developer -

Inverse Conway Manoeuvre

What has architecture got to do with team design?

Page 28: Refactoring Team Designagileaustralia.com.au/2018/slides/agileaus-2018-peter... · 2019-05-20 · 5 Teams matching the most common profile: Delivery Lead - Designer - Developer -

A few months ago I called myself an iOS developer. Now I call myself a full stack mobile dev.

Yanzi Li

‘‘’’

Page 29: Refactoring Team Designagileaustralia.com.au/2018/slides/agileaus-2018-peter... · 2019-05-20 · 5 Teams matching the most common profile: Delivery Lead - Designer - Developer -

Teams are evolutionary

• Refactor them to avoid entropy

• Understand how your context is changing

Page 30: Refactoring Team Designagileaustralia.com.au/2018/slides/agileaus-2018-peter... · 2019-05-20 · 5 Teams matching the most common profile: Delivery Lead - Designer - Developer -

REA’s next team horizon

• Collabora`on at scale

• Evolu`on to plajorm teams

Page 31: Refactoring Team Designagileaustralia.com.au/2018/slides/agileaus-2018-peter... · 2019-05-20 · 5 Teams matching the most common profile: Delivery Lead - Designer - Developer -

But we said teams should be autonomous. Why do we need a model for collaboration?

Collaboration

Page 32: Refactoring Team Designagileaustralia.com.au/2018/slides/agileaus-2018-peter... · 2019-05-20 · 5 Teams matching the most common profile: Delivery Lead - Designer - Developer -

A consumer platform for multiple products

Page 33: Refactoring Team Designagileaustralia.com.au/2018/slides/agileaus-2018-peter... · 2019-05-20 · 5 Teams matching the most common profile: Delivery Lead - Designer - Developer -

Collaboration model to scale development across REA

Enabled by federated delivery

Evolving to platform teams and product teams

How will these shape our team designs?

Page 34: Refactoring Team Designagileaustralia.com.au/2018/slides/agileaus-2018-peter... · 2019-05-20 · 5 Teams matching the most common profile: Delivery Lead - Designer - Developer -

Key tips

• Teams are complex systems

• Teams are evolu`onary. Refactor them

• Think carefully before designing teams by imita`on

Page 35: Refactoring Team Designagileaustralia.com.au/2018/slides/agileaus-2018-peter... · 2019-05-20 · 5 Teams matching the most common profile: Delivery Lead - Designer - Developer -

Thank you

Peter Moran Engineering Manager, REA