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 Slide

  2. INTRODUCTION
    COMPANY

    View Slide

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

    View Slide

  4. INTRODUCTION
    PRODUCT

    View Slide

  5. BACKGROUND
    Infrequent Releases Risk / Fear

    View Slide

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

    View 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 Slide

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

    View Slide

  9. PROJECT MANAGEMENT
    SOFTWARE

    View Slide

  10. I. PROJECT MANAGEMENT SOFTWARE
    OVERVIEW

    View Slide

  11. I. PROJECT MANAGEMENT SOFTWARE
    DETAILS

    View Slide

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

    View Slide

  13. DEVELOPMENT
    ENVIRONMENTS

    View Slide

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

    View Slide

  15. II. DEVELOPMENT ENVIRONMENTS
    DETAILS
    +

    View Slide

  16. II. DEVELOPMENT ENVIRONMENTS
    DETAILS

    View Slide

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

    View Slide

  18. VERSION
    CONTROL

    View Slide

  19. III. VERSION CONTROL
    OVERVIEW

    View Slide

  20. III. VERSION CONTROL
    DETAILS

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  24. CONTINUOUS
    INTEGRATION

    View Slide

  25. IV. CONTINUOUS INTEGRATION
    OVERVIEW

    View Slide

  26. IV. CONTINUOUS INTEGRATION
    DETAILS

    View Slide

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

    View Slide

  28. CODE REVIEW

    View Slide

  29. V. CODE REVIEW
    OVERVIEW

    View Slide

  30. V. CODE REVIEW
    DETAILS

    View Slide

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

    View Slide

  32. DESIGNER +
    TESTER SIGNOFF

    View Slide

  33. VI. DESIGNER + TESTER SIGNOFF
    OVERVIEW

    View Slide

  34. VI. DESIGNER + TESTER SIGNOFF
    DETAILS

    View Slide

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

    View Slide

  36. DEVELOPMENT
    DEPLOYMENT

    View Slide

  37. VII. DEVELOPMENT DEPLOYMENT
    OVERVIEW

    View Slide

  38. VII. DEVELOPMENT DEPLOYMENT
    DETAILS
    + +

    View Slide

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

    View Slide

  40. FEATURE
    PROMOTION

    View Slide

  41. VIII. FEATURE PROMOTION
    OVERVIEW

    View Slide

  42. VIII. FEATURE PROMOTION
    DETAILS
    +

    View Slide

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

    View Slide

  44. STAGING
    DEPLOYMENT

    View Slide

  45. IX. STAGING DEPLOYMENT
    OVERVIEW

    View Slide

  46. IX. STAGING DEPLOYMENT
    DETAILS

    View Slide

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

    View Slide

  48. FEATURE
    ACCEPTANCE

    View Slide

  49. X. FEATURE ACCEPTANCE
    OVERVIEW

    View Slide

  50. X. FEATURE ACCEPTANCE
    DETAILS
    +

    View Slide

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

    View Slide

  52. RELEASE

    View Slide

  53. XI. RELEASE
    OVERVIEW

    View Slide

  54. XI. RELEASE
    DETAILS
    release/v1.0

    View Slide

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

    View Slide

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

    View Slide

  57. 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 Slide

  58. modustri.com/careers
    @jacebrowning

    View Slide