Fog Creek Software
Discussion Board

How does support fit into business model?

I'm a solo programmer developing a shrink wrap database app.  There are a number of competitors to the application I'm developing, but they mostly divide themselves into two camps:  (1)  Applications that are generally of good quality (though some are crap), which cost from $2k to $15k;  and (2) applications that are generally of low functionality and low quality, but which sell for $500 to $2k. 

I'm confident that I can develop an app that's comparable in quality to programs from the more expensive group, with perhaps a bit less functionality, but I should be able to sell it for the price of the less expensive group.  The ability to do this comes from the economics of developing things as a solo-developer: low overhead, high efficiency of development so long as program isn't overwhelmingly complicated, etc.  I think I'll be able to sell quite a few of these things based on the business idea of providing a better, more professional product  than comparably priced programs,  and by undercutting the better apps on price.

My main question/concern is regarding support for the program once the users have bought it.  Most all of the competitors -- of both price classes -- provide unlimited support for between $500/yr to $1,000 year, even for networked versions with multiple users.  I'm trying to figure out how support fits into the business model. 

I'm assuming support should be a source of profit, but I also have nightmare visions of hundreds of users calling every day to get help on how to put together a simple query, design a new report, or lots of other things that are even simpler.  Does this just not happen (assuming the program is well-designed and has good documentation)?  Or does support sometimes end up being a loss-leader?

I'm planning to provide support myself until I get enough units out there and it ends up taking too much of my time.  At that point, I was thinking I'd just be able to hire some computer science majors to provide telephone support as part time jobs.  Does that sound like it could work?

How many man hours would typically be needed to provide support for a program like mine, a moderately complex database app used by from 1 to 10 users at each installation?  Say I've got 100 installs with a total of 500 users.  How many calls should I expect per day or per week?.  I know there's no way to predict, but what is the range, from low (assuming program is perfect and end users are smart) to high (assuming program is buggy and poorly designed and users are computer illiterate)?

Also, just what does the "unlimited" mean in "unlimited support".  I'm sure I'd keep track of how much each user is making use of support; does there come a time -- even with "unlimited" support -- when you just cut someone off?  How do you handle it when users abuse the unlimited support?

Any comments would be appreciated.  Oh, and also I'd really like references to good books on running a small software business that might have advice on this sort of thing, if there are any.


Herbert Sitz
Tuesday, September 03, 2002

Sell your consulting/training skills as well. This could be providing a week of workshops to the users of your system, naturally at a rate profitable to you, although not a rip off rate.

By doing this you win twice, first on the training gig, secondly on the reduced support calls due to the provided training.

Wednesday, September 04, 2002

Can you afford for this to succeed?

On stable applications there is an S curve for the level of each user's support demand.  The highest level is when they first install the application, you may find that up to 80% of support involves installation and configuration issues.

You may be able to reduce those by tuning the installation and configuration but the proportion will always be around the same. 

However, although an individual installation's support is an S curve your demand will have waves for each sale, the level of overall support you need is connected to your sales cycle.  If you sell too many in too short a period you can swamp your support resource.  If you sell infrequently then you may well be able to support all installations on your own.

The worst period is when those cycles coincide, on the release of a new version is the most common, or perhaps when some horrible bug affects your whole install base.  That is when support resources become overloaded.

For a moderately complex application it would be reasonable to be able to support two installations a month on your own and still be productive (support is productive anyhow).  Even at that rate though it will tend to drag you down over time and its probably not a high enough rate to actually employ resource to do it.  When you come to release updates you may well become swamped.

You could outsource the support and I've managed both ends of that in the past.  If you do outsource then you need to have every nook and cranny documented.

As for 'unlimited support', forget it, you can't afford it.  Allow users a reasonable support service to get up and running on the application (you can give it some kind of period if you like, say three months), if the application is in any sense complicated sell Support Contracts, if it isn't then use a yardstick when deciding whether to bill for support or not.

Never bill for bugs, always bill expensive users.  The former is easy, its much harder to do the latter.

Remember also that support is a positive thing, apart from new releases if the application is useful then users will generate support demand some time into the use of the application; to push it into new areas for themselves or request new features or functionality of the application.

These are selling opportunities, grasp them with both hands as the margin on these sales is very much greater than on the application itself.

Simon Lucy
Wednesday, September 04, 2002

If you have a few experienced users, it definitely helps to set up a message board or newsgroup so new users can ask questions over there instead of going directly to you.

Frederik Slijkerman
Wednesday, September 04, 2002

Thanks for the tips.  I am planning to try to grow an active user community on a support bulletin board, where users will hopefull be able to help each other to some extent.  And I expect i will also offer training classes.  Both as a way to lower users' dependence on phone support.

But I'm still wondering about the phone support.  Virtually all of the companies I'll be competing against offer unlimited support for a single user for $400 or $500 per year, then they have a fee schedule with a few entries where fees go up as the number of users go up, but even then the yearly unlimited support for multiple users generally tops out at around $1,000 year. 

Simon, what do you mean when you say to "forget" unlimited support, but then you say to have support contracts?  Aren't support contracts generally contracts for unlimited support?  If not, what sort of terms and prices are you thinking of for a support contract?

My program will obviously have end users as the people I support.  I'm also curious, though, about developers who sell programming tools and utilities.  These are oftened sold with unlimited support (usually via email) for no fee.  And developers are virtually guaranteed to ask questions.  How do they do it? 

Thanks again,


Herbert Sitz
Wednesday, September 04, 2002

In practice, you don't get many emails from users, as long as you provide good documentation so they can figure things out themselves. Phone support would be a nightmare, but email support is handled easily because you can answer emails and still have time to do other things.

If there are users that ask many questions, you can just answer their emails after a day or two instead of after an hour to slow them down a bit. :-)

Frederik Slijkerman
Thursday, September 05, 2002

Well a Support Contract formalises the relationship, if you just say 'unlimited support' then you'll get to provide exactly that.  The Support Contract details exactly what support is available.

The Support Contract should be priced so as to at least cover your costs plus a small margin.  One set up I was involved with gave three months support with the price of the product and then their usage over that three months determined the level of Support Contract. 

If you negotiate each Support Contract that way you can recoup costs from an expensive user.

Simon Lucy
Thursday, September 05, 2002

A) Phone

1) Certainly avoid the use of unlimited free 1-800 calls unless you want to go bankrupt.

2) Allow unlimited use of 1-900 calls if you can set this up! Sweet deal!

3) If they require it, they can pay for phone support but don't do it 24/7 unless you have the cash to hire banks of operators. Instead, have them "buy" an incident of service from you for $25-$50 using a web form which they give their phone number and best time to call. Then you call them the next day during their appointment time and they have 30 minutes to chat about whatever they like with you or your phone person. Then the buzzer goes off and they need to pay again to continue.

B) Email

1) Unlimited email support should be OK. One company I do business with handles this by sending me cryptic and unhelpful emails in response to my requests that seem to be written by someone who is just learning how to use a computer. I have 'learned' not to use the unlimited support but I can't deny that they are honestly providing me with it as advertised!

2) My own customers always require some email support. Typically just a little bit. But the major problems are not I have found *ever* (imagine that) because of user incompetance or laziness or such but >>because my program was not good enough<<. I figure out what I need to do to avoid getting this service call again and I implement that. By doing this, customers of each new version are requiring less and less support ad the program is getting better and better. Certainly in the majority of cases where a customer is paying for the software (and is thus a serious user) any problems they have with the software are the developers fault. Whether you think it's true or not, adopting this attitude towards oneself serves to allow the product to be improved.

C) User support forums

Yes, obviously. If you don't have the time to set one up yourself, for goodness sakes take the 5 minutes to set one up on any one of the free mailing list services that are out there. This is a no-brainer. It doesn't cost a thing and provides you with incredibly useful user feedback about your product which you can't afford to ignore.

X. J. Scott
Thursday, September 05, 2002

One more thing. You mentioned you are worried about getting lots of support calls about dealing with simple things. This will not happen if your program is good enough. If you are getting these calls, improve your program. But lets say you have a customer who for whatever reason is emailing you everyday with all sorts of strange problems and there seems to be no end in sight. Likely he or she has some weird DLL installed on their computer or a virus or whatever and you realize there is no hope of figuring it out. The answer is simple. Apologize to them profusely taking full responsiblity for your inability to help them and offer them a full refund, including shipping costs. And keep an eye out in the future for what could have been causing the troubles. Perhaps there is an incompatibility with other software. Perhaps your onboard help system is not robust enough. Whatever it is, when you find it, add it to your troubleshooting faq that you make available to all users.

X. J. Scott
Thursday, September 05, 2002

*  Recent Topics

*  Fog Creek Home