SpringOne Platform 2016
Speaker: Todd Sedano; Engineering Manager, Pivotal.
Is your team disruption proof? What would happen if your key developer went on medical leave or left the company?
I’ll explain one way to enable your team to not only survive, but thrive through abrupt changes in team composition. By following the practices of sustainable software development your team can dramatically improve its bus count.
I’ll recount a story about how my team continued to deliver through chaotic times. This ten person team slowly lost most of its developers yet still delivered the product successfully. In the end, 22 developers worked on the 43 week project.
I’ll dig into the reasons that enabled this team to continue to turn the development crank, week after week, and month after month.
By implementing practices that removed knowledge silos and technical debt, your team can succeeded in the face of disruption.
9. Todd Sedano
professor@gmail.com
We want to spread knowledge
throughout the team
9
Todd Sedano
professor@gmail.com
Newsletter Signup:
http://sedano.org/research
11. Constructivist Grounded Theory
Iterative approach to data collection, coding, and analysis
Data Sources
1) participant observations of five projects
2) 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
professor@gmail.com11
Newsletter Signup:
http://sedano.org/research
12. Research Context: Pivotal Labs
Mission: a) Deliver highly-crafted software
b) Provide a transformative experience for client and
combine client engineers with pivotal engineers
Project team sizes: 2 to 28 devs (6 is common)
Balanced team: interaction designer, product manager, devs
Method: Extreme Programming
Todd Sedano
professor@gmail.com12
Newsletter Signup:
http://sedano.org/research
17. Todd Sedano
professor@gmail.com
Mitigates negative disruption effects by
1. Spreading knowledge around the team
2. Writing “well-factored” code
17
Todd Sedano
professor@gmail.com
Newsletter Signup:
http://sedano.org/research
18. Todd Sedano
professor@gmail.com
Increases the ability of any pair to
work on any story in the backlog
18
Todd Sedano
professor@gmail.com
Newsletter Signup:
http://sedano.org/research
19. Sustainable Software Development
3 Principles
3 Policies
3 Practices for Removing Knowledge Silos
3 Practices for Caretaking the Code
Todd Sedano
professor@gmail.com19
Newsletter Signup:
http://sedano.org/research
ESEM 2016
20. Principles
Engendering 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
professor@gmail.com20
Newsletter Signup:
http://sedano.org/research
21. Policies
Team 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
professor@gmail.com21
Newsletter Signup:
http://sedano.org/research
22. Removing Knowledge Silos Practices
Continuous Pair Programming
Pairing whenever possible
Increases 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
professor@gmail.com22
Newsletter Signup:
http://sedano.org/research
24. Individual Code Ownership
Todd Sedano
professor@gmail.com24
Newsletter Signup:
http://sedano.org/research
A B C D E F
Knowledge Gap
Knowledge Transfer
25. Continuous Pair Programming
Todd Sedano
professor@gmail.com25
Newsletter Signup:
http://sedano.org/research
A B C D E F
Knowledge Gap
Knowledge Transfer
26. Overlapping Pair Rotation
Todd Sedano
professor@gmail.com26
Newsletter Signup:
http://sedano.org/research
Knowledge Gap
Knowledge Transfer
A B
D
C
F
E
Strategies
Optimizing for people rotation
Optimizing for personal preferences
Optimizing for context sharing
27. Knowledge Pollination
Todd Sedano
professor@gmail.com27
Newsletter Signup:
http://sedano.org/research
Knowledge Gap
Knowledge Transfer
A B
D
C
F
E
28. Knowledge Pollination
Contributing to knowledge sharing in an un-structured way
Daily stand-up meetings
Weekly retrospectives
Writing or sketching on whiteboards
Overhearing a conversation
Using the backlog to communicate current status about a story
Calling out an update to the entire team
Simply reaching out to team to ask a question
Todd Sedano
professor@gmail.com28
Newsletter Signup:
http://sedano.org/research
A B
D
C
F
E
30. Four Tracks of Work
Todd Sedano
professor@gmail.com30
Newsletter Signup:
http://sedano.org/research
Track 1 Track 2 Track 3 Track 4
Icons designed by Freepik
31. Individual Ownership
Todd Sedano
professor@gmail.com31
Newsletter Signup:
http://sedano.org/research
Day 1 BobAlice
a a
Day 2 BobAlice
b b
Day 3 BobAlice
c c
Day 4 BobAlice
d d
Alice Bob
b
aa
d
c
Generated Knowledge
After Four Days
c
d
b
32. Optimizing for Personal Preference
Todd Sedano
professor@gmail.com32
Newsletter Signup:
http://sedano.org/research
Day 1 BobAlice
aa
bb
Day 2 CarolAlice
cc
Day 3 DanAlice
dd
Day 4 ErinAlice
Alice Bob
a
b
a
d
Generated Knowledge
After Four Days
c
d
c
bI’m enjoying
this track
33. Optimizing for People Rotation
Todd Sedano
professor@gmail.com33
Newsletter Signup:
http://sedano.org/research
Day 1 BobAlice
aa
bb
Day 2 CarolBob
cc
Day 3 AliceCarol
dd
Day 4 ErinAlice
Alice Bob
Generated Knowledge
After Four Days
a
c
d
b b
d
a
c
34. Bob Carol
bb
d
a a
cc
Generated Knowledge
After Four Days
d
Optimizing for Knowledge Sharing
Todd Sedano
professor@gmail.com34
Newsletter Signup:
http://sedano.org/research
Day 1 BobAlice
aa
bb
Day 2 CarolBob
cc
Day 3 DanCarol
dd
Day 4 DanCarol
Has enough
context been
shared?
YesYes
YesYes
YesNo
Has enough
context been
shared?
Has enough
context been
shared?
35. Example in Practice
Todd Sedano
professor@gmail.com35
Newsletter Signup:
http://sedano.org/research
36. 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
professor@gmail.com36
Newsletter Signup:
http://sedano.org/research
37. Sustainable Software Development
Todd Sedano
professor@gmail.com
Principles Policies
Engendering Positive Attitudes Toward Team Disruption
Encouraging Knowledge Sharing and Continuity
Caring about Code Quality
Team Code Ownership
Shared Schedule
Avoid Technical Debt
37
Newsletter Signup:
http://sedano.org/research
Removing Knowledge Silos Practices Caretaking the Code Practices
Continuous Pair Programming
Overlapping Pair Rotation
Knowledge Pollination
TDD / BDD
Continuous Refactoring
Supported by Live on Master
ESEM 2016
39. Team Code Ownership paper
Available at ResearchGate.com
Todd Sedano
professor@gmail.com39
Newsletter Signup:
http://sedano.org/research
40. 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
professor@gmail.com40
Newsletter Signup:
http://sedano.org/research
41. Team Code Ownership
Is more than a policy statement
Is a complex interaction
Is an emotional, qualitative attribute
Eroded by some events
Bolstered by some practices
Is a spectrum
Todd Sedano
professor@gmail.com41
Newsletter Signup:
http://sedano.org/research
Individual Team
42. Five Observed Factors Affecting Ownership
1. System Context
2. Code Contribution
3. Code Quality
4. Product Fit
5. Team Cohesion
Todd Sedano
professor@gmail.com42
Newsletter Signup:
http://sedano.org/research
43. Limitations
Researcher 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
professor@gmail.com43
Newsletter Signup:
http://sedano.org/research
45. Summary
1. Introduce Sustainable Software Development Theory
Todd Sedano
professor@gmail.com45
Newsletter Signup:
http://sedano.org/research
46. Summary
2. The theory extends our understanding of Extreme Programming
3. Mitigates the negative effects of major disruptions by
i. Spreading knowledge around the team
ii. Writing “well-factored” code
Todd Sedano
professor@gmail.com46
Newsletter Signup:
http://sedano.org/research
47. Conclusion
Primary benefits to the software developer
Understand the team’s code
Work on any story
Increased teaching opportunities
Primary benefit to the employer is business agility
Team continues to deliver “quality software effectively” while
surviving disruptions
Todd Sedano
professor@gmail.com47
Newsletter Signup:
http://sedano.org/research
50. Sustainable Software Development paper
50
Available at ResearchGate.com
Newsletter Signup:
http://sedano.org/research
Todd Sedano
professor@gmail.com
Newsletter Signup:
http://sedano.org/research