Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Continuous Deployment: Biography of a Feature Request

Continuous Deployment: Biography of a Feature Request

Slides from my GR DevDay talk about Continuous Deployment practices at Modustri (http://modustri.com) from the perspective of a feature.

Jace Browning

March 12, 2016
Tweet

More Decks by Jace Browning

Other Decks in Programming

Transcript

  1. BIOGRAPHY OF A FEATURE
    REQUEST
    CONTINUOUS DEPLOYMENT

    View full-size slide

  2. INTRODUCTION
    COMPANY

    View full-size slide

  3. INTRODUCTION
    TEAM
    ▸ Integrated:
    ▸ Designers
    ▸ Developers
    ▸ Testers
    ▸ Agile Methodologies
    ▸ Customer Feedback

    View full-size slide

  4. INTRODUCTION
    PRODUCT

    View full-size slide

  5. BACKGROUND
    Infrequent Releases Risk / Fear

    View full-size slide

  6. BACKGROUND
    blog.crisp.se/2013/02/05/yassalsundman/continuous-delivery-vs-continuous-deployment

    View full-size slide

  7. CHAPTERS
    PART ONE
    I. Project Management Software
    II. Development Environments
    III. Version Control
    IV. Continuous Integration
    V. Code Review
    VI. Designer + Tester Signoff

    View full-size slide

  8. CHAPTERS
    PART TWO
    VII. Development Deployment
    VIII. Feature Promotion
    IX. Staging Deployment
    X. Feature Acceptance
    XI. Release

    View full-size slide

  9. PROJECT MANAGEMENT
    SOFTWARE

    View full-size slide

  10. I. PROJECT MANAGEMENT SOFTWARE
    OVERVIEW

    View full-size slide

  11. I. PROJECT MANAGEMENT SOFTWARE
    DETAILS

    View full-size slide

  12. I. PROJECT MANAGEMENT SOFTWARE
    RESULT
    ▸ Story: Unstarted

    View full-size slide

  13. DEVELOPMENT
    ENVIRONMENTS

    View full-size slide

  14. II. DEVELOPMENT ENVIRONMENTS
    OVERVIEW
    ▸ Managed Host Machines
    ▸ Virtual Machines
    ▸ Containers

    View full-size slide

  15. II. DEVELOPMENT ENVIRONMENTS
    DETAILS
    +

    View full-size slide

  16. II. DEVELOPMENT ENVIRONMENTS
    DETAILS

    View full-size slide

  17. II. DEVELOPMENT ENVIRONMENTS
    RESULT
    ▸ Story: Started
    ▸ Code: Running

    View full-size slide

  18. VERSION
    CONTROL

    View full-size slide

  19. III. VERSION CONTROL
    OVERVIEW

    View full-size slide

  20. III. VERSION CONTROL
    DETAILS

    View full-size slide

  21. III. VERSION CONTROL
    DETAILS
    eclipse.org/community/eclipse_newsletter/2015/february/article3.php

    View full-size slide

  22. III. VERSION CONTROL
    DETAILS
    feature/edit-machine-details

    View full-size slide

  23. III. VERSION CONTROL
    RESULT
    ▸ Story: Started
    ▸ Code: Running
    ▸ Branch: Created

    View full-size slide

  24. CONTINUOUS
    INTEGRATION

    View full-size slide

  25. IV. CONTINUOUS INTEGRATION
    OVERVIEW

    View full-size slide

  26. IV. CONTINUOUS INTEGRATION
    DETAILS

    View full-size slide

  27. IV. CONTINOUS INTEGRATION
    RESULT
    ▸ Story: Started
    ▸ Code: Tested
    ▸ Branch: Created

    View full-size slide

  28. V. CODE REVIEW
    OVERVIEW

    View full-size slide

  29. V. CODE REVIEW
    DETAILS

    View full-size slide

  30. V. CODE REVIEW
    RESULT
    ▸ Story: Started
    ▸ Code: Reviewed
    ▸ Branch: Created

    View full-size slide

  31. DESIGNER +
    TESTER SIGNOFF

    View full-size slide

  32. VI. DESIGNER + TESTER SIGNOFF
    OVERVIEW

    View full-size slide

  33. VI. DESIGNER + TESTER SIGNOFF
    DETAILS

    View full-size slide

  34. VI. DESIGNER + TESTER SIGNOFF
    RESULT
    ▸ Story: Started
    ▸ Code: Reviewed
    ▸ Branch: Merged

    View full-size slide

  35. DEVELOPMENT
    DEPLOYMENT

    View full-size slide

  36. VII. DEVELOPMENT DEPLOYMENT
    OVERVIEW

    View full-size slide

  37. VII. DEVELOPMENT DEPLOYMENT
    DETAILS
    + +

    View full-size slide

  38. VII. DEVELOPMENT DEPLOYMENT
    RESULT
    ▸ Story: Started
    ▸ Code: Reviewed
    ▸ Branch: Merged
    ▸ Deployment: Dev

    View full-size slide

  39. FEATURE
    PROMOTION

    View full-size slide

  40. VIII. FEATURE PROMOTION
    OVERVIEW

    View full-size slide

  41. VIII. FEATURE PROMOTION
    DETAILS
    +

    View full-size slide

  42. VIII. FEATURE PROMOTION
    RESULT
    ▸ Story: Finished
    ▸ Code: Reviewed
    ▸ Branch: Merged
    ▸ Deployment: Dev

    View full-size slide

  43. STAGING
    DEPLOYMENT

    View full-size slide

  44. IX. STAGING DEPLOYMENT
    OVERVIEW

    View full-size slide

  45. IX. STAGING DEPLOYMENT
    DETAILS

    View full-size slide

  46. IX. STAGING DEPLOYMENT
    RESULT
    ▸ Story: Delivered
    ▸ Code: Reviewed
    ▸ Branch: Merged
    ▸ Deployment: Staging

    View full-size slide

  47. FEATURE
    ACCEPTANCE

    View full-size slide

  48. X. FEATURE ACCEPTANCE
    OVERVIEW

    View full-size slide

  49. X. FEATURE ACCEPTANCE
    DETAILS
    +

    View full-size slide

  50. X. FEATURE ACCEPTANCE
    RESULT
    ▸ Story: Accepted
    ▸ Code: Reviewed
    ▸ Branch: Merged
    ▸ Deployment: Staging

    View full-size slide

  51. XI. RELEASE
    OVERVIEW

    View full-size slide

  52. XI. RELEASE
    DETAILS
    release/v1.0

    View full-size slide

  53. XI. RELEASE
    RESULT
    ▸ Story: Accepted
    ▸ Code: Reviewed
    ▸ Branch: Merged
    ▸ Deployment: Production

    View full-size slide

  54. SUMMARY
    TRANSITIONS
    ▸ Feature Story → Code in a Branch
    ▸ Reviewed Feature → Development Environment
    ▸ Completed Features → Staging Environment
    ▸ Accepted Features → Production Environment

    View full-size slide

  55. SUMMARY
    LESSONS
    ▸ Utilize all forms of testing to build confidence
    ▸ Release often to iterate quickly
    ▸ Engage users and incorporate feedback
    ▸ Prepare for and embrace change

    View full-size slide

  56. modustri.com/careers
    @jacebrowning

    View full-size slide