Software products. I’ve been contemplating the issue of building vs. buying for the past four years.
I’ve been on both sides of the coin: I’ve purchased 10 profit-oriented software products or websites, and built three.
Knowing what it takes to develop the initial version of a non-trivial software product (read: hundreds of hours), I’ve become a fan of buying. This is based on two factors:
- I have no spare time and a bit of spare money
- Hmm…no, I guess #1 is the only reason
As a software consultant I’m booked full-time and I bill a reasonable hourly rate. So to spend 348 hours (2 months) building a product means I’m approaching a mid-five figure investment into a software product. That’s not play money; those are real dollars that don’t wind up in my pocket.
And I don’t have the confidence in my ability to know a market well enough that I would drop that kind of money on an untested product idea when there are less risky alternatives.
Looking at the products I’ve bought and built, none of them required skills beyond that of a mid-level developer. Sure, there are products that are more complex, but let’s be honest, building an invoicing system does not involve insanely complex algorithms and coding chops.
With this in mind, spending 348 hours of my time doesn’t seem like the best business decision when I can:
- Hire someone to build the application (in my case, use the team I already have in place), or
- Find a proven product that may already have a customer base, sales website, etc… that I can buy for less than I can build it
You probably think I’m nuts, preaching “buy” over “build” to a group of software developers. So let’s take a closer look at the scenarios:
I love writing software, so this has historically been my path of choice. However, the amount of money (based on lost consulting hours) I would spend on a 1.0, plus building a sales site, documentation, SEO, pay per click (PPC) campaign, etc… would be at least $40,000.
I have faith in my ability to build and market software, but that’s a lot of faith to put into something that’s generating zero cash. You’d be nuts to buy a software product with no revenue for $40,000.
However, if you want to own a software product because you enjoy writing code, or you have a lot of non-billable spare time, then this is a viable option.
But I must caution you – laptops around the world are filled with the remnants of half-built products. Committing 200+ hours of your spare time to build and launch a product is no joke. Writing code 50 hours per week you would have a 200 hour project launched in 4 weeks…no problem!
But if you’re coding in your spare time you’ll be lucky to get in 10 hours of coding per week, and your productivity will be low because it will be 2 hour blocks when you’re already tired from schlepping mindless reports all day for “the man.” Trust me – I’ve done it. It’s not easy.
Soon that 200 hour project turns into more than 20 weeks of your free time…almost 6 months. The first month is a breeze, it’s the last five that’ll kill ya!
Hiring It Out
Hiring someone to build your software is a good middle ground, and allows you to maintain some control over the technical piece without it sucking the coding life from your veins.
The advantage of hiring out product development is that it gives you time to build the sales site, write documentation, focus on SEO, marketing, PPC advertising set-up, payment processing, and the hundred other things I’m forgetting to mention.
If you’re doing things right, the effort to get your product built is around 50% of the total time it takes to launch a product.
I’ve found success in outsourcing code and graphic design, and handling everything else myself. “Everything else” means the business side of things…the piece where you will likely learn the most, where you can bring the most value, and that you can’t easily outsource.
And think about it…a lot of people can build a good invoicing application. A lot.
But how many can work the necessary marketing angles, form partnerships, create a profitable pay per click campaign, and build a compelling sales site? Finding someone who can execute on these is much more difficult (and more expensive) than finding a developer who can build your application.
The single most important factor in the success of a software product is marketing and sales, not the software itself.
In no way am I arguing for mediocrity in software development – your software has to get the job done. However, don’t believe for a minute that great software beats great marketing. It never happens.
FogBugz is decent, but probably not the best bug tracking software on the market. Yet I bet it outsells most of its competitors by a huge margin based on marketing.
If you don’t know how to work the marketing angles, form the partnerships, and do the other things I mentioned above you’re going to need to:
- learn fast,
- find a partner, or
- stick to the day job.
Seriously…building (or buying) a great application is not going to get you there.
With this in mind, let’s take a wild swing at the costs involved in this approach:
The graphic design and HTML will run from $500-$1500 if you offshore (optional depending on your personal view). Doing it in the U.S. will cost $2,000-6,000.
Two months of development (a safe estimate when hiring someone to build a small product from scratch) will run $14k-$21k here in the states, or around $7k if you offshore.
Total you’re looking at $16k-$27k in the states, $8-9k if you offshore. These are obviously very rough numbers based on a typical small product requiring two months of development.
The potential pitfalls of this approach are obvious: if the developer is bad, you get software that doesn’t work. A key strategy here is to screen your developer carefully and only hire really good ones.
Also, design the DB and screen mock-ups yourself. Not only will you get much closer to the product you envision, you’ll be able to maintain it in the long-term.
This is the approach I started favoring about two years ago. It started with my interest in buying (and later selling) domain names and websites. I soon realized that there are bargains to be had when buying a product or site that’s already making money.
DotNetInvoice is a good example – I purchased the product, sales site, payment processing code, search engine rankings, and a small customer base for about 20% of what it would have taken me to build it, and yes, even cheaper than I could have hired someone to build it. It was built in Florida by two professional developers in their spare time. Quite a deal, indeed.
The reason these products and websites sell for such low valuations is that the market values revenue, and most of the product developers don’t have the marketing and sales knowledge to bring their product to its full revenue potential.
This means there are completed software products and many a website for sale, selling for literally pennies on the dollar compared to your cost to build them. I realize this sounds like a late night infomercial, but believe me, it’s true. And how much would you expect to pay for this information? Just kidding…
The pitfalls of this approach:
- You’re taking on risk in buying a product you didn’t build
- You can’t search for a specific type of product; for the most part you’re limited to what’s for sale
As an example, I didn’t go looking for an invoicing system. I happened across DotNetInvoice and made an unsolicited offer. If you read my original account of the purchase you’ll know there were some early hurdles that I had to overcome. But once I worked out those kinks I’ve never doubted that I made the right decision.
One aspect I really like about buying a product is that it forces you, right off the bat, to not think about code.
As developers we want to spend all of our time working on technology because it’s where we’re most comfortable. But as I mentioned above the real hard work, and where you should spend the majority of your time, is on marketing, PPC, SEO, and partnerships. Buying a product forces you to think like this because the thing’s already built.
If you don’t want to spend the majority of your spare time on non-technical issues like marketing, I suggest partnering with someone who does, or sticking to the day job. The day job will probably pay better, anyway.