Delivering a strategic Kanban

Post on 02-Jan-2022

4 views 0 download

Transcript of Delivering a strategic Kanban

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