Customer Vs Product which should come first?

This was the topic of a conversation I had with a bunch of frienpreneurs today. Its a chicken egg problem with no clear answer. Should you first build your product, then get customers, or its the other way around, Get your customer first then build your product.

I have always believed, until recently, that the product should come first. Build something awesome, solid, beautiful, and the customers will come. This was my perception until I first heard of the concepts called Customer Development and Lean Startups. After i started digging deeper into these topics, things made much more sense.

How many startups failed because of Technology limitations?  I have heard about a lot of startups, and seen them fail, but almost all the time Technology is not the problem. We developers know that, if something is bad you can always refactor it, you can throw the old code and re-write it. If you have solid customers, you can even afford to re-write your entire product in a different language and technology (though Dharmesh Shah tells you that you should never ever do that). So even if your product is written in Microsoft .NET technology you should not fail.  I always joke that .NET is crappy, but later i will tell you about a few entrepreneurs who changed the way I think about this.

If you are in the Tech field then you are for sure familiar with the Waterfall model and I believe that a Product first approach is a “Waterfall model”. You might be using all of the agile practices and XP tricks in the world and releasing early and often, but the truth is you can never release a product to customers, and sell it in less than 6 months.

Before releasing the product, you might be talking to a few “clients to be”, focus groups, or you can try to “guess” what the features are, however until you go  market and try to sell, you will never get the features right, you will never get the product right. Isn’t agile about having your customer constantly communicating with you  and available for your developers? this won’t work in a Product first approach.

A startup’s lifespan is short (2 years), and usually the funding is limited, if you run out of funding then its a “Game over” for you. So do you want to waste 6-8 months of your startup life and money building something that nobody wants and then spend the next 6-8 months and the rest of your funding fixing that? I do not think this is a good strategy.

This is where the idea of Customer development comes to help, as there is a Software development process, there is a customer development process where you look and iterate your business plans , the market, and the customer.

I will not go into the details about Customer development any more in this post however i will point you to some of the best resources from the Gurus of customer development and Lean startups out there.

Customer Development :
Steve Blank’s blog http://steveblank.com/category/customer-development/
Steve Blank’s amazing book “Four Steps to the Epiphany”

Lean startup : 
Eric Ries blog http://www.startuplessonslearned.com/ 
Eric Ries book “The Lean Startup: How Today’s Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses”

Ash Maurya’s blog http://www.ashmaurya.com/
Ash Murya’s book http://www.runningleanhq.com/

If you have questions,comments, if you think this blog post sucks or is awesome please let me know in the comments section.