Product Development Process

Overview

Wunder’s product development process aims to be simple and biases heavily toward ownership by the folks closest to a project (i.e. “Driver Drives”). We cherry-pick pieces from existing approaches (namely Shape Up and Agile) and freely adapt methods to fit our needs.

Weekly Prioritization

We work on a weekly cycle wherein each person on the team directs their own prioritization. During the weekly planning meeting each engineer suggests a set of individual priorities for the week (feature work, bugs, etc.). These decisions are informed by the backlog and roadmap defined by the product team. The ultimate set of work committed to in a given week is discussed and adjusted as appropriate.

Pitches

All major engineering projects are handed off to the engineering team in the form of a Pitch. A Pitch is a document written by the product team which describes requirements and constraints of a project. At handoff, Pitches are presented to the engineering team as a mechanism for the engineering and product teams to align on open questions, scope, “rabbit holes”, and timeline expectations.

Prior to handing off to the engineering team, Pitches are written, reviewed, iterated, and committed to by the product team via a process called “Shaping” (description / internal link).

Pitches can be found in Whimsical (internal link).

Feature Teams

We assign all major projects to a Feature Team consisting of:

  • 1 product manager
  • 1 designer
  • 1 engineering lead
  • 1-3 additional engineers

A Feature Team is formed at project kickoff and disbanded once a project is complete.

Cooldown Periods

Cooldown periods are weeks in which an engineer’s focus shifts from a large project to small quick wins. Cooldown periods are prioritized and scheduled by the product team as they are needed. Typcially cooldowns are scheduled when engineers are between major projects or milestones.

Technical Scoping

After project kickoff, we move to an explicit engineering design phase called Technical Scoping. Technical Scoping reserves space for the engineering lead of a project to solidify implementation plans and collect feedback on that plan. This process can take anywhere from hours to weeks depending on the project.

For most projects, we like to see some sort of output from Technical Scoping that codifies the decisions and trade-offs made. The output can come in many forms (whatever works for you!) but here are some common examples:

Ultimately, the process of Technical Scoping is fluid depending on the project and the engineering lead’s preferences. Regardless of form, Technical Scoping ensures we have the space to find simple and effective solutions to problems and continuously improve our code.