131: Ryan Singer - How Basecamp Builds Software

Published on Jan 1, 2020

In this episode, Adam talks to Ryan Singer of Basecamp about how they plan, structure, and execute on new features.

Topics include:

  • Why "fixed time, variable scope" is so important for actually getting things done
  • Integrating development and design into a single process instead of design first, develop later
  • What it means to "shape" work before deciding to work on it
  • What it means to "bet" on a project, and why Basecamp would rather trash a project than extend the deadline by an extra week
  • Taking deadlines seriously, and how it empowers teams to make their own decisions about scope to avoid having to trash the project
  • An example of a project at Basecamp that failed to ship, and working through what they did wrong that led to that outcome
  • De-risking projects by getting input from technical experts on the team before committing to actually doing the work
  • What exactly is the deliverable a design/development team receives from leadership at the start of a project that they are expected to be able to succeed with?
  • The difference between macro planning and micro planning on a project
  • How Basecamp avoids iterating on solutions within a cycle without turning projects into fixed time, fixed scope
  • Why designers at Basecamp start by actually building the very rough "Times New Roman" version of a UI with HTML and CSS before spending time on high fidelity visual design decisions
  • Applying "Shape Up" on client projects


  • Tuple, try the best pair programming app out there for free for two weeks