Essay · 10 min read

Painless Functional Specifications, Part 2: What's a Spec?

Joel Spolsky · Joel on Software Free Intermediate

This is the clearest statement of the exact idea in our answer: a spec describes how the product works entirely from the user's point of view, and says nothing about how it is built. Spolsky, who shipped Excel and later founded Trello and Stack Overflow, spells out that your job is screens, flows, and what happens when the user clicks, not databases or architecture. Read it and you will stop apologizing for not knowing the stack.

  • A spec talks about features, screens, and user actions, never implementation
  • Nailing the user experience comes first, the how comes later
  • Writing it forces the hard decisions out of your head before code starts

The question it answers

  1. How do I write a spec for a developer when I'm not technical?

Read with it

  1. Basecamp's battle-tested, opinionated system for shipping meaningful work in fixed cycles without endless backlogs, a primary... Basecamp / 37signals Book · free online book Shape Up: Stop Running in Circles and Ship Work that Matters Ryan Singer
  2. Michael Seibel, who ran YC, makes the blunt case for shipping something almost embarrassingly simple and learning from real... Y Combinator Startup Library Video · ~10 min video How to Build an MVP Michael Seibel
  3. Figma's free plan is genuinely enough to design, tweak, and export a full logo set (SVG for print, PNG for the web) without... Figma Tool · Ongoing tool Figma (free plan) Figma
  4. The creator of Shape Up talks through fixing the time and cutting the scope, which is exactly the discipline that keeps an MVP... Lenny's Podcast Podcast · 90 min A Better Way to Plan, Build, and Ship Products (Shape Up) Ryan Singer
  5. Part 2 tells you what a spec is, this one covers who writes it and how they build agreement without authority, walking through... Joel on Software Essay · 12 min read Painless Functional Specifications, Part 3: But... How? Joel Spolsky
  6. The healthy counterweight to over documenting. 37signals argues that a thick spec creates false agreement (everyone reads the... Getting Real (37signals) Essay · 6 min read There's Nothing Functional about a Functional Spec 37signals
eChai Partner Brands The partnership →