Small teams and execution skill

- Launch Now, Iterate Later

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

Use now

Files of Small teams and execution

wondelai/main1 file
small-teams-execution.md
Show the full text217 lines

Small Teams and Execution

Table of Contents

The Three-Person Team

The fundamental unit of work at 37signals is a team of three: one designer and two programmers, or one designer and one programmer for smaller bets. No project manager. No dedicated QA person. No scrum master. Three people who build the entire thing together.

Why three:

  • Communication overhead scales quadratically. With 3 people, there are 3 communication paths. With 6 people, there are 15. With 10, there are 45. Small teams communicate naturally — in conversations, not meetings.
  • Shared context comes automatically. Three people working on the same shaped pitch can hold the entire project in their heads. They do not need status documents to stay aligned.
  • Accountability is clear. When three people own a bet, there is nowhere to hide. Everyone contributes, everyone is responsible.
  • Decision-making is fast. Three people can make a decision in a five-minute conversation. Ten people need a meeting with an agenda and follow-up action items.

What the three-person team does not have:

Role Why It Is Absent What Replaces It
Project manager Shaped pitches eliminate ambiguity; small teams self-organize The team manages itself using hill charts
Product manager (during the cycle) Shaping happens before the cycle; the PM shapes, not manages The shaper hands off the pitch; the team builds
QA engineer Three people test as they build; scope is small enough to verify Integrated testing by the building team
Scrum master No sprints, no ceremonies, no process to facilitate No process overhead — the team just builds
Tech lead (separate from the team) The senior programmer on the team makes technical decisions Technical leadership comes from within the team

What happens when a bet needs more than three people: It does not get more people. It gets re-shaped. If a shaped pitch requires more than three people, the pitch is too big or too vague. Break it into smaller, independent bets that each fit a three-person team.

Team Autonomy

Once a team receives a shaped pitch and the cycle begins, they are autonomous. No one assigns them tasks, checks their progress daily, or tells them how to build. They own the entire bet from start to finish.

What autonomy means in practice:

  • The team decides the technical approach (which frameworks, which database schema, which architecture)
  • The team decides the design details (layout, typography, interaction patterns)
  • The team decides the build order (which scopes to tackle first, which to defer)
  • The team decides when to cut scope (within the boundaries of the pitch's no-gos)
  • The team decides when to ship (within the six-week constraint)

What autonomy does not mean:

  • Ignoring the shaped pitch — the pitch defines the boundaries; the team fills in the details
  • Skipping communication — the team posts hill chart updates and writes up decisions for transparency
  • Expanding scope — autonomy is freedom within constraints, not freedom to redefine the bet
  • Working in isolation — team members collaborate closely with each other; they just do not need external direction

Why autonomy works: When people own their work, they bring better judgment, more energy, and more creativity than when they are executing someone else's task list. Autonomy also attracts and retains talented people who want to do meaningful work, not follow instructions.

Discovering Scopes

When a team receives a shaped pitch, their first job is to discover scopes — named chunks of work that can be built and tracked somewhat independently. Scopes are not pre-defined; the team discovers them by exploring the pitch.

What a scope is:

  • A meaningful piece of the project that can move through the hill independently
  • Named with a descriptive label (e.g., "User Invitations," "Permission Checks," "Email Notifications")
  • Big enough to be meaningful (not a single task) but small enough to complete in days, not weeks
  • Defined by the team based on their understanding of the work, not by the shaper

How to discover scopes:

  1. Read the pitch thoroughly. Understand the problem, the solution, the rabbit holes, and the no-gos.
  2. Start building. Do not spend days planning — start with the most uncertain part of the project.
  3. Notice natural boundaries. As you work, pieces of the project naturally group together. A set of related database changes, a UI component, an integration point — these become scopes.
  4. Name them. Give each scope a clear, descriptive name. The name should communicate what the scope is about to someone who has not read the code.
  5. Revise as you learn. Scopes evolve during the cycle. Some merge, some split, some turn out to be unnecessary. This is normal and expected.

Scopes vs. tasks:

Scopes Tasks
Named by the team based on discovered structure Assigned by a PM or tech lead based on a spec
Group related work together Individual work items
Track on a hill chart (figuring out → done) Track in a list (to-do → done)
Evolve during the cycle Fixed at sprint planning
Communicate what area is progressing Communicate whether a checklist item is ticked

Hill Charts

Hill charts are the 37signals alternative to burndown charts, percentage-complete metrics, and status meetings. A hill chart shows each scope as a dot on a hill. The left side of the hill is "uphill" (figuring things out), and the right side is "downhill" (executing known work).

The shape of the hill:

          ·  ← summit (figured out, ready to execute)
         / \
        /   \
uphill /     \ downhill
      /       \
     /         \
____/           \____
figuring out    executing
(uncertainty)   (certainty)

How to read a hill chart:

  • Dot on the far left: The team has not started this scope yet.
  • Dot climbing uphill: The team is exploring, figuring out the approach, encountering unknowns.
  • Dot near the summit: The core approach is figured out but implementation has not started.
  • Dot going downhill: The approach is clear and the team is executing — this is the "boring" productive work.
  • Dot at the far right: The scope is done.

Why hill charts work better than other progress tracking:

Method Problem Hill Chart Advantage
Percentage complete "80% done" can mean "80% of tasks done but the hard 20% remains" Shows whether uncertainty is resolved or not
Burndown chart Treats all tasks as equal; does not distinguish exploration from execution Uphill/downhill distinction reveals where the real risk is
Status meeting "It's going well" hides problems until it is too late A dot stuck uphill for two weeks is a visible red flag
Task list Checked boxes feel like progress even if the hardest work is untouched Scopes stuck uphill force honest conversation about risk

Using hill charts to manage risk:

The most important thing a hill chart reveals is which scopes are stuck uphill. A scope that has been uphill for more than two weeks is a warning sign — the team is struggling with uncertainty. This triggers a conversation: Is the scope too big? Is there a rabbit hole that was not identified during shaping? Does the scope need to be re-shaped or cut?

How often to update hill charts: At least twice per week. Updates should take less than two minutes — just drag the dots to their current position. No written status reports needed.

Getting Real

"Getting real" is the 37signals principle of working with real materials as early as possible. In software, real materials are HTML, CSS, JavaScript, and real data — not wireframes, not prototypes, not mockups with lorem ipsum.

What "getting real" looks like:

  • Build the actual interface in the browser on day one or two, not in a design tool
  • Use real data (or realistic fake data), not "lorem ipsum" and placeholder content
  • Make it functional as fast as possible, even if it is ugly — then improve the design
  • Test with real interactions (clicking, typing, navigating), not static screenshots

Why getting real works:

  • You discover problems earlier. Wireframes and mockups hide interaction problems that become obvious when you click through real HTML.
  • You make better design decisions. Seeing real content in a real browser reveals what works and what does not in a way that static images cannot.
  • You avoid the handoff problem. When designers work in Figma and engineers implement separately, translation losses are inevitable. When the designer and programmer build together in the browser, the output is the real thing.
  • You ship faster. The prototype becomes the product. There is no throwaway work.

Getting real does not mean skipping design: It means the design happens in the medium of the final product (HTML/CSS) rather than in an intermediate medium (Figma/Sketch). The designer and programmer collaborate in the browser from day one.

Async Communication

Meetings are toxic at 37signals. Not because meetings are always bad, but because they are almost always overused. A one-hour meeting with six people is not a one-hour meeting — it is six hours of collective time. And most of that time is wasted by the majority who are listening rather than contributing.

The async-first approach:

  • Write it up. If you have something to share, write a message, a document, or a post. People can read it on their own schedule and respond thoughtfully.
  • Record a Loom. If you need to show something visual, record a 5-minute video walkthrough. It is faster to make than a meeting is to schedule, and everyone can watch at 2x speed.
  • Use hill chart updates. The hill chart replaces the daily standup. Anyone can see where the project stands by looking at the chart.
  • Reserve meetings for conversations. Meetings are appropriate when you need real-time back-and-forth to resolve a disagreement or brainstorm. They are not appropriate for status updates, announcements, or information sharing.

The 37signals communication hierarchy:

Need Method Why
Status update Hill chart + async post No meeting needed; people check on their own time
Decision announcement Written post Documentation is built-in; everyone gets the same information
Design feedback Loom video + written comments Async review is more thoughtful than real-time critique
Complex problem-solving Real-time conversation (2-3 people) Keep it small, keep it focused, keep it short
Team alignment Written pitch or kickoff post The shaped pitch IS the alignment document

Launch Now, Iterate Later

The 37signals philosophy strongly favors shipping over perfecting. Working software in the hands of real users generates more useful feedback in one day than months of internal review.

What "launch now" means:

  • Ship at the end of the six-week cycle, even if some nice-to-have scopes were cut
  • Ship to real users, not to a staging environment for internal review
  • Accept that the first version will not be perfect — it should be good, but not perfect
  • Plan to iterate in future cycles based on real usage data, not hypothetical feedback

What "launch now" does not mean:

  • Ship broken software — everything that ships should work correctly
  • Skip testing — the building team tests as they build
  • Ignore quality — the shipped version should be polished within its reduced scope
  • Never improve — iteration is expected; "launch now" is the beginning, not the end

The iteration cycle:

  1. Ship the first version (end of six-week cycle)
  2. Observe real usage during the cool-down period
  3. If improvements are needed, shape a follow-up pitch
  4. Bring the follow-up pitch to the next betting table
  5. If it wins the bet, build the improvement in the next cycle

Integrating Design and Programming

Traditional product development separates design and engineering into sequential phases: design first, then build. The 37signals approach integrates them from day one. The designer and programmer(s) work together on the same scopes simultaneously.

How integration works in practice:

  • Day 1-2: The designer starts building real HTML/CSS for the core interaction. The programmer sets up the data model and backend. They sync frequently.
  • Day 3-5: The designer refines the interface while the programmer connects it to real data. They work on the same scope, in the same codebase.
  • Week 2+: Design and engineering decisions are made together, in context. "Should this be a modal or a page?" is answered by building both and seeing which one works.

Why integration matters:

  • No handoff problems — the designer sees the real implementation, not a screenshot
  • Faster decision-making — questions are resolved in minutes, not in a review meeting next week
  • Better solutions — the designer understands technical constraints; the programmer understands design intent
  • Single source of truth — the codebase is the design, not a Figma file that may be out of date

What this requires from the team:

  • Designers must be comfortable working with HTML/CSS or closely pairing with a programmer
  • Programmers must care about the user experience, not just the code
  • Both must be willing to change their work based on what they learn together
1# Small Teams and Execution
2 
3## Table of Contents
4 
5- [The Three-Person Team](#the-three-person-team)
6- [Team Autonomy](#team-autonomy)
7- [Discovering Scopes](#discovering-scopes)
8- [Hill Charts](#hill-charts)
9- [Getting Real](#getting-real)
10- [Async Communication](#async-communication)
11- [Launch Now, Iterate Later](#launch-now-iterate-later)
12- [Integrating Design and Programming](#integrating-design-and-programming)
13 
14## The Three-Person Team
15 
16The fundamental unit of work at 37signals is a team of three: one designer and two programmers, or one designer and one programmer for smaller bets. No project manager. No dedicated QA person. No scrum master. Three people who build the entire thing together.
17 
18**Why three:**
19 
20- **Communication overhead scales quadratically.** With 3 people, there are 3 communication paths. With 6 people, there are 15. With 10, there are 45. Small teams communicate naturally — in conversations, not meetings.
21- **Shared context comes automatically.** Three people working on the same shaped pitch can hold the entire project in their heads. They do not need status documents to stay aligned.
22- **Accountability is clear.** When three people own a bet, there is nowhere to hide. Everyone contributes, everyone is responsible.
23- **Decision-making is fast.** Three people can make a decision in a five-minute conversation. Ten people need a meeting with an agenda and follow-up action items.
24 
25**What the three-person team does not have:**
26 
27| Role | Why It Is Absent | What Replaces It |
28|------|-----------------|-----------------|
29| Project manager | Shaped pitches eliminate ambiguity; small teams self-organize | The team manages itself using hill charts |
30| Product manager (during the cycle) | Shaping happens before the cycle; the PM shapes, not manages | The shaper hands off the pitch; the team builds |
31| QA engineer | Three people test as they build; scope is small enough to verify | Integrated testing by the building team |
32| Scrum master | No sprints, no ceremonies, no process to facilitate | No process overhead — the team just builds |
33| Tech lead (separate from the team) | The senior programmer on the team makes technical decisions | Technical leadership comes from within the team |
34 
35**What happens when a bet needs more than three people:** It does not get more people. It gets re-shaped. If a shaped pitch requires more than three people, the pitch is too big or too vague. Break it into smaller, independent bets that each fit a three-person team.
36 
37## Team Autonomy
38 
39Once a team receives a shaped pitch and the cycle begins, they are autonomous. No one assigns them tasks, checks their progress daily, or tells them how to build. They own the entire bet from start to finish.
40 
41**What autonomy means in practice:**
42 
43- The team decides the technical approach (which frameworks, which database schema, which architecture)
44- The team decides the design details (layout, typography, interaction patterns)
45- The team decides the build order (which scopes to tackle first, which to defer)
46- The team decides when to cut scope (within the boundaries of the pitch's no-gos)
47- The team decides when to ship (within the six-week constraint)
48 
49**What autonomy does not mean:**
50 
51- Ignoring the shaped pitch — the pitch defines the boundaries; the team fills in the details
52- Skipping communication — the team posts hill chart updates and writes up decisions for transparency
53- Expanding scope — autonomy is freedom within constraints, not freedom to redefine the bet
54- Working in isolation — team members collaborate closely with each other; they just do not need external direction
55 
56**Why autonomy works:** When people own their work, they bring better judgment, more energy, and more creativity than when they are executing someone else's task list. Autonomy also attracts and retains talented people who want to do meaningful work, not follow instructions.
57 
58## Discovering Scopes
59 
60When a team receives a shaped pitch, their first job is to discover scopes — named chunks of work that can be built and tracked somewhat independently. Scopes are not pre-defined; the team discovers them by exploring the pitch.
61 
62**What a scope is:**
63 
64- A meaningful piece of the project that can move through the hill independently
65- Named with a descriptive label (e.g., "User Invitations," "Permission Checks," "Email Notifications")
66- Big enough to be meaningful (not a single task) but small enough to complete in days, not weeks
67- Defined by the team based on their understanding of the work, not by the shaper
68 
69**How to discover scopes:**
70 
711. **Read the pitch thoroughly.** Understand the problem, the solution, the rabbit holes, and the no-gos.
722. **Start building.** Do not spend days planning — start with the most uncertain part of the project.
733. **Notice natural boundaries.** As you work, pieces of the project naturally group together. A set of related database changes, a UI component, an integration point — these become scopes.
744. **Name them.** Give each scope a clear, descriptive name. The name should communicate what the scope is about to someone who has not read the code.
755. **Revise as you learn.** Scopes evolve during the cycle. Some merge, some split, some turn out to be unnecessary. This is normal and expected.
76 
77**Scopes vs. tasks:**
78 
79| Scopes | Tasks |
80|--------|-------|
81| Named by the team based on discovered structure | Assigned by a PM or tech lead based on a spec |
82| Group related work together | Individual work items |
83| Track on a hill chart (figuring out → done) | Track in a list (to-do → done) |
84| Evolve during the cycle | Fixed at sprint planning |
85| Communicate what area is progressing | Communicate whether a checklist item is ticked |
86 
87## Hill Charts
88 
89Hill charts are the 37signals alternative to burndown charts, percentage-complete metrics, and status meetings. A hill chart shows each scope as a dot on a hill. The left side of the hill is "uphill" (figuring things out), and the right side is "downhill" (executing known work).
90 
91**The shape of the hill:**
92 
93```
94 · ← summit (figured out, ready to execute)
95 / \
96 / \
97uphill / \ downhill
98 / \
99 / \
100____/ \____
101figuring out executing
102(uncertainty) (certainty)
103```
104 
105**How to read a hill chart:**
106 
107- **Dot on the far left:** The team has not started this scope yet.
108- **Dot climbing uphill:** The team is exploring, figuring out the approach, encountering unknowns.
109- **Dot near the summit:** The core approach is figured out but implementation has not started.
110- **Dot going downhill:** The approach is clear and the team is executing — this is the "boring" productive work.
111- **Dot at the far right:** The scope is done.
112 
113**Why hill charts work better than other progress tracking:**
114 
115| Method | Problem | Hill Chart Advantage |
116|--------|---------|---------------------|
117| Percentage complete | "80% done" can mean "80% of tasks done but the hard 20% remains" | Shows whether uncertainty is resolved or not |
118| Burndown chart | Treats all tasks as equal; does not distinguish exploration from execution | Uphill/downhill distinction reveals where the real risk is |
119| Status meeting | "It's going well" hides problems until it is too late | A dot stuck uphill for two weeks is a visible red flag |
120| Task list | Checked boxes feel like progress even if the hardest work is untouched | Scopes stuck uphill force honest conversation about risk |
121 
122**Using hill charts to manage risk:**
123 
124The most important thing a hill chart reveals is which scopes are stuck uphill. A scope that has been uphill for more than two weeks is a warning sign — the team is struggling with uncertainty. This triggers a conversation: Is the scope too big? Is there a rabbit hole that was not identified during shaping? Does the scope need to be re-shaped or cut?
125 
126**How often to update hill charts:** At least twice per week. Updates should take less than two minutes — just drag the dots to their current position. No written status reports needed.
127 
128## Getting Real
129 
130"Getting real" is the 37signals principle of working with real materials as early as possible. In software, real materials are HTML, CSS, JavaScript, and real data — not wireframes, not prototypes, not mockups with lorem ipsum.
131 
132**What "getting real" looks like:**
133 
134- Build the actual interface in the browser on day one or two, not in a design tool
135- Use real data (or realistic fake data), not "lorem ipsum" and placeholder content
136- Make it functional as fast as possible, even if it is ugly — then improve the design
137- Test with real interactions (clicking, typing, navigating), not static screenshots
138 
139**Why getting real works:**
140 
141- **You discover problems earlier.** Wireframes and mockups hide interaction problems that become obvious when you click through real HTML.
142- **You make better design decisions.** Seeing real content in a real browser reveals what works and what does not in a way that static images cannot.
143- **You avoid the handoff problem.** When designers work in Figma and engineers implement separately, translation losses are inevitable. When the designer and programmer build together in the browser, the output is the real thing.
144- **You ship faster.** The prototype becomes the product. There is no throwaway work.
145 
146**Getting real does not mean skipping design:** It means the design happens in the medium of the final product (HTML/CSS) rather than in an intermediate medium (Figma/Sketch). The designer and programmer collaborate in the browser from day one.
147 
148## Async Communication
149 
150Meetings are toxic at 37signals. Not because meetings are always bad, but because they are almost always overused. A one-hour meeting with six people is not a one-hour meeting — it is six hours of collective time. And most of that time is wasted by the majority who are listening rather than contributing.
151 
152**The async-first approach:**
153 
154- **Write it up.** If you have something to share, write a message, a document, or a post. People can read it on their own schedule and respond thoughtfully.
155- **Record a Loom.** If you need to show something visual, record a 5-minute video walkthrough. It is faster to make than a meeting is to schedule, and everyone can watch at 2x speed.
156- **Use hill chart updates.** The hill chart replaces the daily standup. Anyone can see where the project stands by looking at the chart.
157- **Reserve meetings for conversations.** Meetings are appropriate when you need real-time back-and-forth to resolve a disagreement or brainstorm. They are not appropriate for status updates, announcements, or information sharing.
158 
159**The 37signals communication hierarchy:**
160 
161| Need | Method | Why |
162|------|--------|-----|
163| Status update | Hill chart + async post | No meeting needed; people check on their own time |
164| Decision announcement | Written post | Documentation is built-in; everyone gets the same information |
165| Design feedback | Loom video + written comments | Async review is more thoughtful than real-time critique |
166| Complex problem-solving | Real-time conversation (2-3 people) | Keep it small, keep it focused, keep it short |
167| Team alignment | Written pitch or kickoff post | The shaped pitch IS the alignment document |
168 
169## Launch Now, Iterate Later
170 
171The 37signals philosophy strongly favors shipping over perfecting. Working software in the hands of real users generates more useful feedback in one day than months of internal review.
172 
173**What "launch now" means:**
174 
175- Ship at the end of the six-week cycle, even if some nice-to-have scopes were cut
176- Ship to real users, not to a staging environment for internal review
177- Accept that the first version will not be perfect — it should be good, but not perfect
178- Plan to iterate in future cycles based on real usage data, not hypothetical feedback
179 
180**What "launch now" does not mean:**
181 
182- Ship broken software — everything that ships should work correctly
183- Skip testing — the building team tests as they build
184- Ignore quality — the shipped version should be polished within its reduced scope
185- Never improve — iteration is expected; "launch now" is the beginning, not the end
186 
187**The iteration cycle:**
188 
1891. Ship the first version (end of six-week cycle)
1902. Observe real usage during the cool-down period
1913. If improvements are needed, shape a follow-up pitch
1924. Bring the follow-up pitch to the next betting table
1935. If it wins the bet, build the improvement in the next cycle
194 
195## Integrating Design and Programming
196 
197Traditional product development separates design and engineering into sequential phases: design first, then build. The 37signals approach integrates them from day one. The designer and programmer(s) work together on the same scopes simultaneously.
198 
199**How integration works in practice:**
200 
201- **Day 1-2:** The designer starts building real HTML/CSS for the core interaction. The programmer sets up the data model and backend. They sync frequently.
202- **Day 3-5:** The designer refines the interface while the programmer connects it to real data. They work on the same scope, in the same codebase.
203- **Week 2+:** Design and engineering decisions are made together, in context. "Should this be a modal or a page?" is answered by building both and seeing which one works.
204 
205**Why integration matters:**
206 
207- No handoff problems — the designer sees the real implementation, not a screenshot
208- Faster decision-making — questions are resolved in minutes, not in a review meeting next week
209- Better solutions — the designer understands technical constraints; the programmer understands design intent
210- Single source of truth — the codebase is the design, not a Figma file that may be out of date
211 
212**What this requires from the team:**
213 
214- Designers must be comfortable working with HTML/CSS or closely pairing with a programmer
215- Programmers must care about the user experience, not just the code
216- Both must be willing to change their work based on what they learn together
217 

Discussion