the aggregation of marginal gains in software engineering
TRANSCRIPT
![Page 1: The Aggregation of Marginal Gains in Software Engineering](https://reader031.vdocuments.site/reader031/viewer/2022022202/5880cfe91a28ab9c3a8b50bd/html5/thumbnails/1.jpg)
Improving performancethrough the
aggregation of marginal gains13th August 2015
![Page 2: The Aggregation of Marginal Gains in Software Engineering](https://reader031.vdocuments.site/reader031/viewer/2022022202/5880cfe91a28ab9c3a8b50bd/html5/thumbnails/2.jpg)
Agenda
• What does `the aggregation of marginal gains` mean?• Could this improve the performance of our software
engineering team?
![Page 3: The Aggregation of Marginal Gains in Software Engineering](https://reader031.vdocuments.site/reader031/viewer/2022022202/5880cfe91a28ab9c3a8b50bd/html5/thumbnails/3.jpg)
Sir Dave BrailsfordEx-Performance Director, British Cycling
General Manager, Team Sky
By utilising marginal gains, these teams saw considerable success..
![Page 4: The Aggregation of Marginal Gains in Software Engineering](https://reader031.vdocuments.site/reader031/viewer/2022022202/5880cfe91a28ab9c3a8b50bd/html5/thumbnails/4.jpg)
British CyclingOlympic Medal Haul 2000 - 2012
![Page 5: The Aggregation of Marginal Gains in Software Engineering](https://reader031.vdocuments.site/reader031/viewer/2022022202/5880cfe91a28ab9c3a8b50bd/html5/thumbnails/5.jpg)
Team SkyTour de France British Winners
2012 2013 2015
![Page 6: The Aggregation of Marginal Gains in Software Engineering](https://reader031.vdocuments.site/reader031/viewer/2022022202/5880cfe91a28ab9c3a8b50bd/html5/thumbnails/6.jpg)
–Sir Dave Brailsford
“The whole principle came from the idea that if you broke down everything you could think of that goes into riding a bike, and then improved it by 1%, you will get a significant
increase when you put them all together”
![Page 7: The Aggregation of Marginal Gains in Software Engineering](https://reader031.vdocuments.site/reader031/viewer/2022022202/5880cfe91a28ab9c3a8b50bd/html5/thumbnails/7.jpg)
Sleep posture is important for an athlete
The team replaced the mattresses + pillows in every hotel room theriders stayed in
![Page 8: The Aggregation of Marginal Gains in Software Engineering](https://reader031.vdocuments.site/reader031/viewer/2022022202/5880cfe91a28ab9c3a8b50bd/html5/thumbnails/8.jpg)
![Page 9: The Aggregation of Marginal Gains in Software Engineering](https://reader031.vdocuments.site/reader031/viewer/2022022202/5880cfe91a28ab9c3a8b50bd/html5/thumbnails/9.jpg)
We are not a professional cycling team.
![Page 10: The Aggregation of Marginal Gains in Software Engineering](https://reader031.vdocuments.site/reader031/viewer/2022022202/5880cfe91a28ab9c3a8b50bd/html5/thumbnails/10.jpg)
We are a team. We have goals.
![Page 11: The Aggregation of Marginal Gains in Software Engineering](https://reader031.vdocuments.site/reader031/viewer/2022022202/5880cfe91a28ab9c3a8b50bd/html5/thumbnails/11.jpg)
requirements
code
test cases
Product Owner
User
![Page 12: The Aggregation of Marginal Gains in Software Engineering](https://reader031.vdocuments.site/reader031/viewer/2022022202/5880cfe91a28ab9c3a8b50bd/html5/thumbnails/12.jpg)
Release early, release often…We want the lightbulb (the Product Owner’s feature) to get round our
‘race track’ in the shortest possible time, but not at any cost. We want to:
1. Get a functioning lightbulb round the track (scope)2. In the shortest time possible (velocity)3. Without sacrificing the time for subsequent lightbulbs to get round
the track (quality)
![Page 13: The Aggregation of Marginal Gains in Software Engineering](https://reader031.vdocuments.site/reader031/viewer/2022022202/5880cfe91a28ab9c3a8b50bd/html5/thumbnails/13.jpg)
What could our marginal gains look like?
![Page 14: The Aggregation of Marginal Gains in Software Engineering](https://reader031.vdocuments.site/reader031/viewer/2022022202/5880cfe91a28ab9c3a8b50bd/html5/thumbnails/14.jpg)
requirements
code
test cases
Product Owner
User
![Page 15: The Aggregation of Marginal Gains in Software Engineering](https://reader031.vdocuments.site/reader031/viewer/2022022202/5880cfe91a28ab9c3a8b50bd/html5/thumbnails/15.jpg)
What goes into the ‘code’ work product?
![Page 16: The Aggregation of Marginal Gains in Software Engineering](https://reader031.vdocuments.site/reader031/viewer/2022022202/5880cfe91a28ab9c3a8b50bd/html5/thumbnails/16.jpg)
We review code
![Page 17: The Aggregation of Marginal Gains in Software Engineering](https://reader031.vdocuments.site/reader031/viewer/2022022202/5880cfe91a28ab9c3a8b50bd/html5/thumbnails/17.jpg)
Not all diffs are created equal
![Page 18: The Aggregation of Marginal Gains in Software Engineering](https://reader031.vdocuments.site/reader031/viewer/2022022202/5880cfe91a28ab9c3a8b50bd/html5/thumbnails/18.jpg)
Work to a maximum number of characters per line:
Ideally <80
Definitely <132
It’s much easier to interpret diffs during a code review
![Page 19: The Aggregation of Marginal Gains in Software Engineering](https://reader031.vdocuments.site/reader031/viewer/2022022202/5880cfe91a28ab9c3a8b50bd/html5/thumbnails/19.jpg)
We debug code
![Page 20: The Aggregation of Marginal Gains in Software Engineering](https://reader031.vdocuments.site/reader031/viewer/2022022202/5880cfe91a28ab9c3a8b50bd/html5/thumbnails/20.jpg)
Commit messages vary in their usefulness
![Page 21: The Aggregation of Marginal Gains in Software Engineering](https://reader031.vdocuments.site/reader031/viewer/2022022202/5880cfe91a28ab9c3a8b50bd/html5/thumbnails/21.jpg)
Elliot Carver, Bond Villain
“The key to a great story is not who, or what, or when, but why.”
commit message
![Page 22: The Aggregation of Marginal Gains in Software Engineering](https://reader031.vdocuments.site/reader031/viewer/2022022202/5880cfe91a28ab9c3a8b50bd/html5/thumbnails/22.jpg)
We run acceptance-level automation
![Page 23: The Aggregation of Marginal Gains in Software Engineering](https://reader031.vdocuments.site/reader031/viewer/2022022202/5880cfe91a28ab9c3a8b50bd/html5/thumbnails/23.jpg)
We currently run entire cake + salvos before merge:
- this is dead time for a developer
- doesn’t expose poorly designed code to other members of the team
![Page 24: The Aggregation of Marginal Gains in Software Engineering](https://reader031.vdocuments.site/reader031/viewer/2022022202/5880cfe91a28ab9c3a8b50bd/html5/thumbnails/24.jpg)
Developers should only need to run:
- @smoketest
- relevant scenarios
![Page 25: The Aggregation of Marginal Gains in Software Engineering](https://reader031.vdocuments.site/reader031/viewer/2022022202/5880cfe91a28ab9c3a8b50bd/html5/thumbnails/25.jpg)
requirements
code
test cases
Product Owner
User
![Page 26: The Aggregation of Marginal Gains in Software Engineering](https://reader031.vdocuments.site/reader031/viewer/2022022202/5880cfe91a28ab9c3a8b50bd/html5/thumbnails/26.jpg)
What goes into our other work products?
![Page 27: The Aggregation of Marginal Gains in Software Engineering](https://reader031.vdocuments.site/reader031/viewer/2022022202/5880cfe91a28ab9c3a8b50bd/html5/thumbnails/27.jpg)
We define things
![Page 28: The Aggregation of Marginal Gains in Software Engineering](https://reader031.vdocuments.site/reader031/viewer/2022022202/5880cfe91a28ab9c3a8b50bd/html5/thumbnails/28.jpg)
We define terminology to help us implement a feature
That same terminology will be used by the next person who works on that feature
![Page 29: The Aggregation of Marginal Gains in Software Engineering](https://reader031.vdocuments.site/reader031/viewer/2022022202/5880cfe91a28ab9c3a8b50bd/html5/thumbnails/29.jpg)
Treat terminology as a deliverable
Instantly resolve ambiguity you find:
>1 term to describe the same thing
>1 thing can be described with the same term
![Page 30: The Aggregation of Marginal Gains in Software Engineering](https://reader031.vdocuments.site/reader031/viewer/2022022202/5880cfe91a28ab9c3a8b50bd/html5/thumbnails/30.jpg)
We deal with surprises
![Page 31: The Aggregation of Marginal Gains in Software Engineering](https://reader031.vdocuments.site/reader031/viewer/2022022202/5880cfe91a28ab9c3a8b50bd/html5/thumbnails/31.jpg)
Surprises normally slow us down
It’s better to move from up-next > blocked, rather than ready-for-test > blocked
![Page 32: The Aggregation of Marginal Gains in Software Engineering](https://reader031.vdocuments.site/reader031/viewer/2022022202/5880cfe91a28ab9c3a8b50bd/html5/thumbnails/32.jpg)
Developer/Tester chat before up-next -> in-progress
is there any unclear terminology here?
is this a candidate for a smoke test?
does this rely on any 3rd party code?
is there any device-specific behaviour?
is there anything here that could be difficult to automate?
![Page 33: The Aggregation of Marginal Gains in Software Engineering](https://reader031.vdocuments.site/reader031/viewer/2022022202/5880cfe91a28ab9c3a8b50bd/html5/thumbnails/33.jpg)
Can this improve the performance of our team?
![Page 34: The Aggregation of Marginal Gains in Software Engineering](https://reader031.vdocuments.site/reader031/viewer/2022022202/5880cfe91a28ab9c3a8b50bd/html5/thumbnails/34.jpg)
Your actions provide gains to other members of the team :)
You’ll experience gains because of someone else’s actions :)
However, to really understand performance we need measurements
![Page 35: The Aggregation of Marginal Gains in Software Engineering](https://reader031.vdocuments.site/reader031/viewer/2022022202/5880cfe91a28ab9c3a8b50bd/html5/thumbnails/35.jpg)
–Sir Dave Brailsford
“We're in the right mindset, we're looking for little things, collectively, all the time that's going to make us improve.”
collectively
![Page 36: The Aggregation of Marginal Gains in Software Engineering](https://reader031.vdocuments.site/reader031/viewer/2022022202/5880cfe91a28ab9c3a8b50bd/html5/thumbnails/36.jpg)
?