Need > Program > Product > Business

Because of my job, friends and technical background, I happen to discuss quite often about software ideas, web products, mobile apps & internet startups.

Most of the time, I talk about entrepreneurship with software developers that want to start their own company, creating their own product.

I’m a software developer myself, and I know how thrilling it is to start from an idea and transform it into a business - but many talented developers seem not to be able to even start the process, even if new technologies make this very easy compared to the past.

I want to clarify the key steps I take to transform my ideas into something that could (possibly) pay the bills.

The major stages of the process are:

  Need > Program > Product > Business

Let’s analyse them one by one:

1. Need

In order to start working on an idea, I want to make sure there’s a need for what I’m going to build. “‘Scratch your own itch” doesn’t really work for me. Maybe it’s because I’m a strange guy, but very often what I find valuable is not very interesting to others and vice-versa.

I would not start coding until there’s someone telling me they have a problem or a specific need. Careful here, there must be at least one person literally telling you “I must have this!”.

For example when I started with NiftySchool.com, I had a language school begging me to build them a database to record their students. I asked them “would you really *really* pay for it?”

If the answer to this question is “yes” chances are you’ll find others with the same problem/need, and maybe there’s a market for what you’re planning to do.

If no one wants your product, why would you build it in the first place? Remember you have bills to pay, so clearly separate pure hobbies from work you want to get paid for.

What seems a very obvious concept for business people and sales guys, can go blindly unnoticed by a software developer, who usually just starts hacking code on top of the latest & coolest library/framework available - thinking that it may magically become their main source of income.

2. Program

Now that you know someone desperately needs your product, it’s time to get a prototype up and running.

This is actually the easiest step. Pretty much any developer I know can do this, and it turns out this is also the most fun part of the work.

This is when you learn new technologies, when you sketch new algorithms, or prototype new APIs or mobile apps. This is pure fun.

This step is critical, as it allows you to understand if what you’re trying to achieve can be done, but it’s also where most people stop being interested in the idea.

Somehow, once you know you can do something, you loose interest in doing it. Only god knows how many unfinished projects a software developer has in its code folder.

The problem is that a “Program” is usually not polished enough to be sold, which leads us to the next stage.

3. Product 

Here is where the hard work begins.

You have your “Program” working, now you have to turn it into a proper product:

Is the web site informative enough? Is the user interface nice and consistent across the board? Is it tested in different browsers? Are all possible exceptions handled gracefully? Have you implemented all of the wizards, shortcuts and tiny details that make the program quick and easy to use for your users?

If the answer is no, you just don’t have a product. It’s as simple as that.

This step, depending on what you’re working on, might be the biggest piece of work you have to do. And it’s tedious, dull, and time consuming.

Don’t complain, it’s not my fault. If you don’t get here it means you don’t really care about your (not-yet-existent) business.

This is where 99% of the developers I know give up to start writing their next “Program” - another exciting piece of software that will never see the light of day.

4. Business 

Wow. If you had enough stamina to get your product up and running with all of the required bells and whistles, you can probably pretend to be an established business. 

The problem is, you’re not.

Having a “Product” doesn’t mean you have a “Business”. You need a sales process, you need customer support, keep financial accounts in order, and so on. You need to make sure you earn more than you spend and that the cost of acquiring new customers doesn’t exceed your income. You need to focus on your bottom line.

For example, imagine you create a “GMail backup” online tool that allows customers to back up all of the emails they have on GMail, priced at $5/month. 

This might be a very popular product, but if you had to spend money on AdWords to drive traffic to your website, you might find that the costs of acquiring customers exceeds the total revenue per customer, making the whole business model flawed. 

In this particular example, you might find that the keyword “GMail” is very competitive in AdWords and that marketing channel might not be feasible. (Please refrain from telling me there are other ways to advertise - this is just an example)

It would be even better to assess what advertising costs might be before incurring in the cost of building the product itself (testing the Muse - as Tim Ferris put it), but with freemium services becoming the norm, it might be complex to perform a real cost assessment without something to show to your users.

In the end, you stay in business if you make money. And most of the time, it doesn’t matter if you get a loan, or someone invests in your company, or if venture capitalists fund your next round. You need to make sure that the value you produce exceeds the resources you use to produce it.

Conclusions:

While this post only scratches the surface of what needs to be done to get your business started, I think it outlines the major steps that a software developer might take to get it off the ground.

It’s quite simple: if you want to start, go out and find yourself a customer - before writing a single line of code.

If you have a customer, hack a prototype.

If you have a prototype, don’t give up. Keep pushing, keep pushing until the “Program” turns into a proper “Product”. Push until you know your market inside out, until customers recognise there’s more to it than the mere technical solution.

When you have the product, well.. ..give it your best shot. Advertise, call people, exchange banners, meet people, go to conferences, create affiliate networks. Do the best you can to spread the word and work to make sure the business can sustain itself and generate constant value for your customers.

Even if it doesn’t work out, it’s worth the ride.

My 2p. 

blog comments powered by Disqus