Brian Bailey Preface to the Revised Edition

FAQ-Driven Development

As I’ve worked on projects lately, I’ve noticed that once you get beyond the initial brainstorming and the whiteboard is full, it becomes difficult to think through all aspects of an app or site. The obvious solution is to start building, get it the hands of users, and iterate quickly based on feedback and metrics.

If you have the skills or the team, that is the best approach. Sometimes though, you don’t have that option. Your flexibility may be limited by working with contractors who need a more thorough development plan. Alternatively, you may want to think through the idea in more depth to explore how much potential it really has, or maybe get a better feel for its complexity.

An approach I’ve found that works well is to write the FAQ for your app or site while still early in the idea stage. It seems counterintuitive since normally the FAQ is saved for the very end of the process or better, after launch when there have actually been frequent questions.

Writing an FAQ while you’re still formulating the idea is a terrific way to see the app or site through a user’s eyes, think through how features should work, and reveal what’s missing.

Here’s a quick example. Imagine you have an idea for an app that will allow you to enter your favorite bands and then show you upcoming concerts near you by bands that are similar in music style and performance. As you think through the FAQ, you quickly see the decisions you’ll have to make. As you write the answers, you’ll often discover that the solution you’re planning is cumbersome or convoluted, or perhaps a feature that you weren’t planning on including seems more necessary when you can’t think of an adequate reason for it to not be there.

  • Can I signup without Facebook or Twitter?
  • How do I add a new band?
  • How do I remove a band?
  • Can I add more than 10 bands?
  • I added a bunch of bands, but I don’t see any matches yet?
  • Is there a way to see all concert matches, even ones that aren’t nearby?
  • How do I save a concert I want to see?
  • Can I purchase tickets in the app?
  • How do I share a concert with a friend?
  • How do I turn off notifications for new concerts?
  • Why does that app think some other band is like my favorite band in concert? They’re not even close.
  • Is it possible to connect to my Last.fm, Pandora, Spotify, or Rdio account and grab my favorite artists automatically?
  • How do I delete my account?

If you’re a developer, you know this is somewhat similar to user stories. I think the FAQ-driven approach works great earlier in the process, when you’re still formulating the idea. It’s also a gentle way to introduce the idea of user stories to people on your team who aren’t developers, but will be contributing to the project.

Starting with the FAQ before the product is fully formed also reminds me a little of test-driven development, where you write the tests that your code will need to pass before you write the code. The tests in this case are the expectations of the people who will use your app or site. The earlier you starting seeing your product through their eyes, the better.