Do engineering teams have to be static? Could you form them, disband them or adjust their composition on a regular cadence to adapt to business needs? Could you go as far as letting your engineers decide themselves what to work on while keeping everyone aligned?
Would it be a recipe for disaster? Or would it give you the flexibility to work on what has the highest business impact while increasing engagement and developing your future leaders?
In this talk, I'll describe how my team adopted self-selection and self-organisation and how we scaled those practices to 60 people. I'll share with you our recipe to:
- Successfully plan quarters when managers can't assign engineers to projects anymore,
- Engage with stakeholders,
- Set constraints to encourage positive behaviour,
- Create alignment and track progress through OKRs.
You will leave with a renewed understanding of what Agile means at its core!
http://2019.aginext.io/Session/flexible-working-agile/
15. More work
15 engineers, growing
10+ stakeholders
30+ people years of project
backlog
16. Massive product scope
100+ pieces of software, full stack
Microservices in C#, Kotlin,
UIs with Angular, Typescript,
Spark code and Scala libraries,
SQL, NoSql,
Batch and RT processing
Random infra like hosted jupyter
notebook,
25. Recipe for the day
8:30 Breakfast (optional)
9:30 Last quarter achievements review
10:30 Demand side pitch
12:30 Lunch
13:30 Constraints presentations
13:45 Iterate on the clustering and form teams
16:30 Present each newly created team / mission
17:00 Drinks (optional)
26. Recipe for the day
8:30 Breakfast (optional)
=> Build relationships
9:30 Last quarter achievements review
10:30 Demand side pitch
12:30 Lunch
13:30 Constraints presentations
13:45 Iterate on the clustering and form teams
16:30 Present each newly created team / mission
17:00 Drinks (optional)
27. Recipe for the day
8:30 Breakfast (optional)
9:30 Last quarter achievements review
=> Energise everyone and celebrate success!
10:30 Demand side pitch
12:30 Lunch
13:30 Constraints presentations
13:45 Iterate on the clustering and form teams
16:30 Present each newly created team / mission
17:00 Drinks (optional)
28. Recipe for the day
8:30 Breakfast (optional)
9:30 Last quarter achievements review
10:30 Demand side pitch
=> Provide visibility and build alignment
12:30 Lunch
13:30 Constraints presentations
13:45 Iterate on the clustering and form teams
16:30 Present each newly created team / mission
17:00 Drinks (optional)
29. Recipe for the day
8:30 Breakfast (optional)
9:30 Last quarter achievements review
10:30 Demand side pitch
12:30 Lunch
=> Build relationships
13:30 Constraints presentations
13:45 Iterate on the clustering and form teams
16:30 Present each newly created team / mission
17:00 Drinks (optional)
30. Recipe for the day
8:30 Breakfast (optional)
9:30 Last quarter achievements review
10:30 Demand side pitch
12:30 Lunch
13:30 Constraints presentations
=> Enable self-selection
13:45 Iterate on the clustering and form teams
16:30 Present each newly created team / mission
17:00 Drinks (optional)
31. Recipe for the day
8:30 Breakfast (optional)
9:30 Last quarter achievements review
10:30 Demand side pitch
12:30 Lunch
13:30 Constraints presentations
13:45 Iterate on the clustering and form teams
=> Engage all relevant parties and build the quarterly plan
16:30 Present each newly created team / mission
17:00 Drinks (optional)
32. Recipe for the day
8:30 Breakfast (optional)
9:30 Last quarter achievements review
10:30 Demand side pitch
12:30 Lunch
13:30 Constraints presentations
13:45 Iterate on the clustering and form teams
16:30 Present each newly created team / mission
=> Communicate and test the plan
17:00 Drinks (optional)
33. Recipe for the day
8:30 Breakfast (optional)
9:30 Last quarter achievements review
10:30 Demand side pitch
12:30 Lunch
13:30 Constraints presentations
13:45 Iterate on the clustering and form teams
16:30 Present each newly created team / mission
17:00 Drinks (optional)
=> Celebrate and build relationships
39. Constraints - examples
All work gets picked or deprioritised
Team size between 3 and 6
If a team is a continuation from last quarter:
The new team must not be a subset of the previous team
At least one person must stay
42. Previous quarter achievements
Teams present what was done last quarter.
~5mins per team
Focus on impact. How did you move the needle?
What is still in progress or left to do?
Make it fun
Applause & celebrate!
43. Demand side pitch
Stakeholders present what are this quarter priorities.
~15mins / topic
Whats the context?
Why does it matter?
What is the expected business impact?
What would a great quarter look like?
Q&A with the room
A volunteer creates post-it notes with the main ideas / work items
46. Expected outcomes
Team name
Team composition
Mission
Stakeholders
Capacity and SWAGs*
Risk and dependencies
Draft OKRs
*https://en.wikipedia.org/wiki/Scientific_wild-ass_guess
48. Iterations
Start iterating! People will:
Engage with each other to discuss the work
Put their name where they want to work
Fill the expected outcomes template
49. Iterations
Are the constraints
met?
Is there too much
work somewhere?
Have we addressed
stakeholders
concerns?
Iterate
Yes No
Yes
Yes
Drop or move work
around
Adapt teams
No
No
50. What have we NOT achieved?
A static plan things will change
Option: buffer with BAU team
Chosen a delivery lead for the team
Finalised OKRs
51. Stuff we learned the hard way
How you introduce the planning day matters
1 day offsite ?!?
We already have a 5 years roadmap!
Stakeholders need to show up
53. Success?
I want to keep the quarterly planning and self selection process in
place
54. Success?
I want to keep the quarterly planning and self selection process in
place
Little long term product ownership
Only works with software that fits in
your head?
Leap of faith
56. Delivery lead
Keeps the team focussed
Communicates with stakeholders
Is *NOT* a tech lead
57. Delivery lead selection process
By the team itself
Interesting findings
Nobody wants to be a project/program manager Everybody wants to be
a delivery lead!!
People tend to elect the person that wants to do it more
60. Weekly status update
What did you achieve last week? Current KR score?
What are you focussing on this week?
How confident are we that we can score a 1.0 on this KR by the
end of the quarter?
Do we need to change anything / move work around?