Surviving 120% Team Churn
-
Upload
pivotal -
Category
Technology
-
view
175 -
download
0
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
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
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
Original Staffing Plan
Todd Sedano [email protected]
Newsletter Signup:http://sedano.org/research
Week # of the Project
Dev
elop
ers
Allo
cate
d
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?
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 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
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
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