Driving Improvements in Software Delivery Performance
Based on the book "Accelerate: The Science Behind DevOps: Building and Scaling High Performing Technology Organizations", by Nicole Forsgren, Jez Humble, and Gene Kim.
For all production artifacts, including application code, application configurations, system configurations, and scripts for automating build and configuration of the environment.
Fewer than three active branches; branches and forks having very short lifetimes (e.g. less than a day); teams rarely or never having "code lock" periods.
Software is in a deployable state throughout its lifecycle, and the team prioritize keeping the software in a deployable state over working on new features.
Teams should have a good understanding of and visibility into the flow from the business all the way through to customers, including the status of products and features.
Team experimentation is the ability of developers to try out new ideas and create and update specifications during the development process, without requiring approval from outside of the team, which allows them to innovate quickly and create value.
A lightweight change approval process based on peer review (pair programming or intrateam code review) produces superior IT performance than using external change approval boards (CABs).
Use data from application and infrastructure monitoring tools to take action and make business decisions. This goes beyond paging people when things go wrong.
The use of work-in-progress limits to manage the flow of work is well known in the Lean community. When used effectively, this drives process improvement, increases throughput, and makes constraints visible in the system.
Visual displays, such as dashboards ir internal websites, used to monitor quality and work in progress have been shown to contribute to software delivery performance.
This particular measure of job satisfaction is about doing work that is challenging and meaningful, and being empowered to exercise your skills and judgment.