The Kiev Experiment

47
The Kiev Experiment Evolving Agile Partnerships

description

The Kiev Experiment. Evolving Agile Partnerships. Who are we?. Simon Sasha Peter. Where did we start?. Existing Monolithic Mainframe Application Quarterly Deliveries 6 Week Testing Cycles Offshore Delivery teams Waterfall process Command and Control. What did we want to do?. - PowerPoint PPT Presentation

Transcript of The Kiev Experiment

Page 1: The Kiev Experiment

The Kiev Experiment

Evolving Agile Partnerships

Page 2: The Kiev Experiment

Who are we?

• Simon

• Sasha

• Peter

Page 3: The Kiev Experiment

Where did we start?

• Existing Monolithic Mainframe Application

• Quarterly Deliveries

• 6 Week Testing Cycles

• Offshore Delivery teams

• Waterfall process

• Command and Control

Page 4: The Kiev Experiment

What did we want to do?

• Belief there was a better way to deliver software

• Incremental development to deliver business value quickly

• Address the rapidly changing business landscape with flexibility in delivery

• Build quality into the solutions

• Deliver the software rapidly, but in a cost effective manner

• Put the fun back into software delivery

Page 5: The Kiev Experiment

How did we start?

• Started with a single team in London

• Initially focused on building the tools, proving the processes and technologies

• Release 1.0 on Friday 13th October 2006

• Very soon we started to look how we could scale

Page 6: The Kiev Experiment

Where are we now?

• 5 years into the delivery

• 2M trades per day

• 100 billions settling per day in all major currencies

• 40 exchanges across EMEA and APAC

• 15 scrum teams/120 people

• Teams in London, Kiev, Hyderabad, Hong Kong and New York

• 9 application components

• Production releases every 2 weeks

Page 7: The Kiev Experiment

How did we get here?

• Inspect & Adapt

• Lots and lots of experiments

• Don’t accept the status quo

• But lets go back to the beginning…….

Page 8: The Kiev Experiment

Evolving the Team

Page 9: The Kiev Experiment

D D

DD

D

D

D

2006

small co-located team

Page 10: The Kiev Experiment

D

D

D

DD

D

D D

DD

D

D

D

2006

small co-located team

2007

Page 11: The Kiev Experiment

D D

DD

D

D

D

D

D

D

DD

D

component teams

2006 2007

small co-located team

Page 12: The Kiev Experiment

D

D

D

D

D

D D

D

DD

D

D

D

A T

A T

A T

D

D

D

co-located feature teams

dispersed feature teams

component teams

2006 2007

small co-located team

2008 2009

Page 13: The Kiev Experiment

DDD

D

D

D

D D

D

D

D D

D

D

D

D

A T

A T

A T

D D

A T

first distributed feature team

co-located feature teams

dispersed feature teams

component teams

2006 2007

small co-located team

2008 2009 2010

Page 14: The Kiev Experiment

DDD

D

D

D

D D

D

D

D D

D D DD

A T

A T

A T

D D

A T

D DD D D

A T

DD DD

A T

many distributed feature teams

first distributed feature team

co-located feature teams

dispersed feature teams

component teams

2006 2007

small co-located team

2008 2009 2010 2011

Page 15: The Kiev Experiment

New York London Kiev Hyderabad Hong Kong

Page 16: The Kiev Experiment

Evolving the Communication

Page 17: The Kiev Experiment

Luxoft teams evolution

4 people0 teams

6 people1 team

21 people3 teams

30 people4 teams

Page 18: The Kiev Experiment

Communication issue

End users

Analysts

Architects

Offshore team 1

Offshore team 2

Offshore team 3

Page 19: The Kiev Experiment

Broadening Communication Bandwidth

Page 20: The Kiev Experiment

Polycom experiment

Communication

flow

PHOTO

Page 21: The Kiev Experiment

Skype and projector

Page 22: The Kiev Experiment

Interactive whiteboards + Skype

Page 23: The Kiev Experiment

TelePresence?

Page 24: The Kiev Experiment

Bridging The Communication Gap

Page 25: The Kiev Experiment

Team intermediary

Onshore team Intermediary Offshore team

Page 26: The Kiev Experiment

Bilateral rotation

Page 27: The Kiev Experiment

Specification By Example

Page 28: The Kiev Experiment

Dedicated architects group

Architects

Offshore team 1

Offshore team 2

Offshore team 3

Page 29: The Kiev Experiment

Joint Architectural Workshops

Page 30: The Kiev Experiment

Joint Architectural Workshops

Page 31: The Kiev Experiment

Tackling technical challenges

Page 32: The Kiev Experiment

Release Management

trunk

Release 1.0 Release 2.0

Page 33: The Kiev Experiment

But how do you scale?

trunk

Release 1.0 Release 2.0

Multiple Teams

Concurrent Projects

Page 34: The Kiev Experiment

ISE

CHIX

TQ

Release 2.0

Release 2.1

Let’s introduce a process

Page 35: The Kiev Experiment
Page 36: The Kiev Experiment
Page 37: The Kiev Experiment
Page 38: The Kiev Experiment

But what if thisnow becomes thehighest priority?

CI needed on each branch

Manual and high coordinated

Waste of delayed integration

Page 39: The Kiev Experiment

How do you address changing feature priority?

How do you allow incremental feature development?

How can you have an agile release function?

Page 40: The Kiev Experiment

trunk

Release X (ISE)

Release Y(CHIX)

This is what we want

ISE

CHIX

TQ

Page 41: The Kiev Experiment

trunk

Release X(ISE)

Release Y (CHIX)

Latent Code Patterns

ISE

CHIX

TQ“One of the most powerful techniques I have used over the last three years is latent code patterns.”

Chris Matts InfoQ – The Last Responsible Moment in Deployment

Page 42: The Kiev Experiment

trunk

Release X (ISE)

Release Y (CHIX)

Latent Code Patterns

ISE

CHIX

TQEvent DrivenFeature Bits or ConfigurationModularity or Dependency Injection

Page 43: The Kiev Experiment

200 commits per day1000 artefacts updated per day1 commit every 5 minutes peak

Keeping It Green

Page 44: The Kiev Experiment

A Single Bad Commit…..

Page 45: The Kiev Experiment

13 hours elapsed time wasted500 hours of effort wasted

A Wasted Day

Page 46: The Kiev Experiment

Coaching

Page 47: The Kiev Experiment

Fast Visible Feedback

• 24 Build Targets • 37 Test Targets