LiveAccounts:Continuous Delivery in the Real WorldNish MahantyLawrence Song
“Rapidly deliver value to our customers”                                  CTO
Good news journeyQuadrupled our feature throughputShortened our delivery times by 87%Improved team satisfactionMetricsTeam...
Just the facts Ma’am
Legacy code
Manual Build
Unpredictability
Distributed team
Real bug?
Late night deployments
Delivery Value StreamDevelop            3         Smoke        3         Smoke        1            Smoke                  ...
Dude, where’s my new feature?
What we believe in(and what we don’t)
Code quality       Before   Current
Automated functional tests                                                       173                                      ...
Unit test coverage – new code                                        93   94   94                        80         83    ...
Code branches        5                2                       1       Before   Now   Next
Deployment Duration                130                                  98      S    O    N     D   J   F    M
Cycle Time (Features and Defects)30                                            9.8      S    O     N    D    J        F   M
Duration  11                      87%                      faster release  1           Delivery
How we did it
One teamDevelop          3     Smoke      3     Smoke      1   Smoke              Functional       Regression             ...
Build a common vision
Common KPIs  Build TrustImprove Comms
Empower the team to change things
Approach• Close collaboration• Incremental• Data driven• Automation• Consensus base
Development Environment Develop              3          Smoke      3     Smoke      1       Smoke                       Fu...
Evolution, not revolutionManual                 Maven          Buildr  No CI                Hudson         Go          Per...
Code Quality• Agreed on coding standards as a team• Unit Test Code Coverage: Minimum Value 80%• Cyclomatic Complexity <= 7...
Deployment Develop              3          Smoke      3     Smoke       1       Smoke                       Functional    ...
TestingDevelop            3         Smoke      3     Smoke       1        Smoke                    Functional       Regres...
Behaviour Driven Dev’t by empowered testers
Automated continuous delivery pipeline Dev          Version         Build, Test &          Automated        QA Env &     S...
What did we learn?• Automation, Automation, Automation• Continuous feedback/improvement• Takes longer to automate for Wind...
Change in value stream timesDevelop             3       Smoke         3       Smoke         1     Smoke                   ...
Duration  11                      87%                      faster release  1           Delivery
How you can do it
How do I sell this to my stakeholders?Emphasise business benefits – increased delivery predictability – shorter time-to-ma...
Where do I start?Team: What’s the major pain point?Automate manual processesMeasure stuff!Use experts to accelerate adopti...
We’re hiring...@nishmahanty            @lawrencesongnish.mahanty@myob.com   lawrence.song@myob.com
Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st
Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st
Upcoming SlideShare
Loading in …5
×

Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

366 views

Published on

Presentation at Agile Australia 2011 http://www.agileaustralia.com.au/2011/topics-day-one.html#liveaccounts-devops

Nish Mahanty - Software Delivery Manager, MYOB
» Lawrence Song - Technical Architect, MYOB

Live Accounts is an online accounting application. It was a 10 year-old legacy system with complex architecture and no test or build scripts. The manual deployment was quite complex, involving deploying one Java application and three DotNet applications to three windows servers.

Over the past six months, MYOB has progressed incrementally from manual build and deploy processes based on Perforce, to CI and semi-automated deployments (using Perforce, Hudson, Maven,) to fully automated delivery (using Go, Git, Rake). This talk summarises that journey, and explores the technical challenges and lessons-learned.

MYOB has measured the increase in number of deployments, decrease in deployment issues, and decrease in deployment time over the six months. Developers were working closely with Ops to understand the pain points and automated the deployment process as much as possible to make their lives easier.

This talk explains the business problem and how to begin the incremental, iterative, adaptive journey to Continuous Delivery for a complex legacy system, illustrated with data and technical tips.

Attendees will discover:
» The value argument for Continuous Delivery
» Clear steps on how to integrate DevOps and progress on the automation journey
» Insights into a common set of tools, with the opportunity for a technical in-depth pros and cons discussion

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
366
On SlideShare
0
From Embeds
0
Number of Embeds
33
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st

  1. 1. LiveAccounts:Continuous Delivery in the Real WorldNish MahantyLawrence Song
  2. 2. “Rapidly deliver value to our customers” CTO
  3. 3. Good news journeyQuadrupled our feature throughputShortened our delivery times by 87%Improved team satisfactionMetricsTeam empowermentTools
  4. 4. Just the facts Ma’am
  5. 5. Legacy code
  6. 6. Manual Build
  7. 7. Unpredictability
  8. 8. Distributed team
  9. 9. Real bug?
  10. 10. Late night deployments
  11. 11. Delivery Value StreamDevelop 3 Smoke 3 Smoke 1 Smoke Functional Regression 1 3 0.3Dev QA Staging Prod Compile Assemble Package Assemble Package Assemble Package Restore DB Apply DB Changes Restore DB Apply DB Changes Deploy Package Apply DB Changes Deploy Package Deploy Package
  12. 12. Dude, where’s my new feature?
  13. 13. What we believe in(and what we don’t)
  14. 14. Code quality Before Current
  15. 15. Automated functional tests 173 160 146 # of Scenarios 132 110 79 56 21 0 S O N D J F M A M
  16. 16. Unit test coverage – new code 93 94 94 80 83 65 65 65 60 S O N D J F M A M % Coverage
  17. 17. Code branches 5 2 1 Before Now Next
  18. 18. Deployment Duration 130 98 S O N D J F M
  19. 19. Cycle Time (Features and Defects)30 9.8 S O N D J F M
  20. 20. Duration 11 87% faster release 1 Delivery
  21. 21. How we did it
  22. 22. One teamDevelop 3 Smoke 3 Smoke 1 Smoke Functional Regression 1 3 0.3Dev QA Staging Prod
  23. 23. Build a common vision
  24. 24. Common KPIs Build TrustImprove Comms
  25. 25. Empower the team to change things
  26. 26. Approach• Close collaboration• Incremental• Data driven• Automation• Consensus base
  27. 27. Development Environment Develop 3 Smoke 3 Smoke 1 Smoke Functional Regression 1 3 0.3 Dev QA Staging Prod3 days to set up environment 30 min to set upShared database Database change managementShared environment Development sandboxManual build Automated buildsNo continuous integration build
  28. 28. Evolution, not revolutionManual Maven Buildr No CI Hudson Go Perforce Git
  29. 29. Code Quality• Agreed on coding standards as a team• Unit Test Code Coverage: Minimum Value 80%• Cyclomatic Complexity <= 7• Checkstyle• JsLint• Fail a build
  30. 30. Deployment Develop 3 Smoke 3 Smoke 1 Smoke Functional Regression 1 3 0.3 Dev QA Staging Prod3 days to QA environment 30 min to each environment20 page checklist Auto configuration management1 day getting prod data to env 1 click deploymentSimilar timeframes for stg/prod 1 click restore prod dbFrustrated QAs
  31. 31. TestingDevelop 3 Smoke 3 Smoke 1 Smoke Functional Regression 1 3 0.3Dev QA Staging Prod 4 days (4 QAs) 1 day (2 QAs) Tedious regression Automated functional tests Slow feedback cycle
  32. 32. Behaviour Driven Dev’t by empowered testers
  33. 33. Automated continuous delivery pipeline Dev Version Build, Test & Automated QA Env & Staging Prod &Team Control Assemble regression test Smoke test Smoke Test Smoke Test check in trigger feedback trigger feedback one click feedback one click feedback one click feedback
  34. 34. 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
  35. 35. Change in value stream timesDevelop 3 Smoke 3 Smoke 1 Smoke Functional Regression 1 3 2 hrsDev QA Staging Prod 30 min 30 min 30 min 1 hr 7 hrs 1 hr
  36. 36. Duration 11 87% faster release 1 Delivery
  37. 37. How you can do it
  38. 38. 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 operationShow them the metrics!
  39. 39. Where do I start?Team: What’s the major pain point?Automate manual processesMeasure stuff!Use experts to accelerate adoption and reduce learning curve
  40. 40. We’re hiring...@nishmahanty @lawrencesongnish.mahanty@myob.com lawrence.song@myob.com

×