Download - Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Transcript
Page 1: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

LiveAccounts: Continuous Delivery in the Real World

Nish Mahanty

Lawrence Song

Page 2: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

“Rapidly deliver value to our customers” CTO

Page 3: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Good news journey Quadrupled our feature throughput Shortened our delivery times by 87% Improved team satisfaction Metrics Team empowerment Tools

Page 4: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Just the facts Ma’am

Page 5: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Legacy code

Page 6: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Manual Build

Page 7: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Unpredictability

Page 8: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Distributed team

Page 9: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Real bug?

Page 10: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Late night deployments

Page 11: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Develop Smoke

Functional

Smoke Regression

Smoke

Delivery Value Stream

3 3 1

Prod Staging QA 1 3 0.3

Compile Assemble Package Restore DB Apply DB Changes Deploy Package

Assemble Package Restore DB Apply DB Changes Deploy Package

Assemble Package Apply DB Changes Deploy Package

Dev

Page 12: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st
Page 13: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Dude, where’s my new feature?

Page 14: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

(and what we don’t)

What we believe in

Page 15: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Code quality

Current Before

Page 16: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Automated functional tests

0

21

56

79

110

132 146

160 173

S O N D J F M A M

# of Scenarios

Page 17: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

60 65 65 65

80 83

93 94 94

S O N D J F M A M

% Coverage

Unit test coverage – new code

Page 18: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Code branches

5

2 1

Before Now Next

Page 19: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Deployment Duration

S O N D J F M

130 98

Page 20: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Cycle Time (Features and Defects)

S O N D J F M

30

9.8

Page 21: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Delivery

Duration

87% faster release

11

1

Page 22: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

How we did it

Page 23: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

One team

Develop Smoke

Functional

Smoke Regression

Smoke 3 3 1

Prod Staging QA 1 3 0.3

Dev

Page 24: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Build a common vision

Page 25: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Common KPIs

Build Trust

Improve Comms

Page 26: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Empower the team to change things

Page 27: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Approach

• Close collaboration

• Incremental

• Data driven

• Automation

• Consensus base

Page 28: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Develop Smoke

Functional

Smoke Regression

Smoke

Development Environment

3 3 1

Prod Staging QA 1 3 0.3

Dev

3 days to set up environment Shared database Shared environment Manual build No continuous integration build

30 min to set up Database change management Development sandbox Automated builds

Page 29: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Evolution, not revolution

Maven Buildr

Hudson Go

Perforce Git

Manual

No CI

Page 30: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Code Quality

• Agreed on coding standards as a team

• Unit Test Code Coverage: Minimum Value 80%

• Cyclomatic Complexity <= 7

• Checkstyle

• JsLint

• Fail a build

Page 31: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Develop Smoke

Functional

Smoke Regression

Smoke

Deployment

3 3 1

Prod Staging QA 1 3 0.3

Dev

3 days to QA environment 20 page checklist 1 day getting prod data to env Similar timeframes for stg/prod Frustrated QAs

30 min to each environment Auto configuration management 1 click deployment 1 click restore prod db

Page 32: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Develop Smoke

Functional

Smoke Regression

Smoke

Testing

3 3 1

Prod Staging QA 1 3 0.3

Dev

4 days (4 QAs) Tedious regression Slow feedback cycle

1 day (2 QAs) Automated functional tests

Page 33: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Behaviour Driven Dev’t by empowered testers

Page 34: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st
Page 35: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Automated continuous delivery pipeline

Dev Team

Version Control

Build, Test & Assemble

Automated regression test

QA Env & Smoke test

Staging Smoke Test

check in

trigger

Prod & Smoke Test

trigger

feedback

feedback

one click

one click

one click

feedback

feedback

feedback

Page 36: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

What did we learn?

• Automation, Automation, Automation

• Continuous feedback/improvement

• Takes longer to automate for Windows

• Put infrastructure configuration into version control

• Run automated smoke tests for each deployment

Page 37: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Change in value stream times

1 hr 7 hrs 1 hr

Develop Smoke

Functional

Smoke Regression

Smoke 3 3 1

Prod Staging QA

1 3 2 hrs

Dev

30 min 30 min 30 min

Page 38: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Delivery

Duration

87% faster release

11

1

Page 39: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

How you can do it

Page 40: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

How do I sell this to my stakeholders?

Emphasise business benefits

– increased delivery predictability

– shorter time-to-market

– less rework

– lower risk

– lower application total cost of operation

Show them the metrics!

Page 41: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

Where do I start?

Team: What’s the major pain point?

Automate manual processes

Measure stuff!

Use experts to accelerate adoption and reduce learning curve

Page 42: Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

We’re hiring...

@nishmahanty

[email protected]

@lawrencesong

[email protected]