Hook
Every config is a bug waiting to happen.
Problem
Too many configuration options create confusion and inconsistent setups. Teams spend time deciding rather than delivering.
Why it matters
Sensible defaults improve developer experience, reduce cognitive load, and make systems easier to adopt. Fewer knobs also reduce the surface area for mistakes.
Signals you are here
- Onboarding requires long setup checklists
- Different environments behave differently
- Teams diverge on configuration without realizing it
- Support requests are mostly about setup
Anti-patterns
- Exposing every internal setting as a flag
- Defaults that require users to opt in to safety
- Configuration spread across multiple places
- No validation of configuration values
Try this
- Provide strong, safe defaults
- Use convention-based configuration
- Validate configuration at startup
- Offer templates that work out of the box
- Document the few options that truly matter
Example
A platform team created a zero-config service template. New services started with secure defaults and consistent logging without extra setup.
Reflection prompt
Which configuration could become a default without harming flexibility?
More like this
Heuristic
If You Cannot Automate It, You Do Not Understand It
Automate to learn, not just to save time.
Heuristic
Your Deployment System Is a Product
Great deploys are built, not improvised.
Heuristic
Test Where It Breaks, Not Where It Works
Test the breaks, not the breeze.
Heuristic
Work in Small Batches
Small batches make failure cheap and learning fast.
Heuristic
Use Simple Solutions Until They Hurt
Complexity should be earned.
Heuristic
Automate What You Repeat
Repeatable work belongs to code.
