Principles

  1. 01

    A refactor without tests is a rewrite.

    Stands on Martin Fowler, Refactoring: Improving the Design of Existing Code (2nd ed.) (2018) · Michael Feathers, Working Effectively with Legacy Code (2004)

    Essay in progress

  2. 02

    Software moves with checklists, like a pilot.

    Stands on Atul Gawande, The Checklist Manifesto: How to Get Things Right (2009) · Asaf Degani and Earl L. Wiener, Human Factors of Flight-Deck Checklists: The Normal Checklist (NASA CR-177549) (1990)

    Essay in progress

  3. 03

    Make it work, make it right, make it fast.

    Stands on C2 wiki: Make It Work Make It Right Make It Fast (attributed to Kent Beck) · Stephen C. Johnson and Brian W. Kernighan, The C Language and Models for Systems Programming (Byte, August 1983) (1983)

    Essay in progress

  4. 04

    Evidence first, conclusion second.

    Essay in progress

  5. 05

    Every change ships on its own.

    Stands on Jez Humble and David Farley, Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (2010)

    Essay in progress

  6. 06

    Contracts first.

    Stands on Ian Robinson: Consumer-Driven Contracts: A Service Evolution Pattern (2006)

    Essay in progress

  7. 07

    If you can't run it locally, you don't own it.

    Essay in progress

  8. 08

    Separate the decision from the implementation.

    Stands on Michael Nygard: Documenting Architecture Decisions (2011)

    Essay in progress