Learning · Software Engineering Manifesto
Ship small, reversible change
Prefer incremental, roll-backable delivery — expand/contract, flags, and progressive exposure over big-bang releases.
Principle
Change is safer when it is small, observable, and reversible. Distributed systems punish coordinated leaps.
Therefore we practice
- Prefer incremental PRs and releases over multi-week branches
- Use expand/contract for schema and contract changes
- Decouple deploy from release with flags when needed — and clean flags up
- Roll out progressively; define abort criteria before you start
- Always know how to revert to the previous artifact quickly
Smells
- “Big rewrite” with no rollback
- Breaking schema migrate that requires stopping the world
- Feature flags that live forever without owners
- Pushing straight to 100% traffic on Friday afternoon