Step 1: Throw out your idea

How to figure out what your customer really wants

Dave Michelson
UNC Asheville’s NEMAC blog
5 min readMar 6, 2019

--

I love this quote.

Like Lerdorf, I started programming to solve people’s problems. Also like Lerdorf, I don‘t enjoy programming at all. I found that while the programs I wrote helped me, they didn’t really seem to address other people’s problems—leaving me with an issue that a lot of us share: What does my customer really want?

I was using what I think is a very common process:

  1. I would come up with an idea.
  2. I would write a bunch of code to bring the idea to life.
  3. I would do a little “beta” testing.
  4. I would “release” it into the world as a website.

People seemed excited about using these websites. I would watch the analytics…but the number of visitors never matched my expectations. Then I would start getting feedback, and a lot of people complained about using my websites. They said that the websites were hard to use. I had no tools to discover why. I definitely didn’t want to throw away any of my work. The obvious solution was to “tweak” the website to address the feedback. But this changed very little—the analytics and feedback remained unchanged.

This is a relatively common experience. In fact, volumes have been published to address the problems that arise from this experience. This relatively common experience results in an emotional attachment to whatever we build—which starts the spiral of death.

This is why the first step to understanding what your customer really wants is to throw your idea out.

To be completely honest, I had no idea who my customer was. Even worse, I usually thought my customer was “everyone” or even “the general public.”

Sorry to tell you this, but your customer is NOT “everyone” or “the general public.”

This was my biggest mistake. Looking back, I wish someone had asked me: “Hey Dave, who is your customer?”

Not knowing the answer to this very basic question makes it impossible to understand the actual tasks that your customer is trying to accomplish. These tasks are the reason why your customer would come—and return—to your website.

Your website needs to let your customer complete a task better than they could before they used it…or, better yet, complete a task that they couldn’t complete before they used it. Maybe, if you’re completely awesome, your website will eliminate the need for your customer to do the task at all.

I hadn’t learned that lesson yet. Luckily for me, right as I was ready to give up and leave technology behind, I was introduced to human-centered design via usability studies.

Usability studies revealed a lot about the customer I was trying to reach. I began to understand that my customer had tasks. Most importantly, my customer had tasks that were different than mine. I could clearly see what tripped them up, what made it hard for them to complete their tasks.

I remember the “aha!” moment clearly: it came during the fifth or sixth round of usability studies. My customer stopped in the middle of the study, looked at me, and said:

“This is awesome! It’s intuitive! It’s like Google.”

Usability is one of many ways available to validate what we programmers think our customer wants. I would argue that usability is the best way to validate your idea.

To offer some proof of this, after we released that website I had a second surprise: the analytics were completely different.

The analytics for the first month resembled the entire year of analytics for anything else I had ever done, combined! I could see users sharing and talking about the website on Facebook and Twitter! People were excited to use what I built! They said it was easy to use!

Nothing like this had ever happened before.

I was finally helping people solve problems and, to my relief, I didn’t have to write any code — because I had someone else to do it. The only thing I needed to do was talk to my customer.

So here are my new steps to solving problems for customers:

  1. Throw out your idea.
  2. Define the customer, then talk to them.
  3. Have the customer tell you about the tasks they’re trying to do.
  4. Have the customer tell you what gets in the way of doing their tasks.
  5. Have the customer tell you what benefits they get from doing the task.
  6. Create an idea based on Steps 3, 4, and 5.
  7. Make the idea real—a/k/a “build it.”
  8. Test whether the customer can really do the task with the thing you built—a/k/a “usability study.”
  9. Address anything found in the usability study that limits the customer in doing their task.
  10. Repeat Steps 8 and 9 until there are no issues. (By the way, this is never.)

Armed with this process, we can connect the solution to real-life customers with real tasks. We avoid having a solution that’s looking for a problem. Instead, we solve problems for real people in a complex and changing world.

--

--