Implementing Continuous
Product Delivery
@MattRogish mattrogish.com
The Product Mentor
About Me
• Programmer (Ruby on Rails), DBA
• CTO / Dir. Product
• Consultant
• Founder
Continuous Delivery
Continuous Delivery (CD) is a design practice used in
software development to automate and improve the...
tl;dr
Any code commit may be released to customers
at any point
Why?
• Get product to customers and stakeholders
faster
• Reduce disruption caused by bugs
• Product is more valuable
• Ma...
Feature
Flags
Kanban
Agile
Continuous Delivery
The Bad Old Days
Waterfall
• Process resistant to change
• Releases take forever
• Assumes too much
Assumptions
• People Risk
• Process Risk
• Product Risk
What’s More Valuable?
• Project A will eventually cost about a million
dollars and produce value of around $1.1 million
• ...
Tom DeMarco
To my mind, the question that’s much more
important than how to control a software
project is, why on earth ar...
Agile
Agile
!
• Minimize assumptions/risk
• Iterate, iterate, iterate
• High degree of test coverage, CI, refactoring,
retrospec...
Feature
Flags
Kanban
Agile
Continuous Delivery
Agile
Continuous Delivery
Kanban
Inventory = Muda
• Feature Backlogs
• Undeployed Features
• Unfixed Bugs
Inventory = Muda
• Feature Backlogs
• Undeployed Features
• Unfixed Bugs
Kanban
• Continuous one-piece pull-based flow
• Minimize inventory/waste
• Features are released when finished
• Pulled from...
Feature
Flags
Kanban
Agile
Continuous Delivery
Agile
Continuous Delivery
Kanban
Agile
Continuous Delivery
Feature Flags
Feature Flag
• Turn features on and off in code
• Toggle for particular users, groups, or
environments
• Can turn off if s...
Feature
Flags
Kanban
Agile
Continuous Delivery
Lean
Continuous Delivery
Why?
• Get product to customers and stakeholders
faster
• Reduce disruption caused by bugs
• Product is more valuable
• Ma...
Why?
• Get product to customers and stakeholders
faster
• Reduce disruption caused by bugs
• Product is more valuable
• Ma...
Implementing Continuous
Product Delivery
@MattRogish mattrogish.com
The Product Mentor
Implementing Continuous Product Delivery
Implementing Continuous Product Delivery
Implementing Continuous Product Delivery
Implementing Continuous Product Delivery
Implementing Continuous Product Delivery
Implementing Continuous Product Delivery
Implementing Continuous Product Delivery
Implementing Continuous Product Delivery
Implementing Continuous Product Delivery
Implementing Continuous Product Delivery
Implementing Continuous Product Delivery
Implementing Continuous Product Delivery
Implementing Continuous Product Delivery
Implementing Continuous Product Delivery
Implementing Continuous Product Delivery
Implementing Continuous Product Delivery
Implementing Continuous Product Delivery
Implementing Continuous Product Delivery
Implementing Continuous Product Delivery
Upcoming SlideShare
Loading in …5
×

Implementing Continuous Product Delivery

700 views

Published on

Slides Matt Rogish recently used in his discussion w/ mentees of The Product Mentor.

The Product Mentor is a program designed to pair Product Mentors and Mentees from around the World, across all industries, from start-up to enterprise, guided by the fundamental goals…Better Decisions. Better Products. Better Product People.

Throughout the program, each mentor leads a conversation in an area of their expertise that is live streamed and available to both mentee and the broader product community.

http://TheProductMentor.com

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

  • Be the first to like this

No Downloads
Views
Total views
700
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
14
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Implementing Continuous Product Delivery

  1. 1. Implementing Continuous Product Delivery @MattRogish mattrogish.com The Product Mentor
  2. 2. About Me • Programmer (Ruby on Rails), DBA • CTO / Dir. Product • Consultant • Founder
  3. 3. Continuous Delivery Continuous Delivery (CD) is a design practice used in software development to automate and improve the process of software delivery. Techniques such as automated testing, continuous integration and continuous deployment allow software to be developed to a high standard and easily packaged and deployed to test environments, resulting in the ability to rapidly, reliably and repeatedly push out enhancements and bug fixes to customers at low risk and with minimal manual overhead. The technique was one of the assumptions of extreme programming but at an enterprise level has developed into a discipline of its own, with job descriptions for roles such as "buildmaster" calling for CD skills as mandatory.
  4. 4. tl;dr Any code commit may be released to customers at any point
  5. 5. Why? • Get product to customers and stakeholders faster • Reduce disruption caused by bugs • Product is more valuable • Makes everyone happier
  6. 6. Feature Flags Kanban Agile Continuous Delivery
  7. 7. The Bad Old Days
  8. 8. Waterfall • Process resistant to change • Releases take forever • Assumes too much
  9. 9. Assumptions • People Risk • Process Risk • Product Risk
  10. 10. What’s More Valuable? • Project A will eventually cost about a million dollars and produce value of around $1.1 million • Project B will eventually cost about a million dollars and produce value of more than $50 million
  11. 11. Tom DeMarco To my mind, the question that’s much more important than how to control a software project is, why on earth are we doing so many projects that deliver such marginal value?
  12. 12. Agile
  13. 13. Agile ! • Minimize assumptions/risk • Iterate, iterate, iterate • High degree of test coverage, CI, refactoring, retrospectives, etc. • Continuous improvement
  14. 14. Feature Flags Kanban Agile Continuous Delivery Agile Continuous Delivery
  15. 15. Kanban
  16. 16. Inventory = Muda • Feature Backlogs • Undeployed Features • Unfixed Bugs
  17. 17. Inventory = Muda • Feature Backlogs • Undeployed Features • Unfixed Bugs
  18. 18. Kanban • Continuous one-piece pull-based flow • Minimize inventory/waste • Features are released when finished • Pulled from Toyota Production System
  19. 19. Feature Flags Kanban Agile Continuous Delivery Agile Continuous Delivery Kanban Agile Continuous Delivery
  20. 20. Feature Flags
  21. 21. Feature Flag • Turn features on and off in code • Toggle for particular users, groups, or environments • Can turn off if something blows up • Give marketing control
  22. 22. Feature Flags Kanban Agile Continuous Delivery
  23. 23. Lean
  24. 24. Continuous Delivery
  25. 25. Why? • Get product to customers and stakeholders faster • Reduce disruption caused by bugs • Product is more valuable • Makes everyone happier
  26. 26. Why? • Get product to customers and stakeholders faster • Reduce disruption caused by bugs • Product is more valuable • Makes everyone happier
  27. 27. Implementing Continuous Product Delivery @MattRogish mattrogish.com The Product Mentor

×