← Back to all heuristics

The Best Configuration Is No Configuration

Defaults beat decisions.

AutomationArchitectureDelivery

Heuristic

Prefer convention over configuration to reduce errors.

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.

AutomationArchitecture

Heuristic

Your Deployment System Is a Product

Great deploys are built, not improvised.

AutomationDelivery

Heuristic

Test Where It Breaks, Not Where It Works

Test the breaks, not the breeze.

AutomationReliabilityDelivery

Heuristic

Work in Small Batches

Small batches make failure cheap and learning fast.

FlowAutomationDelivery

Heuristic

Use Simple Solutions Until They Hurt

Complexity should be earned.

Architecture

Heuristic

Automate What You Repeat

Repeatable work belongs to code.

AutomationFlow