Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
Delivering a strategic platform for the future using Kanban
Phil Poole
● ITV is an integrated producer broadcaster● ITV achieved £1.2bn revenue for first half of 2014● ITV Studios is the largest commercial producer in the UK, creating over 3,500
hours of original content each year● ITV invests approx. £1billion per annum commissioning programmes for its
family of UK channels● ITV accounts for 99.8% of commercial programmes attracting more than 5
million viewers● ITV distributes its content to 20 platforms
About ITV
● Phil Poole● Agile delivery manager at ITV● Work in Technology Online - ITV Player across multiple platforms● Responsible for all agile workstreams in Online● Facilitate and coach the department to deliver using Agile practices● Scrum master a team
About Me
InfrastructurePhysical Servers, Virtualisation, Networking,
Storage, Data Centres, Power
PlatformConfig, HTTP Load balancers, Caching,
Database, Messaging, Search
ClientsITV Player, Internal Apps, 3rd Parties
SoftwareCommon Services, Online Services,
Media Asset Management, Workflow
COMMON PLATFORMSERVICES
COMMON PLATFORM
COMMON INFRASTRUCTURE
InfrastructurePhysical Servers, Virtualisation, Networking,
Storage, Data Centres, Power
PlatformConfig, HTTP Load balancers, Caching,
Database, Messaging, Search
ClientsITV Player, Internal Apps, 3rd Parties
SoftwareCommon Services, Online Services,
Media Asset Management, Workflow
COMMON PLATFORMSERVICES
COMMON PLATFORM
COMMON INFRASTRUCTURE
TV on Common
Platform
Setting up the project
2 Client sideJavascript
2 Server sideScala
2 Developers in testRuby
2 Platform engineers Puppet, …..
2 Client sideJavascript
2 Server sideScala Team has all the
capabilities it needs to deliver the project
Reduced the amount of dependencies to three.2 Developers in
testRuby
2 Platform engineers Puppet, …..
User flow
Splash screen Home screen Select A-Z Play programme
Show adverts Show programme
Pause Exit app
User flow
Splash screen Simple homescreen
Select A-Z
Play programme
Show adverts
Show programme
Pause
Exit app
Most popular homescreen
User flow
Splash screen Simple homescreen
Select A-Z
Play programme
Show adverts
Show programme
Pause
Exit app
Most popular homescreen
Slice 1:Simplest, thinnest slice that allows a user to play a video but integrates across the entire stack.
User flow
Splash screen Simple homescreen
Select A-Z
Play programme
Show adverts
Show programme
Pause
Exit app
Most popular homescreen
Slice 1:Simplest, thinnest slice that allows a user to play a video but integrates across the entire stack.
Slice 2:Most risky and complex work - front load the complexity
User flow
Splash screen Simple homescreen
Select A-Z
Play programme
Show adverts
Show programme
Pause
Exit app
Most popular homescreen
Slice 1:Simplest, thinnest slice that allows a user to play a video but integrates across the entire stack.
Slice 2:Most risky and complex work - front load the complexity
Slice 3:Anything else to have a viable MVP
User flow
Splash screen Simple homescreen
Select A-Z
Play programme
Show adverts
Show programme
Pause
Exit app
Most popular homescreen
Slice 1:Simplest, thinnest slice that allows a user to play a video but integrates across the entire stack.
Slice 2:Most risky and complex work - front load the complexity
Slice 3:Anything else to have a viable MVP
Slice 0:Setting up deployment pipeline and spiking to reduce large risks.
● Use Kanban● Pre-mortem workshop for team to decide our process ● High level sizing of MVP
○ Used points - mechanism to train team to break work into small pieces○ Ability to track progress
● Reduce complexity and dependencies by descoping certain features
● Each story is finished when it is tested, signed off by the business and deployed○ To the temporary integration environment○ Not production as we do not have this yet
2 Client sideJavascript
2 Server sideScalaManaging infrastructure
and platform separately- different report- different backlog
Purpose to create integration, stage and production environments
Purpose to create TV app and the back end services to support
2 Developers in testRuby
2 Platform engineers Puppet, …..
Show initial burndown chart
Answer the question to the business when is it going to get done
Cannot answer yet as new team, with no other team as a basis or template - need 6 weeks
Burndown
Show initial burndown chart
Answer the question to the business when is it going to get done
Cannot answer yet as new team, with no other team as a basis or template - need 6 weeks
Burndown
Slice 0 was not counted in burndown and occurred and was developed before this
Show initial burndown chart
Answer the question to the business when is it going to get done
Cannot answer yet as new team, with no other team as a basis or template - need 6 weeks
Burndown
Slice 0 was not counted in burndown and occurred and was developed before this Slice 0 had a 21pt story - I let it
through so team would see the pain of large stories.
However, this meant it would take longer to find an accurate indicative velocity for forcasting
First issue - it’s all too slow
Slice 1 Epic 1
Epic 2
Slice 2 Epic 1
Epic 2
Epic 3
Slice 3 Epic 1
Epic 2
Epic 3
Epic 4Front end only
2 Client sideJavascript
2 Server sideScala
2 Developers in testRuby
2 Platform engineers Puppet, …..
3 Client sideJavascript
4 Server sideScala
2 Developers in testRuby
2 Platform engineers Puppet, …..
3 Client sideJavascript
4 Server sideScala Increase
WIP2 Developers in testRuby
2 Platform engineers Puppet, …..
3 Client sideJavascript
4 Server sideScala
What about test resource?Dev: Test ratio is now 4:1. It should ideally be 2:1 Increase
WIP2 Developers in testRuby
2 Platform engineers Puppet, …..
3 Client sideJavascript
4 Server sideScala
What about test resource?Dev: Test ratio is now 4:1. It should ideally be 2:1 Increase
WIP3 Developers in testRuby
2 Platform engineers Puppet, …..
Reduced scope further
Started process to add extra people here
Started process to add extra people here
2 new people start
New person starts
New person starts
Adding people to a project will reduce velocity due to:
● Time to recruit● Time for people to arrive● Knowledge transfer
Short term pain for a long term gain
Second issue - everything is so blocked
● Risk of blocking on every story● Will lose the ability to deploy to
our integration environment at end of May
● Will not be able to set up all other environments in time
● Pivot our infrastructure and platform solution
● Split team so Ops concentrate on creating on new environments and integrate at a later date
● Will have an impact on the project later on
Issue 3 - there’s too much
Reset forecast
Scope increase
Reset forecast
Scope increase trend
Reset forecast
Epic Estimated size
Actual size Percentage difference
Most popular home page
34 50 47
Episode information displayed on home screen
13 46 254
Advertising 34 26 -24
ITV Branding 5 3 -40
Legal 21 19 -10
Other 8 24 200
How accurate are our estimations for the remaining work
76pts
Originally estimated
131pts76pts
Originally estimated
Re- estimated
131pts76pts
Cut the scope
Originally estimated
Re- estimated
Cut the scope
131pts76pts 94pts
Originally estimated
Re- estimated
After descoping A-Z
What could impact velocity and the end date?
● Deploying to the new integration environment
● Deploying to production when it is ready
● Scope increase● Need to submit app for testing
with the TV company
What could impact velocity and the end date?
● Deploying to the new integration environment
● Deploying to production when it is ready
● Scope increase● Need to submit app for testing
with the TV company
Started pre-launch preparation
Merging the teams
3 Client sideJavascript
4 Server sideScala
3 Developers in testRuby
3 Platform engineers Puppet, …..
3 Client sideJavascript
4 Server sideScala
But moving onto the new environment is now reducing velocity
3 Platform engineers Puppet, …..
3 Developers in testRuby
Integration env setup and ready Integration
env now being used
When we should be ready
Final stories● Rigourously
prioritise on a daily basis
● descoping anything we can
Final stories● Rigourously
prioritise on a daily basis
● descoping anything we can
Now post MVP
w/c 8th Sept I knew we would finish
We finished 3 days ahead of schedule
Looking back
● Realise it can take time to start up the project - especially if you are moving people from one team to another
● Front load the complexity and risk to the start of the project● Reduce dependencies by setting up the right team● Split the work in smaller sections through user mapping● Use pre-mortem to reduce a lot of the issues you get when you start a project● Do not forget your setup tasks - slice 0 in our case
Summary
● Use the burndown / burn-up / CFD to look ahead○ Don’t let gut feelings sway you, use facts only - this is hard!○ Always ask what could affect the team in the future○ Don't bury your head in the sand
● Add people to projects but with the understanding you will have short term pain for a long term gain
● When adding people do not forget about other capabilities such as test● Always ask what could impact the velocity / flow of work● Be pragmatic● Watch out for scope increase● It is ok to cut scope if dates are important
○ The closer to a release date, the malleable the scope becomes● Reset your forecasts at appropriate points