My notes from the DevOps Handbook

by Gene Kim, Jez Humble, Patrick Debois, John Willis

Testing, operations and security as everyone's daily work

Everyone share the common goal: * quality * availability * security

Enable every team member to be a generalist

We don't want to create specialists only understand and contribute to one area in the value stream.

Encourage every team member to be a generalist by: * providing opportunities to learn skills * rotating engineers through roles

Generalist engineers are more expensive but business benefits of enabling faster flow are overwhelming.

Forster growth mindset:

Fund not projects but services and products

Goal is to value the achievement of organizational and customer outcomes such as revenue, customer lifetime value and customer adoption rate.

Design boundaries with Conway's Law in mind

Software architecture should enable small teams to be independently productive, decoupled from each other so they don't need to excessively communicate and coordinate.

Create loosely-coupled architectures

Tightly coupled architecture:

Loosely coupled architecture

Developers should be able to understand and update the code of a service without knowing anything about the internals of its peer services.