User-Driven Development

It’s one thing to put yourself in the shoes of your potential customers and think about how to solve their pain points but it’s entirely something else to pretend that this product already exists and think about how you would market it.

This is the approach at Amazon and I think it’s quite effective. It’s something they refer to as, Working Backwards. This is the process of definition which helps clarify needed features (and their priority) before coding has even begun. I’m a big believer in hacking together working prototypes and tend to jump right in. This approach is more nuanced and helps shake off any geek-halo in the code-first approach. From Werner Vogal’s (Amazon’s CTO) post:

  1. Start by writing the Press Release [1] Nail it. The press release describes in a simple way what the product does and why it exists – what are the features and benefits. It needs to be very clear and to the point. Writing a press release up front clarifies how the world will see the product – not just how we think about it internally.
  2. Write a Frequently Asked Questions document. Here’s where we add meat to the skeleton provided by the press release. It includes questions that came up when we wrote the press release. You would include questions that other folks asked when you shared the press release and you include questions that define what the product is good for. You put yourself in the shoes of someone using the product and consider all the questions you would have.
  3. Define the customer experience. Describe in precise detail the customer experience for the different things a customer might do with the product. For products with a user interface, we would build mock ups of each screen that the customer uses. For web services, we write use cases, including code snippets, which describe ways you can imagine people using the product. The goal here is to tell stories of how a customer is solving their problems using the product.
  4. Write the User Manual. The user manual is what a customer will use to really find out about what the product is and how they will use it. The user manual typically has three sections, concepts, how-to, and reference, which between them tell the customer everything they need to know to use the product. For products with more than one kind of user, we write more than one user manual.

[1] Ian McAllister, who also works at Amazon, posts on Quora about “working backwards” (it’s via this Quora post that I found Werner’s post, thank you!). He writes in more detail about how to structure the mock-press release.

  • Heading – Name the product in a way the reader (i.e. your target customers) will understand.
  • Sub-Heading – Describe who the market for the product is and what benefit they get. One sentence only underneath the title.
  • Summary – Give a summary of the product and the benefit. Assume the reader will not read anything else so make this paragraph good.
  • Problem – Describe the problem your product solves.
  • Solution – Describe how your product elegantly solves the problem.
  • Quote from You – A quote from a spokesperson in your company.
  • How to Get Started – Describe how easy it is to get started.
  • Customer Quote – Provide a quote from a hypothetical customer that describes how they experienced the benefit.
  • Closing and Call to Action – Wrap it up and give pointers where the reader should go next.

and most importantly:

Oh, and I also like to write press-releases in what I call “Oprah-speak” for mainstream consumer products. Imagine you’re sitting on Oprah’s couch and have just explained the product to her, then you listen as she explains it to her audience. That’s “Oprah-speak”, not “Geek-speak”.

One Reply to “User-Driven Development”

Leave a comment