View
2.039
Download
0
Category
Preview:
Citation preview
About me@ziobrando
I do something else instead
@ziobrandoAbout me
avanscoperta
#DDD #Developer
#Coach
About me@ziobrando
I do something else instead
@ziobrandoAbout me
avanscoperta
#DDD
#Agile
#Developer
#Coach
About me@ziobrando
I do something else instead
@ziobrandoAbout me
avanscoperta
#DDD
#Agile
#Developer
#Coach
#Facilitator
About me@ziobrando
I do something else instead
@ziobrandoAbout me
avanscoperta
#DDD
#Agile
#Developer
#EventStorming
#Coach
#Facilitator
About me@ziobrando
I do something else instead
@ziobrandoAbout me
avanscoperta
#DDD
#Agile
#Developer
#EventStorming
#Coach
#Facilitator
#Consultant
About me@ziobrando
I do something else instead
@ziobrandoAbout me
avanscoperta
#DDD
#Agile
#Lean
#Developer
#EventStorming
#Coach
#Facilitator
#Consultant
About me@ziobrando
I do something else instead
@ziobrandoAbout me
avanscoperta
#DDD
#Agile
#Lean
#Entrepreneur
#Developer
#EventStorming
#Coach
#Facilitator
#Consultant
Drummer with Nirvana Singer ! Guitar with Foo Fighters Plus amazing appearances (QoTS)
Cancelled a gig to bring the daughter to a party
Didn’t cancel a show when he broke his leg on stage.
The setting
• Large organisations • Multiple teams • Many concurrent projects • Shared portions of the
codebase
Empire’s capacity planning
I need a fixed story-point/man-day ratio in order to convert the estimation into FTE1s, so that I can plan projects at full capacity.
FTE = Full Time Equivalent. A unit of cost traditionally abused in the empire
Empire’s capacity planning
I would be happy to get rid of this agile stuff and just get Guaranteed Dates of Delivery
Empire’s capacity planning
The business is growing so that I need to hire more developers in order to catch the new opportunities
FTE = Full Time Equivalent. A unit of cost traditionally abused in the empire
It’s about team’s capacity
-Ramp-up time
-Domain knowledge
-Good teams have a style
-Mastery of key practices
It’s about system capacity
-Teams should be able to deliver independently
-1 cross functional team
-1 backlog
-1 product owner
That’s pretty much agile by the book
But in the empire…
• Large organisations • Multiple teams • Many concurrent projects • Shared portions of the
codebase
But in the empire…
• Large organisations • Multiple teams • Many concurrent projects • Shared portions of the
codebase•Teams can’t deliver by
themselves
Cross Functional?
The larger the organisation, the more the idea of Cross-Functional teams becomes a fairytale.
Unfortunately
• Large organisations • Multiple teams • Many concurrent projects
•Teams can’t deliver by themselves
Above the surface…
Project #1
8 weeks
Project #1
4 weeks
Team Alpha
Team Tango
QA
Integrationteam
Project #1:
4 weeks
Project #1:
2 weeks
January February March
Project #1:
3 weeks
Above the surface…
Project #1
8 weeks
Project #1
4 weeks
Team Alpha
Team Tango
QA
Integrationteam
Project #1:
4 weeks
Project #1:
2 weeks
January February March
Project #1:
3 weeks
… and below
Above the surface…
Project #1
8 weeks
Project #1
4 weeks
Team Alpha
Team Tango
QA
Integrationteam
Project #1:
4 weeks
Project #1:
2 weeks
January February March
Project #1:
3 weeks
… and below
PO Clear business goal Visible team capacity
Supporting goals, not so visible team capacity often, conflicting ownership
The problem looks like….
Dependent activities pile up in some teams more than others.
Frontline teams experience delays from service and platform teams —> extra
management ! rework
Platform ! Service are burdened with growing incoming requests
Show the problem-Find a way to visualise !
investigate the system constraint —> the real team capacity
-Put key stakeholders in the same room and co-create the corresponding model
The empire view
Heavily unbalanced system Many idle resources are not
producing value Adding more resources to the
system isn’t really improving the system
Theory of constraintsIdentify the constraint
Exploit the bottleneck
Subordinate the system to the constraint
Elevate the constraint
identify the new constraint
There’s no 100%
-Non bottleneck resources shouldn’t be allocated 100% - …or they’ll create more mess and interruptions
around the bottleneck
-Bottleneck resources shouldn’t be allocated 100% either - They’re humans
- ripple effects are more expensive then slack.
ToCIdentify the constraint
Exploit the bottleneck
Subordinate the system to the constraint
Elevate the constraint
identify the new constraint
Empire ToCIdentify the constraint
Exploit the bottleneck
Subordinate the system to the constraint
Elevate the constraint
identify the new constraint
EmpireHide the system
constraints
ToCIdentify the constraint
Exploit the bottleneck
Subordinate the system to the constraint
Elevate the constraint
identify the new constraint
EmpireHide the system
constraints
ToCIdentify the constraint
Exploit the bottleneck
Subordinate the system to the constraint
Elevate the constraint
identify the new constraint
EmpireHide the system
constraints
Overload the bottleneck
ToCIdentify the constraint
Exploit the bottleneck
Subordinate the system to the constraint
Elevate the constraint
identify the new constraint
EmpireHide the system
constraints
Overload the bottleneck
ToCIdentify the constraint
Exploit the bottleneck
Subordinate the system to the constraint
Elevate the constraint
identify the new constraint
EmpireHide the system
constraints
Overload the bottleneck
punish the bottleneck
ToCIdentify the constraint
Exploit the bottleneck
Subordinate the system to the constraint
Elevate the constraint
identify the new constraint
EmpireHide the system
constraints
Overload the bottleneck
punish the bottleneck
ToCIdentify the constraint
Exploit the bottleneck
Subordinate the system to the constraint
Elevate the constraint
identify the new constraint
EmpireHide the system
constraints
Overload the bottleneck
punish the bottleneck
Recruit more people
ToCIdentify the constraint
Exploit the bottleneck
Subordinate the system to the constraint
Elevate the constraint
identify the new constraint
EmpireHide the system
constraints
Overload the bottleneck
punish the bottleneck
Recruit more people
ToCIdentify the constraint
Exploit the bottleneck
Subordinate the system to the constraint
Elevate the constraint
identify the new constraint
EmpireHide the system
constraints
Overload the bottleneck
punish the bottleneck
Recruit more people
The constraint is still there, only worse
ToCIdentify the constraint
Exploit the bottleneck
Subordinate the system to the constraint
Elevate the constraint
identify the new constraint
EmpireHide the system
constraints
Overload the bottleneck
punish the bottleneck
Recruit more people
The constraint is still there, only worse
ToCIdentify the constraint
Exploit the bottleneck
Subordinate the system to the constraint
Elevate the constraint
identify the new constraint
A simplified view
costs accumulate during development phases apparently small
or no cost in waiting to release
Revenues pop in (minus operations)
Cost of delay
Costs go down during development
(apparently) no cost in waiting to release
Revenues pop in (minus operations)
End of period
Cost of delay
Interruptions
While working on different projects they’re disruptive or ineffective
They’re valuable while working on the same one
Can’t solve the problem-Without allowing for some
duplication
-Without putting architecture under scrutiny
-Without allowing some heterogeneity
Estimations
In corporate scenarios, the part which is out of control could easily get over 50%
… yep, talking about #noestimates
It’s viable
-Build around the learning
- create a shared (temporary) context
- build together a vision (#UserStoryMapping, #EventStorming)
-pride and ownership are your friends
Remember the old talks
Software development is a learning process
Working code is a side effect
Still valid at this scale too
Talent cannot easily be replaced
Replaceability is for piano-bar, not for great bands
Can you name a great band with continuous turnover?
Can you name a band that outsourced?
* …well Dave hasn’t really said that ;-)
A losing game
If you’re not working to attract ! retain talent, then you’re actively
working to lose talent
The hard way
Being counterintuitive means that you’ll have to fight for the basics
Management with no specific IT background is very likely to blow it.
IT background is no guaranteed recipe for success either
Can’t solve invisible problems
Make the system constraint visible Make the implicit goals visible
Make the system constraint visible Make the implicit goals visible
Competing goals
Competition on key resources is poisonous
Please STOP it (including the invisible part: bonuses etc.)
Not a process only It is an ecosystem, not a factory
HR is part of the problem and of the solution
Talent ! Pride are your friends
Ecosystem
it is always an ecosystem whether you like it or not
ignoring this, just places yours at the lower end of the spectrum
THANKS
alberto.brandolini@avanscoperta.it @ziobrando
Special thanks to @papachrismatts for (re)opening my eyes at ALE 2015 Sofia www.infoq.com/presentations/theory-constraints-portfolio
REFERENCES
http://www.infoq.com/presentations/theory-constraints-portfolio
Recommended