I gave a talk last night at the local Refresh chapter here in Raleigh. It was a great time. People asked good questions and I fielded their questions as best I could.
Here’s the gist of the talk:
With modern development tools it’s far too easy to build too much software too fast without spending adequate time developing your customer base. Successful products solve a real needs. No matter how good your idea is, you need to spend time talking to the people who will actually use (and buy) your product. But it’s not enough just to talk to them. You need to have something to talk about.
This is where rapid prototyping can really help. Rapid prototyping allows you to show something to your customers early in your development cycle so that you can begin getting the feedback that will be crucial to the success of your project.
For Web applications, there are at least five different tools that you can use to “prototype” your project and get feedback early:
We discussed the pros and cons of each approach and then talked about what makes for good customer development.
Good customer development involves four things:
You start with your idea. This is the big overarching idea for your product. I want to build a product that revolutionizes X by doing Y better than anyone else. You then make an assertion about your idea. In order to do this, I believe that we must do Z really well. You then design an experiment in order to validate your assertion. Finally you take that experiment to your customers and get their feedback on it.
The important thing here is that you are boiling your idea down into something practical. For example, when 37signals created Basecamp (a popular project management system) they felt that the entire thing would fail if they didn’t make it easy to communicate about a project (their assertion). So they set about building the messages section of Basecamp first (this was even before they had done anything with to-do lists or milestones).
Identify the heart of your application and start there. A good way of identifying the heart of your application is to ask the question: What’s the most important part of the application to get right to test our core idea?
As soon as you have something to show off (a prototype of some kind), you should begin getting feedback from potential customers. You will want to ask questions like: What do you think about how this works? Should we remove anything? How can we make this better? And of course, the big one: Would you actually pay money for this? How much?
Based on what you learn from your customers you’ll need to revisit your idea. Does anything need to change there? Does anything about our revolutionary idea need to change? After reevaluating your idea, you should make new assertions and build new experiments around those assertions. This is a cycle, from idea to customer feedback, and back again.
A couple of notes. If you show something to a potential customer and they give you negative feedback that is an extremely good thing. Experiments are successful whenever they generate feedback (good or bad). Take what you learn and integrate it into your development process. Don’t be afraid to throw stuff away. One of the primary goals of a good customer development cycle is to maximize learning. After all we are trying to build a successful product here. We want to know early on if people like what we are building and if they will actually use it.
Of course, there is a lot that could be said here to balance and expand upon the ideas presented here. It is important to stay true to your vision for the product — to stick to your guns so-to-speak. But it’s also important to validate those ideas with serious customer development.
© 2013 John W. Long