Ryan Singer

SE Radio 389: Ryan Singer on Basecamp’s Software Development Process

Ryan Singer, head of strategy at Basecamp, discusses the “Shape Up” method of software development with host Nate Black. Scrum pushes too many strategic decisions down on development teams, without giving them enough time to do meaningful work. Instead, Basecamp uses an up-front mix of strategy and design called “shaping”. Basecamp sees backlogs as a psychological weight and a credibility problem. They replace up-front front task assignment with strategic “bets” on time-limited projects. Teams handle task discovery and “map” the solution space. Rather than completion status, they focus on knowns and unknowns — risk — using tools like scope mapping, checklists, and hill charts.

Show Notes

Related links

SE Radio theme: “Broken Reality” by Kevin MacLeod ( — Licensed under Creative Commons: By Attribution 3.0)

Join the discussion
  • This podcast is so good that despite the fact that some subject might have aged a bit – it’s not a newcast though – I started listening right from the beginning, 2007 that is.
    Many subjects and discussions are still relevant in 2019. Principles do not change very often. This podcast is like philosophical foundations of software engineering, most likely they will be true for quite a while; at least till singularity comes in.

  • I really enjoined the talk on how SW development works on Basecamp. Thanks for that!

    I agree a lot with the meaning, agile is not about omitting up front design. Some up front design to a certain extent definitely make sense, always.

    I was especially electrified from the “breadboard” approach. I guess, we, in SW engineering, can learn a lot from the “old” engineering disciplines, this is an example for.

    The main idea of the electronic breadboard beside the experimenting is the connection of initially independent components to a new aggregated, more abstract component reusable in other “breadboards”.
    We have tried to reuse this concept in real SW design, not only for experimenting. To us it seems the next logically step to solve one of the major problems in SW development: mixing domain and integration logic which induce not necessary dependencies.

    I’ve wrote an article about that ( if some one is interested details.
    It’s an engineering approach, not a project managing approach, however.

More from this show