Surviving 120% Team Churn

51
Authors Todd Sedano Paul Ralph Cécile Péraire Surviving 120% Team Churn Sustainable Software Development through Overlapping Pair Rotation (photos licensed or ©Todd Sedano)

Transcript of Surviving 120% Team Churn

AuthorsTodd Sedano Paul Ralph Cécile Péraire

Surviving 120% Team ChurnSustainable Software Development through Overlapping Pair Rotation

(photos licensed or ©Todd Sedano)

2Newsletter Signup:http://sedano.org/research

Todd Sedano [email protected]

photos used with permission

3Newsletter Signup:http://sedano.org/research

Todd Sedano [email protected]

Todd Sedano [email protected]

Why?

4Todd Sedano [email protected]

Newsletter Signup:http://sedano.org/research

Todd Sedano [email protected]

1. Team losing information

2. Learning curve for new developer

5Todd Sedano [email protected]

Newsletter Signup:http://sedano.org/research

Todd Sedano [email protected]

Todd Sedano [email protected]

Newsletter Signup:http://sedano.org/research

B

EA

C

D

F

Knowledge

Todd Sedano [email protected]

A

7Todd Sedano [email protected]

Newsletter Signup:http://sedano.org/research

B

E

C

D

F

Knowledge

Knowledge Leaving

Todd Sedano [email protected]

Todd Sedano [email protected]

Newsletter Signup:http://sedano.org/research

B

E

C

D

F

Knowledge

New Employee

Todd Sedano [email protected]

We want to spread knowledge throughout the team

9Todd Sedano [email protected]

Newsletter Signup:http://sedano.org/research

Research Method

10

Constructivist Grounded Theory Iterative approach to data collection, coding, and analysis

Data Sources1) participant observations of five projects2) interviews with 21 software engineers, interaction designers,

and product managers

Interviews were transcribed, coded, and analyzed using constant comparison

Research Question: “How do the observed teams develop software effectively while overcoming team disruption?”

Todd Sedano [email protected]

Newsletter Signup:http://sedano.org/research

Research Context: Pivotal LabsMission: a) Deliver highly-crafted software b) Provide a transformative experience for client and combine client engineers with pivotal engineersProject team sizes: 2 to 28 devs (6 is common)Balanced team: interaction designer, product manager, devsMethod: Extreme Programming

Todd Sedano [email protected]

Newsletter Signup:http://sedano.org/research

Project Quattuor

13

Original Staffing Plan

Todd Sedano [email protected]

Newsletter Signup:http://sedano.org/research

Week # of the Project

Dev

elop

ers

Allo

cate

d

Actual Staffing Plan

Todd Sedano [email protected]

Newsletter Signup:http://sedano.org/research

Theory of Sustainable Software Development

16

Todd Sedano [email protected]

Mitigates negative disruption effects by 1. Spreading knowledge around the team2. Writing “well-factored” code

17Todd Sedano [email protected]

Newsletter Signup:http://sedano.org/research

Todd Sedano [email protected]

Increases the ability of any pair to work on any story in the backlog

18Todd Sedano [email protected]

Newsletter Signup:http://sedano.org/research

Sustainable Software Development3 Principles3 Policies3 Practices for Removing Knowledge Silos3 Practices for Caretaking the Code

Todd Sedano [email protected]

Newsletter Signup:http://sedano.org/research

ESEM 2016

PrinciplesEngendering Positive Attitudes Toward Team Disruption

“Team members go out of their way to make new teammates feel welcome and help ramp them up.”

Encouraging Knowledge Sharing and Continuity

“Everyone has context. Everyone is constantly communicating about the entire system.”

Caring about Code Quality

“Everyone is responsible for fixing issues.”

Todd Sedano [email protected]

Newsletter Signup:http://sedano.org/research

PoliciesTeam Code Ownership Increasing the ability to change any of the team’s code“I feel ownership of the code as a whole. I feel empowered to work on any part of the codebase.”

Shared Schedule Working the same hours whenever possible

Avoid Technical Debt “Thinking that someone else will fix it can be dangerous,because then nobody will do it.”

Todd Sedano [email protected]

Newsletter Signup:http://sedano.org/research

Removing Knowledge Silos PracticesContinuous Pair Programming Pairing whenever possibleIncreases Team Code Ownership

Overlapping Pair Rotation Rotating one partner on each track of work “This reduces knowledge silos and reduces the bus factor. We do not want the departure of one developer to cripple the project.”

Knowledge Pollination Sharing information in unstructured ways

Todd Sedano [email protected]

Newsletter Signup:http://sedano.org/research

Todd Sedano [email protected]

Example: Removing Knowledge Silos

23Todd Sedano [email protected]

Newsletter Signup:http://sedano.org/research

Individual Code Ownership

Todd Sedano [email protected]

Newsletter Signup:http://sedano.org/research

A B C D E F

Knowledge Gap

Knowledge Transfer

Continuous Pair Programming

Todd Sedano [email protected]

Newsletter Signup:http://sedano.org/research

A B C D E F

Knowledge Gap

Knowledge Transfer

Overlapping Pair Rotation

Todd Sedano [email protected]

Newsletter Signup:http://sedano.org/research

Knowledge Gap

Knowledge Transfer

A B

D

CF E

StrategiesOptimizing for people rotation Optimizing for personal preferences Optimizing for context sharing

Knowledge Pollination

Todd Sedano [email protected]

Newsletter Signup:http://sedano.org/research

Knowledge Gap

Knowledge Transfer

A B

D

CF E

Knowledge PollinationContributing to knowledge sharing in an un-structured way Daily stand-up meetingsWeekly retrospectivesWriting or sketching on whiteboardsOverhearing a conversationUsing the backlog to communicate current status about a storyCalling out an update to the entire teamSimply reaching out to team to ask a question

Todd Sedano [email protected]

Newsletter Signup:http://sedano.org/research

A B

D

CF E

Todd Sedano [email protected]

Example: Strategies for Rotation

29Todd Sedano [email protected]

Newsletter Signup:http://sedano.org/research

Four Tracks of Work

Todd Sedano [email protected]

Newsletter Signup:http://sedano.org/research

Track 1 Track 2 Track 3 Track 4

Icons designed by Freepik

Individual Ownership

Todd Sedano [email protected]

Newsletter Signup:http://sedano.org/research

Day 1 BobAlicea a

Day 2 BobAliceb b

Day 3 BobAlicec c

Day 4 BobAliced d

Alice Bob

b

aa

d

c

Generated KnowledgeAfter Four Days

c

d

b

Optimizing for Personal Preference

Todd Sedano [email protected]

Newsletter Signup:http://sedano.org/research

Day 1 BobAliceaa

bbDay 2 CarolAlice

ccDay 3 DanAlice

ddDay 4 ErinAlice

Alice Bob

a

b

a

d

Generated KnowledgeAfter Four Days

c

d

c

bI’m enjoying this track

Optimizing for People Rotation

Todd Sedano [email protected]

Newsletter Signup:http://sedano.org/research

Day 1 BobAliceaa

bbDay 2 CarolBob

ccDay 3 AliceCarol

ddDay 4 ErinAlice

Alice Bob

Generated KnowledgeAfter Four Days

a

c

d

b b

d

a

c

Bob Carol

bb

d

a a

cc

Generated KnowledgeAfter Four Days

d

Optimizing for Knowledge Sharing

Todd Sedano [email protected]

Newsletter Signup:http://sedano.org/research

Day 1 BobAliceaa

bbDay 2 CarolBob

ccDay 3 DanCarol

ddDay 4 DanCarol

Has enough context been

shared?

YesYes

YesYes

YesNo

Has enough context been

shared?

Has enough context been

shared?

Example in Practice

Todd Sedano [email protected]

Newsletter Signup:http://sedano.org/research

Caretaking the Code Practices TDD / BDD Write unit tests before creating a design or writing code Creates a safety net“Allows me to change code without breaking everything”

Continuous Refactoring Systematic improvement of the code base Enables any pair to work on any part of the system

Supported by Live on Master “Use frequent commits and always rebase”

Todd Sedano [email protected]

Newsletter Signup:http://sedano.org/research

Sustainable Software Development

Todd Sedano [email protected]

Principles Policies

Engendering Positive Attitudes Toward Team DisruptionEncouraging Knowledge Sharing and Continuity Caring about Code Quality

Team Code Ownership Shared ScheduleAvoid Technical Debt

37Newsletter Signup:http://sedano.org/research

Removing Knowledge Silos Practices Caretaking the Code Practices

Continuous Pair ProgrammingOverlapping Pair RotationKnowledge Pollination

TDD / BDDContinuous Refactoring Supported by Live on Master

ESEM 2016

Team Code Ownership

38

Team Code Ownership paperAvailable at ResearchGate.com

Todd Sedano [email protected]

Newsletter Signup:http://sedano.org/research

Team Code Ownership Collective Ownership (Beck 2000)“Anyone can change any piece of code in the system at any time”

aka Shared Code (Beck 2004), Collective Code Ownership (Fowler 2006)

Team Code Ownership (Sedano 2016)“the ability for any developer on a team to change any of the

team’s code”

Todd Sedano [email protected]

Newsletter Signup:http://sedano.org/research

Team Code OwnershipIs more than a policy statementIs a complex interactionIs an emotional, qualitative attribute Eroded by some eventsBolstered by some practices Is a spectrum

Todd Sedano [email protected]

Newsletter Signup:http://sedano.org/research

Individual Team

Five Observed Factors Affecting Ownership

1. System Context2. Code Contribution3. Code Quality4. Product Fit5. Team Cohesion

Todd Sedano [email protected]

Newsletter Signup:http://sedano.org/research

LimitationsResearcher bias: With participant-observer, the researcher may

lose perspective and become biased by being a member of the team

Prior knowledge bias: may also blind the researcher to alternative explanations

We mitigated these risks by recording interviews and having the second and third authors review the coding process

External Validity: grounded theory is non-statistical sampling research (results might not apply to different software cultures)

Todd Sedano [email protected]

Newsletter Signup:http://sedano.org/research

Conclusion

44

Summary1. Introduce Sustainable Software Development Theory

Todd Sedano [email protected]

Newsletter Signup:http://sedano.org/research

Summary2. The theory extends our understanding of Extreme Programming

3. Mitigates the negative effects of major disruptions by i. Spreading knowledge around the teamii. Writing “well-factored” code

Todd Sedano [email protected]

Newsletter Signup:http://sedano.org/research

ConclusionPrimary benefits to the software developer Understand the team’s codeWork on any storyIncreased teaching opportunities

Primary benefit to the employer is business agility Team continues to deliver “quality software effectively” while

surviving disruptions

Todd Sedano [email protected]

Newsletter Signup:http://sedano.org/research

48Newsletter Signup:http://sedano.org/research

Todd Sedano [email protected]

photos used with permission

Thank You!

49

Sustainable Software Development paper

50

Available at ResearchGate.com

Newsletter Signup:http://sedano.org/research

Todd Sedano [email protected]

Newsletter Signup:http://sedano.org/research

Discussion

51