When we left Part 1, I had emailed the developer of an invoicing software package, asking if he would be interested in selling the rights to his product.
Negotiations
The developer and I began an email exchange that lasted nearly a month. I received screen shots of the revenue for previous months. I reviewed code samples and data models. I played with their online demo, inquired about their customer base, how many copies they had sold, and how much time they spent supporting the product. I put it all together and, using what I know about small software product valuations, made them an offer.
After some negotiating we arrived at a final price. I received the signed contract, sent the funds via PayPal and within a few hours the code base, sales website, and domain names that make up DotNetInvoice (then at version 2.0) were mine.
I don’t think I can properly convey the excitement I felt opening the source code for the first time; the joy of a successful acquisition. If you’ve ever gone through a month-long process of investigating and negotiating a purchase you know how exhausting it is. The hours spent combing through documents and code, negotiating a price, and drawing up and signing document are all spent knowing that there is a high likelihood that the deal will fall through.
I basked in happiness for the entire evening. I called a few friends, began scribbling down ideas for new features, and gazed at the marketing website for hours. The next morning I emailed a few existing customers to inform them of the ownership change and ask for their opinion on a future direction for the product.
That’s the Sound of All Hell Breaking Loose
Within 24 hours I had over 30 replies in my inbox, all of them filled with angry comments about the lack of support and the number of bugs in the software. There were issues with the recurring invoicing, unencrypted storage of data, buggy searches, and on and on.
It felt like someone had dropped a ton of wet cement on my chest…had I just spent thousands of dollars on a complete piece of crap?
Had I completely dropped the ball during due diligence?
After a few hours of panic I arrived at a game plan: email everyone, put together a complete list of bugs, and fix them.
All of them.
Every last one.
There was no doubt that this is where I had to begin to salvage the reputation of the product. At the same time I was preparing to break the news to my wife that I would be sleeping on the couch for the next 10 years until I recouped my investment.
Moving Forward
Within two weeks I had found and fixed 23 major bugs. One of the key issues was with the recurring invoicing piece. The scheduling mechanism is cleverly written to take advantage of the caching functionality of ASP.NET so that it doesn’t require a separate scheduling installation. But it didn’t work.
There were a few logic errors that meant the schedules were all over the place. The bugs were hard to find and took several hours to pinpoint, but the fixes were minimal, often changing a < to a <=.
I also added detailed installation instructions (with the generous help of Joseph Voldeck from www.MadGig.com), since the existing instructions were geared towards experienced .NET developers. The product now includes a PDF with screen shots that walk you through the set up step by step.
With these improvements I released the next version, DotNetInvoice 2.1, as a free upgrade for all customers, even though no one had purchased support.
WHAT?!…No one purchased support?!
The previous owners offered a cheaper purchase option that didn’t include support. The problem is, with or without support, when a product doesn’t work you expect someone to help you. So although everyone had purchased the “un-supported” version, they (rightfully) expected someone to reply to their emails when the product had bugs.
Needless to say, within weeks of taking ownership I removed the un-supported version from the purchase options.
In addition to the weeks of development, I spent untold hours emailing customers asking them for feature requests, offering free support, and trying to regain some confidence in the product. After releasing version 2.1 I finally felt like the product was my own.
I couldn’t have been happier. The new release fixed every known issue, the existing customers felt supported, and a few new sales had rolled in. Things were looking up.
Until the end of the first month rolled around.
[tags]startup, software startup, asp.net, dotnetinvoice[/tags]