Files of Small teams and execution
wondelai/
Show the full text217 lines
Small Teams and Execution
Table of Contents
- The Three-Person Team
- Team Autonomy
- Discovering Scopes
- Hill Charts
- Getting Real
- Async Communication
- Launch Now, Iterate Later
- Integrating Design and Programming
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:
- Read the pitch thoroughly. Understand the problem, the solution, the rabbit holes, and the no-gos.
- Start building. Do not spend days planning — start with the most uncertain part of the project.
- 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.
- 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.
- 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:
- Ship the first version (end of six-week cycle)
- Observe real usage during the cool-down period
- If improvements are needed, shape a follow-up pitch
- Bring the follow-up pitch to the next betting table
- 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] |
| 6 | [Team Autonomy] |
| 7 | [Discovering Scopes] |
| 8 | [Hill Charts] |
| 9 | [Getting Real] |
| 10 | [Async Communication] |
| 11 | [Launch Now, Iterate Later] |
| 12 | [Integrating Design and Programming] |
| 13 | |
| 14 | ## The Three-Person Team |
| 15 | |
| 16 | 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. |
| 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 | |
| 39 | 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. |
| 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 | |
| 60 | 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. |
| 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 | |
| 71 | **Read the pitch thoroughly.** Understand the problem, the solution, the rabbit holes, and the no-gos. |
| 72 | **Start building.** Do not spend days planning — start with the most uncertain part of the project. |
| 73 | **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. |
| 74 | **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. |
| 75 | **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 | |
| 89 | 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). |
| 90 | |
| 91 | **The shape of the hill:** |
| 92 | |
| 93 | |
| 94 | · ← summit (figured out, ready to execute) |
| 95 | / \ |
| 96 | / \ |
| 97 | uphill / \ downhill |
| 98 | / \ |
| 99 | / \ |
| 100 | ____/ \____ |
| 101 | figuring 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 | |
| 124 | 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? |
| 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 | |
| 150 | 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. |
| 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 | |
| 171 | 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. |
| 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 | |
| 189 | Ship the first version (end of six-week cycle) |
| 190 | Observe real usage during the cool-down period |
| 191 | If improvements are needed, shape a follow-up pitch |
| 192 | Bring the follow-up pitch to the next betting table |
| 193 | If it wins the bet, build the improvement in the next cycle |
| 194 | |
| 195 | ## Integrating Design and Programming |
| 196 | |
| 197 | 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. |
| 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
Browse more free Claude skills.