ChimneySweep® is a versatile product that is aimed at four major user groups:
- people who simply have a database problem,
- professional developers and
- companies who sell a product (such as, say, a cash register or ticketing device).
Each of these was to become target of a different so-called "Edition" of the product, where the difference between the editions is the set of product features that is supplied and/or enabled. In this way, users can pay for, and receive, only the level of functionality that is important to them.
Some people customize ChimneySweep and insert it into their product such that customers never even know that it is there. Others completely re-write the scripts which drive the product in order to tailor it to their exact business requirements. This extended level of functionality carries an extended price. The "main-stream" functionality, meanwhile, omits the customization feature, and it is effectively sold three ways: "30 day," "unlimited," and "runtime."
("The underlying piece of software" ... yeah, full-disclosure here ... "is more-or-less exactly the same.")
The "30-day" option is offered "without recourse or regret.™" Maybe your present difficulty is "a one-time thing." (Yay!) But, if it is not, you can apply the entire price of your 30-day purchase (within 30 days ...) towards something else. ("Always leave a difficult decision up to the customer!")
The second option, "unlimited," is likewise fairly self-explanatory: "you bought it ... once." Congratulations. It's yours.
The third license-type, "Runtime," which only allows scripts to be run but not edited, is also sold(!!) to users of the most-capable "Professional" edition. Professional Edition allows you to build distributions of ChimneySweep, but a "Runtime" license (or its equivalent) is required for each such deployment. Naturally, there's a lot of negotiating room based on volume and so forth. "Unlimited Distribution" annual licenses are also sold.)
So, as you can see, "you are sold ... you are asked to pay for ... 'nothing more and nothing less than' what you need." (But at the same time, we are also very careful not to leave money on the table.) In every case, there is "a corresponding exchange of coin-of-the-realm" for "every perceived level or exchange of market-value."
Life Lesson Four: Build and Protect A Revenue Stream
If you want to stay in business for a long time, you can't be continuously searching for only new customers. You need to maintain lasting client relationships which continue to produce revenue.
Some software products (especially those for mainframe computers) do this by charging customers monthly or annual "maintenance," which is mandatory ... effectively renting the product, and leading to the quip: "IBM = Income By the Month."
ChimneySweep does not do that: your license never expires. But your license only applies to the major-release that you purchased. When new versions are provided from time to time, you pay a discounted upgrade-price. (When bug-fix releases are provided, you can download these at any time and at no additional cost.) In this way, licensees tend to "roll over" their purchases several times. The stipulation concerning "Runtime Edition" licensing for "Professional Edition" deployments is also another source of continuing revenue.
In my opinion, this is the single biggest mistake that is made by "mobile app" developers. First, they allowed the price-point expectation to be fixed at "free." Then, when they do manage to get money, they get ... what?! ... "99-cents ... once." (Woo Hoo.™ If you seriously think that you can build a business on that, please tell me how.)
Companies who still cling to this (non(!)-)revenue model, IMHO, almost con the customer into downloading the product on the promise of "free." But then they badger them with advertisements and "in-app purchases" which were not previously disclosed, until (of course ...) their (non-)customer quickly gives up. It's no wonder that millions of apps in both the Google and the Apple stores are abandon-ware.
Even the vendors of Angry Birds found this out: at first, they were jubilant for having sold 4 million copies at $1 apiece, but the money quickly ran out once the initial demand had been saturated. Now, the company had 4 million non-paying customers, and financial stresses soon followed.
Life Lesson Five: Be Obsessive About Product Quality and Robustness
ChimneySweep works. We know it does. Internally, the source-code is bristling with internal tests which are not omitted in the released product. This not only makes the product relatively easy to troubleshoot in the pre-release testing stages, but it also makes every "quiet and contented customer" yet another affirmation that the product is working correctly under field conditions.
We actively solicit "real broken-tables" from customers ... under conditions of absolute non-disclosure. After sanitizing these tables to remove potentially-confidential content (because, after all, we don't care, or want to know, what the data is ...), we add these to a growing suite of test cases to which every pre-release version is (automatically) subjected. The product itself does many "extra" things ... taking a little "extra" time to do it ... in order to establish confidence that the product was successful or to immediately raise the alarm if it was not. (Because ChimneySweep is a repair product, we cannot and do not guarantee that repairs will succeed. However, if they don't, we want to be the ones to say so.)
In Closing: "My Own Little Unexpected Personal Energizer® Bunny"
If you had told me in 1996 that a product, which I created out of my own desperate and then-quite-solitary(!) need(!!) in the aftermath of a thunderstorm, would sell tens of thousands of copies all around the world, and still be selling twenty years later, I would have been happy to hear it – but I would not have believed you.
However, ChimneySweep® did turn out to be "my own little personal Energizer®-battery Bunny Rabbit." ("It just keeps going, and going ...™") But, as I have related in this three-part series, even though it was a most-certainly a most-pleasant surprise, it was no accident.
ChimneySweep is a robust, reliable product that fills a serious business need for a well-defined niche of customers, with Editions that are stratified for several segments of that overall population. It sells at the price points which the market itself established over time. It performs what is actually a very complex task, using what is actually a very large base of both Delphi and script source-code ... while making it appear to the customer (who really doesn't want to know) that "there's nothing to it."
It fulfills what I think is the primary objective of every product of its type: "It Just Works.™"
I hope this series was informative to you. And, meanwhile, I wish to express my heartfelt gratitude to every ChimneySweep customer out there, past and present. This continues(!) to be an experience that I will treasure all my life.