Build Less: The Philosophy of Deliberate Omission skill

- Underdo the Competition

by wondelai·MIT license·★ 2,235 Stars on the repo·GitHub ↗

Use now

Files of Build Less: The Philosophy of Deliberate Omission

wondelai/main1 file
build-less.md
Show the full text155 lines

Build Less: The Philosophy of Deliberate Omission

Table of Contents

The Core Argument

Most software fails not because it does too little, but because it does too much. Every feature added to a product carries hidden costs: maintenance burden, cognitive load for users, increased testing surface, documentation overhead, and opportunity cost. The 37signals philosophy inverts the default: instead of asking "What should we add?", ask "What can we leave out?"

This is not minimalism for its own sake. It is a strategic choice rooted in the reality of building products with small teams and limited resources. When you build less, you can build better. When you maintain less, you can move faster. When users have fewer choices, they make decisions more confidently.

Getting Real calls this "less software." Rework calls it "underdoing the competition." Both mean the same thing: the constraint of less is not a limitation — it is the competitive advantage.

Underdo the Competition

The instinct when facing a competitor with more features is to match them. This is a trap. Feature parity is an arms race that favors incumbents with bigger teams and deeper pockets. The 37signals alternative: do less, but do it so well that the simplicity itself becomes the selling point.

How underdoing works:

  • Competitor has 50 integrations? You ship 3 that work flawlessly and require zero configuration.
  • Competitor has a full project management suite? You ship task lists with clear deadlines and nothing else.
  • Competitor has 20 report types? You ship one report that answers the question 80% of users actually have.

Underdoing is not laziness. It requires harder decisions than overdoing. You must understand which 20% of functionality delivers 80% of the value, and have the discipline to ship only that.

The psychology of underdoing: Users experience feature overload as anxiety. A product with fewer, better features feels more trustworthy than one with dozens of half-implemented ones. Simplicity signals confidence — it says "we know what matters."

When underdoing fails: Underdoing fails when you cut core functionality, not peripheral features. The key is understanding the essential job your product does. A project management tool can skip Gantt charts but cannot skip task assignment. Know the job, then strip everything that does not directly serve it.

Solve Your Own Problem

The surest way to build something valuable is to build something you need yourself. When you are your own user, you understand the problem intimately. You do not need extensive user research to know if a feature works — you use it every day. You do not need a PM to prioritize — your own frustration tells you what matters.

Why self-use matters:

  • Faster feedback loops. You notice problems immediately because you experience them.
  • Authentic understanding. You know the difference between nice-to-have and must-have because you feel it.
  • Reduced research overhead. User interviews supplement your understanding rather than being your only source.
  • Better taste. You develop strong opinions about how things should work because you live with the consequences.

Basecamp was built because 37signals needed a project management tool for their own client work. Ruby on Rails was extracted from Basecamp's codebase. HEY was built because they were frustrated with existing email clients. In each case, the product existed to solve a real problem the team experienced daily.

The limitation: Solving your own problem works best when your problem is shared by many others. It fails when your use case is too niche or idiosyncratic. The check: would at least a few thousand other people recognize this problem as their own?

Embrace Constraints

Constraints — limited time, limited budget, limited people — are typically viewed as obstacles. The 37signals philosophy treats them as creative fuel. When you cannot do everything, you must find the essential version. When you have three people instead of thirty, you cannot afford unnecessary complexity. When you have six weeks instead of six months, you must cut to what matters.

Types of constraints and their creative benefits:

Constraint What It Forces Creative Benefit
Small team (2-3 people) No specialization overhead, direct communication Every person understands the whole; decisions happen fast
Fixed time (6 weeks) Cannot build everything Must find the simplest version that delivers value
No outside funding Must be profitable early Forces focus on features users will pay for, not vanity metrics
No dedicated PM role Team owns decisions No telephone game between decision-makers and builders
Simple technology stack Cannot over-engineer Solutions are maintainable and debuggable by the whole team

The paradox of constraints: Teams with unlimited resources often ship slower and worse than teams with tight constraints. Abundance breeds indecision — when you can do anything, you debate endlessly about what to do. Scarcity breeds action — when you can only do one thing, you pick it and move.

Be a Curator

Building software requires a curator — someone who decides what stays and what goes. Like a museum curator who selects which pieces belong in an exhibit, a product curator decides which features belong in the product. The curator's most important tool is the word "no."

What curators do:

  • Say no by default. The default response to any feature request, any idea, any suggestion is no. Only the ideas that keep coming back, that solve real problems, that fit the product's opinion get through.
  • Remove, not just add. Curators periodically audit the product and remove features that no longer earn their place. If a feature is rarely used and adds maintenance cost, it goes.
  • Maintain coherence. A product with 100 well-curated features feels simple. A product with 20 random features feels complex. Coherence comes from having a clear opinion about what the product is for.
  • Resist epicycles. An epicycle is a feature added to fix a problem caused by an earlier feature. Epicycles compound complexity. When you notice an epicycle forming, remove the root cause rather than adding another layer.

The feature request trap: Users request features that solve their immediate problem without considering the systemic cost. "Just add an option for X" sounds simple but adds one more preference, one more test path, one more thing to document. The curator's job is to understand the underlying need and find a solution that serves it without adding complexity.

Half a Product, Not a Half-Assed Product

This is the most frequently quoted 37signals principle, and the most frequently misunderstood. It does not mean "ship something broken." It means: deliberately choose to build a complete, polished version of half the features rather than a half-finished version of all the features.

What "half a product" looks like:

  • Every feature that ships works correctly, is well-designed, and is properly documented
  • The product does fewer things but does each one with care and attention
  • Users can accomplish the core job without workarounds or missing pieces
  • The product feels finished, not like a beta

What "half-assed" looks like:

  • Many features exist but most are partially implemented or buggy
  • The product technically has a feature checklist but users hit walls constantly
  • Edge cases are unhandled, error states are unhelpful, and flows are inconsistent
  • The product feels unfinished despite being feature-rich on paper

The decision framework: Before adding a feature, ask: "If we add this, can we do it completely and well within our constraints?" If the answer is no, do not add it. A missing feature is invisible. A broken feature is visible and damaging.

Focus on What Won't Change

Rework makes a sharp distinction between what changes (trends, technologies, competitors' features) and what does not change (speed, simplicity, reliability, ease of use, quality). The 37signals bet: invest in what will not change, because those investments compound forever.

What does not change:

  • Users want software that is fast
  • Users want software that is simple to understand
  • Users want software that works reliably
  • Users want clear communication (no jargon, no hidden surprises)
  • Users want to accomplish their task with minimum friction

What changes constantly:

  • Technology stacks and frameworks
  • Design trends and visual styles
  • Competitor feature sets
  • Market narratives and buzzwords

Building on what does not change means your investment appreciates. Building on what changes means your investment depreciates.

The Feature Audit

Periodically audit your product to identify features that no longer earn their place. Use this decision matrix:

Feature State Usage Maintenance Cost Action
Core — defines the product High Any Keep and invest
Useful — supports the core job Moderate Low Keep
Useful — supports the core job Moderate High Simplify or rebuild
Marginal — nice-to-have Low Low Keep for now, monitor
Marginal — nice-to-have Low High Remove
Legacy — served a past need Minimal Any Remove
Epicycle — fixes problems from other features Any Any Remove root cause instead

How to run the audit:

  1. List every feature in the product
  2. Classify each by usage level and maintenance cost
  3. Identify epicycles — features that exist only because of other features
  4. Propose removals and simplifications
  5. Ship the leaner version and measure impact

Practical Application

For product managers: When prioritizing, start by asking "What can we remove?" before "What should we add?" Every removal simplifies the product for all users. Every addition complicates it for all users.

For designers: Design the simplest possible version first. Add elements only when their absence causes a real problem, not a theoretical one. If you are designing preferences, stop and ask which default would work for 80% of users.

For engineers: Resist the urge to build for hypothetical future requirements. Build what is needed now, build it well, and trust that you can extend it later if the need materializes. The best code is code you do not write.

For founders: Your competitive advantage is not features — it is focus. The company with fewer features and a clearer opinion will always out-execute the company trying to be everything to everyone.

1# Build Less: The Philosophy of Deliberate Omission
2 
3## Table of Contents
4 
5- [The Core Argument](#the-core-argument)
6- [Underdo the Competition](#underdo-the-competition)
7- [Solve Your Own Problem](#solve-your-own-problem)
8- [Embrace Constraints](#embrace-constraints)
9- [Be a Curator](#be-a-curator)
10- [Half a Product, Not a Half-Assed Product](#half-a-product-not-a-half-assed-product)
11- [Focus on What Won't Change](#focus-on-what-wont-change)
12- [The Feature Audit](#the-feature-audit)
13- [Practical Application](#practical-application)
14 
15## The Core Argument
16 
17Most software fails not because it does too little, but because it does too much. Every feature added to a product carries hidden costs: maintenance burden, cognitive load for users, increased testing surface, documentation overhead, and opportunity cost. The 37signals philosophy inverts the default: instead of asking "What should we add?", ask "What can we leave out?"
18 
19This is not minimalism for its own sake. It is a strategic choice rooted in the reality of building products with small teams and limited resources. When you build less, you can build better. When you maintain less, you can move faster. When users have fewer choices, they make decisions more confidently.
20 
21Getting Real calls this "less software." Rework calls it "underdoing the competition." Both mean the same thing: the constraint of less is not a limitation — it is the competitive advantage.
22 
23## Underdo the Competition
24 
25The instinct when facing a competitor with more features is to match them. This is a trap. Feature parity is an arms race that favors incumbents with bigger teams and deeper pockets. The 37signals alternative: do less, but do it so well that the simplicity itself becomes the selling point.
26 
27**How underdoing works:**
28 
29- Competitor has 50 integrations? You ship 3 that work flawlessly and require zero configuration.
30- Competitor has a full project management suite? You ship task lists with clear deadlines and nothing else.
31- Competitor has 20 report types? You ship one report that answers the question 80% of users actually have.
32 
33Underdoing is not laziness. It requires harder decisions than overdoing. You must understand which 20% of functionality delivers 80% of the value, and have the discipline to ship only that.
34 
35**The psychology of underdoing:** Users experience feature overload as anxiety. A product with fewer, better features feels more trustworthy than one with dozens of half-implemented ones. Simplicity signals confidence — it says "we know what matters."
36 
37**When underdoing fails:** Underdoing fails when you cut core functionality, not peripheral features. The key is understanding the essential job your product does. A project management tool can skip Gantt charts but cannot skip task assignment. Know the job, then strip everything that does not directly serve it.
38 
39## Solve Your Own Problem
40 
41The surest way to build something valuable is to build something you need yourself. When you are your own user, you understand the problem intimately. You do not need extensive user research to know if a feature works — you use it every day. You do not need a PM to prioritize — your own frustration tells you what matters.
42 
43**Why self-use matters:**
44 
45- **Faster feedback loops.** You notice problems immediately because you experience them.
46- **Authentic understanding.** You know the difference between nice-to-have and must-have because you feel it.
47- **Reduced research overhead.** User interviews supplement your understanding rather than being your only source.
48- **Better taste.** You develop strong opinions about how things should work because you live with the consequences.
49 
50Basecamp was built because 37signals needed a project management tool for their own client work. Ruby on Rails was extracted from Basecamp's codebase. HEY was built because they were frustrated with existing email clients. In each case, the product existed to solve a real problem the team experienced daily.
51 
52**The limitation:** Solving your own problem works best when your problem is shared by many others. It fails when your use case is too niche or idiosyncratic. The check: would at least a few thousand other people recognize this problem as their own?
53 
54## Embrace Constraints
55 
56Constraints — limited time, limited budget, limited people — are typically viewed as obstacles. The 37signals philosophy treats them as creative fuel. When you cannot do everything, you must find the essential version. When you have three people instead of thirty, you cannot afford unnecessary complexity. When you have six weeks instead of six months, you must cut to what matters.
57 
58**Types of constraints and their creative benefits:**
59 
60| Constraint | What It Forces | Creative Benefit |
61|-----------|----------------|-----------------|
62| Small team (2-3 people) | No specialization overhead, direct communication | Every person understands the whole; decisions happen fast |
63| Fixed time (6 weeks) | Cannot build everything | Must find the simplest version that delivers value |
64| No outside funding | Must be profitable early | Forces focus on features users will pay for, not vanity metrics |
65| No dedicated PM role | Team owns decisions | No telephone game between decision-makers and builders |
66| Simple technology stack | Cannot over-engineer | Solutions are maintainable and debuggable by the whole team |
67 
68**The paradox of constraints:** Teams with unlimited resources often ship slower and worse than teams with tight constraints. Abundance breeds indecision — when you can do anything, you debate endlessly about what to do. Scarcity breeds action — when you can only do one thing, you pick it and move.
69 
70## Be a Curator
71 
72Building software requires a curator — someone who decides what stays and what goes. Like a museum curator who selects which pieces belong in an exhibit, a product curator decides which features belong in the product. The curator's most important tool is the word "no."
73 
74**What curators do:**
75 
76- **Say no by default.** The default response to any feature request, any idea, any suggestion is no. Only the ideas that keep coming back, that solve real problems, that fit the product's opinion get through.
77- **Remove, not just add.** Curators periodically audit the product and remove features that no longer earn their place. If a feature is rarely used and adds maintenance cost, it goes.
78- **Maintain coherence.** A product with 100 well-curated features feels simple. A product with 20 random features feels complex. Coherence comes from having a clear opinion about what the product is for.
79- **Resist epicycles.** An epicycle is a feature added to fix a problem caused by an earlier feature. Epicycles compound complexity. When you notice an epicycle forming, remove the root cause rather than adding another layer.
80 
81**The feature request trap:** Users request features that solve their immediate problem without considering the systemic cost. "Just add an option for X" sounds simple but adds one more preference, one more test path, one more thing to document. The curator's job is to understand the underlying need and find a solution that serves it without adding complexity.
82 
83## Half a Product, Not a Half-Assed Product
84 
85This is the most frequently quoted 37signals principle, and the most frequently misunderstood. It does not mean "ship something broken." It means: deliberately choose to build a complete, polished version of half the features rather than a half-finished version of all the features.
86 
87**What "half a product" looks like:**
88 
89- Every feature that ships works correctly, is well-designed, and is properly documented
90- The product does fewer things but does each one with care and attention
91- Users can accomplish the core job without workarounds or missing pieces
92- The product feels finished, not like a beta
93 
94**What "half-assed" looks like:**
95 
96- Many features exist but most are partially implemented or buggy
97- The product technically has a feature checklist but users hit walls constantly
98- Edge cases are unhandled, error states are unhelpful, and flows are inconsistent
99- The product feels unfinished despite being feature-rich on paper
100 
101**The decision framework:** Before adding a feature, ask: "If we add this, can we do it completely and well within our constraints?" If the answer is no, do not add it. A missing feature is invisible. A broken feature is visible and damaging.
102 
103## Focus on What Won't Change
104 
105Rework makes a sharp distinction between what changes (trends, technologies, competitors' features) and what does not change (speed, simplicity, reliability, ease of use, quality). The 37signals bet: invest in what will not change, because those investments compound forever.
106 
107**What does not change:**
108 
109- Users want software that is fast
110- Users want software that is simple to understand
111- Users want software that works reliably
112- Users want clear communication (no jargon, no hidden surprises)
113- Users want to accomplish their task with minimum friction
114 
115**What changes constantly:**
116 
117- Technology stacks and frameworks
118- Design trends and visual styles
119- Competitor feature sets
120- Market narratives and buzzwords
121 
122Building on what does not change means your investment appreciates. Building on what changes means your investment depreciates.
123 
124## The Feature Audit
125 
126Periodically audit your product to identify features that no longer earn their place. Use this decision matrix:
127 
128| Feature State | Usage | Maintenance Cost | Action |
129|--------------|-------|-----------------|--------|
130| Core — defines the product | High | Any | Keep and invest |
131| Useful — supports the core job | Moderate | Low | Keep |
132| Useful — supports the core job | Moderate | High | Simplify or rebuild |
133| Marginal — nice-to-have | Low | Low | Keep for now, monitor |
134| Marginal — nice-to-have | Low | High | Remove |
135| Legacy — served a past need | Minimal | Any | Remove |
136| Epicycle — fixes problems from other features | Any | Any | Remove root cause instead |
137 
138**How to run the audit:**
139 
1401. List every feature in the product
1412. Classify each by usage level and maintenance cost
1423. Identify epicycles — features that exist only because of other features
1434. Propose removals and simplifications
1445. Ship the leaner version and measure impact
145 
146## Practical Application
147 
148**For product managers:** When prioritizing, start by asking "What can we remove?" before "What should we add?" Every removal simplifies the product for all users. Every addition complicates it for all users.
149 
150**For designers:** Design the simplest possible version first. Add elements only when their absence causes a real problem, not a theoretical one. If you are designing preferences, stop and ask which default would work for 80% of users.
151 
152**For engineers:** Resist the urge to build for hypothetical future requirements. Build what is needed now, build it well, and trust that you can extend it later if the need materializes. The best code is code you do not write.
153 
154**For founders:** Your competitive advantage is not features — it is focus. The company with fewer features and a clearer opinion will always out-execute the company trying to be everything to everyone.
155 

Discussion