My notes from the DevOps Handbook
by Gene Kim, Jez Humble, Patrick Debois, John Willis
Focus on deployment lead time
- subset of the value stream
- engineer - anyone working in the value stream
- start: check in of a change into VCS
- end: successfully running in production
- producing value to the customer
- feedback and telemetry
- first phase of work - design and development
- uncertain, variable processing time
- second phase of work - testing and ops
- goal to minimize variability - short and predictable lead time
Our goal is to have testing and operations happening simultaneously with design/development
- small batches
- less sequentiality
- quality in every part of the value stream
- for example TDD
Lead time vs Processing Time
- Lead time starts when the request is made
- Processing time starts when we begin to work
- Focus on the Lead Time -> experience of the customer
- Process Time / Lead Time ratio
Scenario: Deployment Lead Time Requiring Months
- large, complex organizations
- tightly coupled, monolithic applications
- reliance on manual testing
- heroics at every stage of the Value Stream
- days of fixing and investigation
DevOps Ideal: Deployment Lead Time of Minutes
- fast and constant feedback to developers
- quick and independent implementation, integration and validation
- deployment to production
- small code changes in VCS
- automatic tests
- modular architecture (see Uncle Bob's Clean Architecture)
- encapsulation
- loosely-coupled
%C/A as measure of rework
- percent of Complete and Accurate
- quality of the output of each step in the value stream
- percentage of work that is 'usable as is' by customers