Tuesday, October 22, 2019

Accelerate Chapter 7 Discussion Points

Moving on to chapter 7 of Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations we'll discuss management practices:
  • Lean management practices
    • Components of Lean management and its application to software delivery:
      • Limit work in progress (WIP)
        • Use these limits to drive process improvement and increase throughput
        • WIP limits alone don't strongly predict delivery performance, but  rather only when combined with visual displays and a feedback loop from production monitoring tools back to delivery teams
        • WIP limits should lead to:
          • Making obstacles to higher flow visible
          • Removal of these obstacles through process improvement
          • Leading to improved throughput
        • WIP limits are no good if they don't lead to improvements that increase flow
      • Visual management
        • Create and maintain visual displays showing key quality and productivity metrics and current status of work
        • Make these visual displays available to engineers and leaders
        • Align metrics with operational goals
        • Visibility should enable high-quality communication
      • Feedback from production
        • Use data from application performance and infrastructure monitoring tools to make business decisions on a daily basis
      • Lightweight change approvals
        • Further discussed later
    • This ensures that teams don't become overburdened, and exposes obstacles to flow
    • The combination of these practices increase delivery performance, have a positive impact on team culture and performance, and decrease burnout
  • Implement a lightweight change management process
    • Requiring external approval lead to lower performance and failed to increase stability
    • Recommendation is to have a lightweight change approval process based on peer review, such as pair programming or intrateam code review, combined with a pipeline to detect and reject bad changes
    • Risk management teams should be monitoring delivery performance and helping teams improve it by implementing practices that are know to increase stability, quality, and speed