Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time

Product/Engineering proposal template

Here's the proposal template that I've used at, Ravelin and Monzo.
It's useful as a general purpose template for writing proposals for product and engineering. It's been used from extremely technical engineering proposals, to broad product strategy.

What problem are you trying to solve?

  • Introduce the problem statement here. This might be well-defined ('we need to tweak the parameter of a rule from X to Y to help reduce a certain type of abuse'), or more fuzzy ('we need to invest more in paying back technical debt').
  • Focus on the underlying problem that needs to be solved, as opposed to jumping to how you will solve it.

Why should we solve it?

  • Why is this an important problem for us to solve?
  • Is it a big enough problem to solve?
  • Should we solve it now, or later?
  • Provide specific data (quantitative or qualitative) wherever possible.

How do you propose to solve it?

  • Add details of your proposed change. This can be high-level as psuedocode and sketches of the architecture, or as low-level as Protocol Buffer and interface definitions. Decide what the context of the proposal is, and write appropriately.
  • Be explicit about what you are optimising for in this proposed solution — for example, 'we need to hit this deadline, so we'll accept the tech debt this entails'.

What other approaches did you consider?

  • In general, it's a red-flag if you haven't thought of a couple of different ways that you could approach the problem.
  • What does your proposed solution give you that these approaches don't?
  • What are they optimising for that isn't appropriate in this case?

What could go wrong?

  • What risks does your proposed change entail?
  • How will you mitigate them?
  • How could this system fail, and what would be the impact if it did?

If you find it useful, let me know on Twitter!


A product/engineering proposal template that I've used at multiple companies






No releases published


No packages published