The 5 Ideals

Ideal 1: Locality and Simplicity

  • The organizational environment must support DevOps. We can measure it with the “Lunch Factor”: how many people do we have to talk to over lunch to get things done? Reduce the lunch factor to a minimum.

    • Have fewer teams that can deploy more often independently.

    • Have an architecture that allows a fast turnaround time.

    • Developers must be empowered to work independently including that most integration tests must be run without an integrated staging environment (note: done right, contract testing might be a means to achieve that).

    • Developers should not have to understand a big codebase.

    • Developers must have the authority to deploy code to production.

    • Developers must not have to wait for other business units to get things done for them (like enterprise architecture review, database schemas, …).

Ideal 2: Focus, Flow, and Joy

  • Developers should solve the business problem and not spend most of their time on configuration and infrastructure tasks.

    • Put the infrastructure into a platform.

    • Reduce the lead time between code check-in and feedback to a minimum to connect the cause to the effect; ideally, know within seconds if a feature works or not.

    • Do trunk-based development to reduce the PR review and merge overhead.

Ideal 3: Improvement of Daily Work

  • We can only improve if we get feedback, so we should put as much feedback into our daily work as possible to get a little better each day.

    • Toyota had a cord along the assembly line that is expected to be pulled by any worker that sees a problem (the Andon Cord. If it’s pulled, they have 55 seconds to fix the problem, otherwise, the assembly line stops. The cord is pulled something like 3500 times a day (talk about feedback).

    • Big companies like Microsoft, Google, and Amazon only survived their technical debts because at some point they froze feature development.

    • The build time of Nokia’s own operating system Symbian was 48 hours before they “pulled the cord” and went with another OS (didn’t help them in the long run, though…).

    • Always take 20% off the development cycle to fix (or avoid) tech debt.

    • Enable greatness by having some engineers solely concentrate on dev productivity.

    • Have a virtual Andon Cord to fix things right when they happen.

Ideal 4: Psychological Safety

  • Only a psychologically safe environment allows for new ideas, innovation, and to learn from errors. An environment where you get bullied for each production error does not support a fast DevOps cycle, because everyone wants to be 100% certain that it works, which results in big deployments with slow processes and more things that can go wrong per deployment.

Ideal 5: Customer Focus

  • focus on the things that bring value to the customers instead of building functional silos and long internal decision chains within the organization.

Last updated