$ 1,000,000 utility writing lessons

In the fall of 2008, a friend and I spent two or three weeks of free time from the main work to write a small utility for database backup (MS SQL Server and then MySQL). Today it brings us about $ 230,000 a year and it is safe to say that in total we will earn more than $ 1,000,000 on it.
Under the cut, I will tell you how it happened and what lessons we learned from it. It is possible that we were just stupidly lucky and this experience is completely incorrect and does not correspond to the theory and will only harm your undertaking - read at your own risk.
Start
It all started with an unmet need. At our main work, we did various projects on .NET + SQL. And the simple task of creating a database backup, compressing it and uploading it to an FTP server often required a heap of scripts and utilities. We looked at affordable solutions - they fell into one of three categories:
- Expensive and complex (RedGate, LiteSpeed, Idera).
- It seems not bad for backup files, but SQL backup there as an indistinct add-on (Handy Backup, IBackup).
- Cheap or free VB6 style imperfections.
The market clearly lacked a simple utilitarian product. I shared the idea with a friend who specialized in Windows applications and offered half of the revenue. I had a GUI and a website, and on the other, the application itself.
Interface
The strategy was defined as follows: doing everything is simple so that even a novice user can get a result in a minimum of clicks. Namely: select the database, archive, send to a folder or FTP, receive an email with confirmation and put it on a daily schedule. We put all these actions on the main form, hiding everything else behind the Advanced and Configuration buttons.

Lesson 1 (it’s also the main one): Find the shortest way to satisfy your needs and do not bother users with details.
We are offered to add this or that chip in a day. The first question we ask is what percentage of our users will need it. If less than 5%, we will not do this.
Lesson 2(actually a continuation of the first): functionality that is unnecessary for most is harmful because it complicates understanding.
Here's how we dealt with some of the difficulties:
- The program was supposed to work with several projects / work . However, for most, it is enough to create only one project by selecting several databases for backup. We made it so that the program itself opens the same project as last time and connects to the same SQL server - so most do not even think that you can work with several projects.
- SQL Connection String is still the hardest part for the user. At the first start, without asking the user, we iterate over the most common Connection String, so that, having opened the program, most users have already connected to the server and see a list of their databases.
- Sending letters - in order not to strain users with the SMTP setting, by default we send letters through a web service on our server. For free users, the chip is free for a week, and then you can either buy a paid version or use your Gmail or other SMTP server.
- Schedule - most require Full Backup once a day. Which can be done on the main form. For more advanced, all settings are hidden behind the Settings button.
Money
After working a little, we made the first version of the program. Then we put it in all shareware sites and left comments on the forums on this topic. Little by little, the clients went. Two months after the release, we were noticed by one large company whose product was based on SQL and its users with little technical knowledge were themselves responsible for the backup. We were perfect for them and they sent all their users to us. In addition, they even took care of those support. Money flowed.
The basic version (Standard) now costs $ 59. For those companies for which this is not money - we have Professional with the addition of AES encryption for $ 69. For the frugal - Lite (maximum 5 databases) for $ 29. About a year ago, I read some article about the fact that prices on the Prices page need to be submitted from large to small so that the user, scared by the first large numbers, the figure in the middle seemed relatively modest. We thought: what would be so expensive to release to scare users? So the idea was born of the Lifetime version for $ 199 (now $ 149) with free lifetime updates. And we were very surprised when they began to cheerfully buy it!
Then a friend threw another idea that brought thousands of dollars. In addition to the products, we also sell Extended Support for little money (for those who bought it - special attention with support) and a free update for 1 year (by default - 1 month). The extra effort is close to 0, and the money is dripping a little ...
Lesson 3 - let the user pay as much as he wants and can.
Piracy and greed
From the first days of our existence, we decided to spend only a minimum of time on the fight against piracy. The program has an algorithm for checking a license key that is easy to crack. The idea is this: if a person runs keygen for hacking, he would hardly pay for a program without this. And so - he will use it and, possibly, when he settles down, then he will feel the need to pay.
Many people install the key on several machines - we just send polite letters reminding you that this is wrong. Companies in civilized countries try to comply with the agreement and buy the missing licenses. We could cope with less civilized ones by adding activation, but this would make life difficult for most honest customers. And again: they use us and this is already good.
Lesson 4- concentrate on the product, not on protection. A pirate today is a customer tomorrow.
Most have enough of the free version in which you can do the same as in the standard, with only a limitation of two databases. Grateful people even offer donations. Yes, we are glad: when needs grow, then they will pay, and at the same time we are fighting with free homemade products.
We recently added backups to Amazon S3, Google Drive, and Dropbox. At first there was a desire to take extra money. But they decided not to strain users and simply add to existing versions. There will be more users - which means revenue will increase.
Lesson 5 - satisfied customers are more important than momentary filling of pockets.
Further...
In the next article I will talk about how to work with contractors, how we swelled a lot of money where we don’t need it, how we unwound, how our employee tried to create a competitive product, how we deal with difficult customers, how we receive and share money, how we look at financing, like backup in Cloud, as trial was introduced, what about localization and where are we moving further.