Test-Driven Customer Development

Test-Driven Development is a software development methodology that translates the requirements into a series of tests. The developer knows that they have been successful when their software passes all of the tests. In test-driven development, the default assumption is that the software is currently failing the tests that are written. If the software passes, there is no reason to write and more code. 

A test-driven development approach can be used in your business or project’s user-development process also. Your hypothesis about what the customer needs is your first test. This test will initially fail because the user isn’t using the solution: it simply doesn’t exist yet. As you build the first step of your project, you will test again with your customer. If your product continues to fail, you must tweak it until it starts to pass. Once your first hypothesis (revised by now) passes, you’ll be ready for the next iteration. 

Test-Driven Customer Developer Example

Let’s look at an example. 

I notice a problem in this world: data entry is a tedious and repetitive task that isn’t very exciting. 

I hypothesize that there are people in the world who have data in a spreadsheet that they want to enter into their software without having to retype it. Part of the hypothesis is that there isn’t any additional value-added to data entry if a human does it.

And so I create a product called Autoform.

How can I know if this is what people want? Here are the tests that I will run:

  1. People visit a page that talks about automatic data entry. 
  2. People sign up to buy one month of the product. 
  3. People use the product weekly

Each of these tests is answered with a true/false. In the beginning, each of the tests is false (or fail.) They start as a failure because the solution doesn’t exist yet. Then I have to start doing the smallest amount of work possible to turn the failure into a pass. 

  1. First, I need to drive traffic to the page. I might do this by buying a small amount of Google ads. 
  2. Then, if people are coming to the page but not purchasing, I may need to tweak the page to help people buy more. 
  3. Lastly, if people are purchasing the app, but they aren’t using it very often, I may need to improve the app to be more user-friendly and easy-to-use. 

The Test-Driven Development process helps you to focus on the work the priority work. It doesn’t make sense to improve the app if no-one is purchasing it. It doesn’t make sense to improve the purchase sequence if you don’t have visitors on your site. 

Use a test-driven approach to focus your work on the smallest work that needs to be done. By writing down the tests that you want your next project to pass, you will find the smallest pieces of work that will have the biggest impact.