[DEEP SUMMARY] - Shape UP - Basecamp

  • As software teams grow, everyday struggles arise like projects going on indefinitely, lack of strategic thinking from product managers, and inability to ship features like in the early days. Basecamp experienced these challenges firsthand as they grew from 4 to over 50 people.

  • Basecamp started in 2003 as an internal tool to solve lost information between clients, designers, and project managers in their consultancy. Many other companies also had this problem, so they launched it as a product in 2004.

  • 3 people built the first versionable - Jason Fried led design, David Heinemeier Hansson programmed it (and created Ruby on Rails), and Ryan Singer executed design and collaborated on the concept.

  • From the initial prototypes to launch, David only worked 10 hours per week, so they had to focus on scoping features to fit the time budget. This forced prioritization became the genesis of their "shaping" process.

  • As Basecamp grew, Ryan started expanding his skills into programming too. Working with David and Rails made programming approachable.

  • Around 2006 with around 15 people, they started struggling with the typical growing pains mentioned earlier. This led them to start developing the techniques in the book.

Here are some fundamental principles for shaping work at the right level of abstraction:

  • Avoid too much detail too early. Highly detailed wireframes or mockups over-specify the design and leave little room for creativity. They can also lead to inaccurate estimates as hidden complexities emerge.

  • But also avoid vague, abstract descriptions. Terms like "build a calendar view" are too open-ended and don't provide enough direction. The team needs some specifics to make informed trade-offs.

  • Find the sweet spot between too concrete and too abstract. Define the core elements and structure of the solution, but leave details flexible for the team to work out.

  • Focus on the user's perspective and critical interactions. Define the fundamental workflows and core pages, but leave visual specifics open.

  • Provide enough detail so the team understands the boundaries and can estimate the size and effort involved. But leave room for them to be creative and solve exciting design challenges.

  • Shape projects to match your appetite. Only over-specify what you want to spend or leave the scope too open-ended. Narrow the problem to fit the time you're willing to invest.

The goal is to give the team a clear direction and enough specifics to make trade-offs while allowing flexibility and creativity in the implementation details. Find the balance between too vague and too prescriptive.

Here are the critical points about setting boundaries when shaping a project:

  • Define the appetite - how much time and resources you will invest. Usually a small batch (1-2 weeks) or big batch (6 weeks).

  • Appetite is different than an estimate. Estimate starts with a design and produces a number. Appetite starts with a number and constrains the design.

  • Appetite is fixed time, variable scope. The scope is adjusted to fit the time budget.

  • Narrow the problem definition if needed to find a scope that fits the appetite.

  • Setting an appetite up front focuses the discussion on finding a constrained solution.

  • Boundaries help temper excitement about big ideas or reluctance about challenging requests.

  • Explicitly setting the appetite makes the conversation productive by aligning expectations about investment and scope.

Here is a summary of the key points from the chapter:

  • The "fixed time, variable scope" principle is essential for successfully defining and shipping projects. You must make trade-offs between time, quality, and scope with a deadline.

  • The default response to new ideas should be "Interesting. Maybe someday." This leaves options open without over-committing.

  • Narrow down problems by understanding the specific use case or pain point driving a request. Don't take big ideas like "calendar view" at face value.

  • Avoid unclear "grab-bag" ideas like "redesign Files section." Start with a problem like "sharing files takes too many steps."

  • Move fast when finding solution elements by avoiding too much detail and using techniques like breadboarding (abstract components and flows) and fat marker sketches.

  • The key questions are where does the feature fit, how do you access it, what are the fundamental interactions and components, and where does it go next?

  • Iterate through different approaches quickly to evaluate the pros and cons. Stay aligned on what's being discussed.

Here is a summary of the key points about finding the elements:

  • Use simple techniques like breadboarding (drawing outflows of places and actions) and fat marker sketches to shape an idea without getting bogged down in details.

  • These techniques help you quickly narrow down an idea's core elements while leaving room for creativity in later design stages.

  • The goal is to get to a list of critical components and connections that capture the essence of the idea. For example, this could be a checkbox, confirmation screen, and invoice disable option for autopay.

  • The artifacts you create at this stage may not make sense to others, and that's okay. The point is to shape the idea for yourself before bringing others in.

  • Keep the fidelity low and the scope narrow. Wait to create detailed mockups. Stay focused on the core elements to move quickly.

  • This step keeps you moving fast while making the idea more concrete. The output is a set of elements that provide boundaries and rules for the idea without over-specifying details.

Here is a summary of the key points:

  • We've developed an initial solution concept for the 4-6 week project, but it still has risks and holes that must be addressed.

  • The next step is to stress-test the concept to check for potential problems that could derail or significantly delay the project. We want to eliminate as much risk as possible before betting resources on it.

  • We should look closely at the proposed solution and question assumptions, technical feasibility, design challenges, etc. Walking through use cases slowly can reveal gaps.

  • Declare things explicitly out of scope if needed to contain the project. Cut non-essential elements if they don't contribute to the core value.

  • Consult technical experts without overcommitting to the project to validate technical assumptions and get insight into risks. Emphasize the time constraint so they help identify issues that could blow up the timeline.

  • The goal is to remove as much uncertainty and risk as possible, so the project's timeline is likely to fit the intended 6-week appetite if we move forward.

  • This is the last chance to walk away before committing resources if we uncover it's too risky or unviable. If we bet on it, the shaping should set it up to execute smoothly.

Here are some tips for writing a compelling pitch to present a product concept:

  • Lead with the problem statement - Explain the specific user need or pain point you are trying to address. Make it concrete with an example.

  • State the appetite - Be clear about the scope and timeline you have in mind. This helps set expectations.

  • Present the solution - Use sketches and fat marker drawings to communicate the concept visually. Only a minor detail would constrain designers later—label elements.

  • Call out rabbit holes - Address any specifics worth spelling out to avoid later time-wasting debates.

  • Note exclusions - Explicitly list anything out of scope that you are not addressing to manage scope creep.

  • Maintain a high level - Stay conceptual. Stay calm in detailed UI design.

  • Tell a story - Walk through a usage narrative to bring the concept to life.

  • Close with benefits - End by revisiting the original problem and emphasize how your solution nails it.

The goal is to communicate the essence of your solution while leaving room for specifics to be figured out later. Give enough visual detail for comprehension but avoid over-specifying.

Here is a summary of the key points:

  • No backlogs - Rather than maintaining long backlogs of ideas, Basecamp bets on a few well-shaped, risk-reduced pitches at the start of each 6-week cycle. Backlogs become burdensome and time-wasting.

  • Decentralized lists - Different teams can keep their lists of ideas, requests, bugs, etc., to advocate for in the future. But there is no central backlog as an input to the betting process.

  • 6-week cycles - Basecamp works in standardized 6-week cycles. This is long enough to finish meaningful work but short enough to maintain urgency and focus.

  • Cool-down weeks - After each 6-week cycle is a 2-week "cool-down" period. This provides breathing room before planning the next cycle.

  • Standardized teams - Project teams are standardized for easier scheduling. 1 designer + 2 programmers for larger efforts, or 1 designer + 1 programmer for smaller batches of work.

  • The betting table - Where stakeholders meet to review pitches and decide what gets scheduled for the next 6-week cycle. The pitches are potential "bets."

Here is a summary of the key points:

  • Small batch teams work on projects that usually run for 1-2 weeks. They have the flexibility to juggle multiple projects within a 6-week cycle.

  • The betting table is a meeting to decide what to work on in the next cycle. Attendees know the capacity, business priorities, and recent work. They shape a few good options and make decisions.

  • Betting sets different expectations than planning. Bets have a payout or meaningful outcome. They are commitments to give teams uninterrupted time. And they limit downside risk.

  • Teams get the full six weeks to complete a bet without interruptions. This maintains momentum. If additional work comes up, it has to wait for the next cycle.

  • Teams must ship work within the time allotted. If not, the project doesn't automatically get an extension. This prevents runaway projects.

  • Bugs can be fixed in cool-down periods. Or they can be pitched at the betting table. One bug fix cycle per year helps too.

  • Each new cycle starts with a clean slate. Only unfinished work carries over with being re-pitched. This maximizes options.

Here is a summary of the key points:

  • When adding features to an existing product, we shape the work, bet on it, build it, and expect to ship it by the end of the 6-week cycle.

  • With a new product, there are 3 phases:

  1. R&D mode - Senior people spike key pieces to learn what works. Don't expect to ship anything.

  2. Production mode - The core structure is settled, so we can bring in other people and start shipping merged code each cycle.

  3. Cleanup mode - Fix bugs and cut scope before launch. No firm plans; address the most critical issues.

  • Each phase has different expectations around shaping, teams, and shipping. But we still only bet one 6-week cycle at a time.

  • Examples: adding a feature to Basecamp was a standard existing product cycle. Launching HEY involved one year of R&D, one year of production, then clean-up before launch. An experimental Basecamp feature was handled more like production mode for a new product.

Here are the key points from the section:

  • Don't assign tasks; assign projects. Give teams full responsibility for executing a project within the scope defined by the pitch.

  • Let teams figure out their tasks and approach. They are closest to the work and will adjust things to fit together correctly. Pre-planning all the tasks makes you blind to reality along the way.

  • Projects should be fully deployed by the end of the cycle, respecting the time budgeted during betting. Testing and QA needs to happen within the cycle timeframe.

  • Kick off a project by creating a Basecamp project, posting the original pitch or shaping work, and discussing it as a team. The pitch sets the boundaries, but teams fill in the details.

  • "Done" means the project is fully deployed by the end of the cycle. Teams have full autonomy within the scope of the pitch to make judgment calls and adjustments needed to deploy successfully.

The key is handing responsibility to teams to execute but giving them flexibility in approach within the framing of the pitch. Don't prescribe tasks but let teams figure out how to make the vision a reality.

Here is a summary of the key points:

  • When a project starts, the team needs time to get oriented and figure out where to begin. Managers should give them space during this initial ramp-up period.

  • Teams discover the actual tasks by beginning real work, not just imagining tasks upfront. Tasks often emerge unexpectedly while working on something else.

  • Instead of completing horizontal layers in isolation, the team should integrate vertically on a tiny project piece early. This allows them to demo a tangible, clickable piece of the functionality within the first week.

  • Programmers don't need to wait for full designs before starting. The pitch provides enough direction to begin back-end work. Designers can provide basic affordances first before finalizing details.

  • Integrating a slice end-to-end early validates whether the concept works in practice. This builds confidence in the team and stakeholders.

The key is integrating deeply into one piece before broadening work across the whole project. This shows concrete progress and working software early.

Here's a summary:

The chapter discusses organizing work on a software project into "scopes" - integrated slices of front-end and back-end work that can be completed independently quickly.

Key points:

  • Organize work by structure, not by person. Create scopes of work rather than lists of tasks per role. This allows you to see the big picture of what's done vs. what's not.

  • Scopes reflect meaningful parts of the problem that can be completed in a few days or less. They are more significant than tasks but much smaller than the overall project.

  • Scopes are discovered by doing real work, seeing how tasks connect, and finding the actual structure of the project.

  • Criteria for a good scope: core to the concept, small enough to finish quickly, involves something novel/uncertain.

  • Start in the middle with a core scope to build momentum and confidence. Don't start with generic setup tasks.

  • Complete scopes one by one to make steady progress. The map evolves as you learn.

The key benefit is finishing integrated pieces of working software early and often. This builds momentum and surface area for feedback.

Here is a summary of the key points about mapping scopes for a project:

  • Scopes are slices of the overall project that can be completed independently. They reflect the fundamental interdependencies in the work.

  • Scopes arise from doing the actual work and seeing how things connect. They can't be accurately planned upfront.

  • Well-defined scopes allow you to see the whole project at a high level. Conversations flow using the scope names. New tasks have an apparent scope at home.

  • Signs of poor scopes are unclear progress, generic names like "bugs," and scopes that are too big to finish soon.

  • Different types of scopes include "layer cakes" with even front-end and back-end work, "icebergs" with more complexity on one side, and a "chowder" list for loose tasks.

  • Nice-to-have tasks can be marked with ~ to keep scopes clean for what must get done. Scopes should be revisited and refined as needed throughout the project.

Here are the critical points about showing progress in Shape Up:

  • Managers often want to see status without having to ask for it. To-do lists don't provide enough context to judge status.

  • Shape Up uses the metaphor of a hill to show progress. The uphill phase is full of uncertainty and solving problems. The downhill phase is execution with more certainty.

  • Each scope of work is plotted on the hill to show its phase - uphill or downhill. This provides a visual status report.

  • The hill makes it easy to spot when something is stuck uphill so it can be addressed. It prompts meaningful conversations without anyone having to say, "I'm stuck."

  • Comparing hill charts over time shows how the work is moving week to week.

  • If a scope stays uphill too long, it may need to be broken down into smaller scopes that can move independently.

Here are a few key points summarizing the chapter:

  • Compare the current work to the baseline to decide if it's good enough, rather than comparing it to an ideal perfect version. The goal is to make things better than they are now, not perfect.

  • Having a fixed deadline forces teams to make trade-offs and cut scope. Scope grows naturally during a project, so it's essential to question and cut scope to fit the time available repeatedly.

  • Cutting scope is not the same as lowering quality. It's about focusing on the core use cases and differentiating what's essential versus peripheral.

  • Teams should categorize new work discovered during the project as "must-haves" or "nice-to-haves." Must-haves get done; nice-to-haves can be cut if time runs out.

  • QA focuses on testing the core flows and edge cases, not trying to test every possible permutation. The goal is to ship an effective product, not a perfect one.

In summary, successful teams deliberately cut scope throughout the project to focus on shipping the highest priority work within the fixed time box. This results in a differentiated product that solves the key jobs customers hire it for.

Here are a few critical points for implementing Shape Up in Basecamp:

  • Create a "Product Strategy" team for shaping work. Use the message board for pitches and campfire for discussions.

  • Announce the bets for the next cycle in a company-wide Basecamp team like "HQ."

  • Create a separate Basecamp project for each 6-week cycle project. Add the team members and post the pitch to kick things off.

  • Break the project into scopes using To-Do lists in Basecamp. Design and programming tasks go under each scope.

  • Track scopes on the Hill Chart by clicking the menu on each To-Do list and selecting "Track on Hill Chart." This shows progress.

  • Use the check-in question feature for the team to give daily updates.

  • Archive completed projects after each cycle to keep things tidy.

The key is using Basecamp's various features like message boards, To-Dos, and Hill Charts to manage the shaping process, scopes, tasks, and progress tracking. Keeping each 6-week cycle in a separate project keeps things organized.

Here's a summary of the key points on implementing Shape Up at companies of different sizes:

Small Teams (2-3 People)

  • Don't need the rigid structure of 6-week cycles, cool-downs, formal pitches, etc.

  • Some people can fluidly alternate between shaping and building. Be deliberate about which hat you're wearing.

  • Set an appetite, shape the next thing, build it, then shape again. Bets may vary in length.

  • Still shaping, betting, and building, just more flexibility without cycles.

Big Teams (More Specialized Roles)

  • Take on the structure of 6-week cycles, cool-downs, and formal betting tables.

  • Dedicated shapers and builders.

  • Shapers work on "out of cycle" track to shape projects.

  • Cool down between cycles to address bugs/loose ends.

  • Bets placed at the betting table to fill the next 6-week cycle.

  • Specialized roles allow for uninterrupted cycles.

Ways to Begin Shaping Up:

A) One 6-week experiment with a small team. Demonstrate success, then expand.

B) Start with shaping only. Better-shaped work can influence the engineering team.

C) Start with 6-week cycles only. It gives more room to breathe before shaping.

Key Points:

  • Fix shipping capability first before improving research.

  • Focus on the result rather than micro day-to-day.

Here is a summary of the key points from Chapter 9 - How to Begin to Shape Up:

  • The Shape Up process has two main components: shaping work into concrete chunks before building and working in focused 6-week cycles.

  • To begin applying Shape Up, start with one or both components rather than trying to change everything at once.

  • Option B is to start shaping work: take raw feature requests and shape them into bounded scopes with key details before handing them off to developers. This brings more clarity and cuts down on surprises during development.

  • Option C is to start working in 6-week cycles: gather batches of work, then have developers work on them for six weeks without interruptions or multitasking. This brings focus and a sense of urgency.

  • Whichever you start with, the key is to fix the hand-off from strategy to execution first. Make sure shaped work is getting built and shipped reliably within cycles.

  • Don't worry about backlogs or estimation. Focus on shaping and building end-to-end. Backlogs and estimates will only help if the hand-off is working.

  • Changing the core workflow is more critical than timings or metrics. You're on the right track if the shaped work fits in cycles and ships.

Did you find this article valuable?

Support Matheus Nunes Puppe by becoming a sponsor. Any amount is appreciated!