Skip to content

Development Methods

Structured approaches to changing software where you're never more than one step from a working system. Each method follows the same principle: small steps, verify between each, ability to roll back.

Topics

  • Phased Migrations: Change stateful systems (databases, secrets, certificates) through reversible phases that maintain compatibility at every deploy. Use when a single-step change risks downtime or data corruption.
  • Refactoring: Restructure code in small verified steps — establish a verification mechanism, make one change, verify, commit or revert. Use when changing architecture, moving code, or replacing patterns.
  • Test-Driven Development: Write one failing test, implement to pass, repeat. Use when building new features or fixing bugs where tests can define done.
  • Diagnose Root Cause: Hypothesis-driven debugging — form hypotheses, add targeted logging, analyze evidence, confirm. Use when tracking down bugs without guessing at fixes.
  • Code vs Scripts vs Docs: Route each piece of information to the medium whose execution guarantees match the need — rules & behaviors in code (enforced), repeated operations in scripts (one-command invocable), rationale in docs (read). Use when deciding where something belongs, or when auditing a project for misaligned content.

See also