Accelerate: 24 Key Capabilities

Posted

Forsgren et. al. have been gathering information on how different practices (or capabilities) correlate with team performance. After a multiyear study they identified 24 key capabilities that software teams and organisations should be looking to adopt in order to drive improvements in software delivery:

Continuous delivery

  • Use version control for all production artifacts
  • Automate your deployment processes
  • Implement continuous integration (CI)
  • Use trunk-based development processes
  • Implement test-automation
  • Support test data management
  • Shift left on security (integrating security into the design and test phase of the software development process)
  • Implement continuous delivery (CD).

Architecture

  • Use a loosely coupled architecture
  • Architect [the application] for empowered teams.

Product and process

  • Gather and implement customer feedback
  • Make the work visible through value streams
  • Work in small batches
  • Forster and enable team experimentation.

Lean management and monitoring

  • Have a lightweight change approval process
  • Monitor across application and infrastructure to inform business decisions
  • Check system health proactively
  • Improve processes and manage work with work-in-progress (WIP) limits
  • Visualize work to monitor quality and communicate throughout the team

Cultural

  • Support a generative culture (as outlined by Westrum)
  • Encourage and support learning
  • Support and facilitate collaboration among teams
  • Provide resources and tools that make work meaningful
  • Support or embody transformational leadership.

Source: Accelerate, appendix A, pages 201–207.

We think we meet 21/24. How does your software organisation do?