4

Over the last few months I have developed and put into production a software system for a client. Development was paid by the hour.

Now the system is more or less finished, and the client wants to put together a maintenance contract. The maintenance work will be:

  • fixing bugs
  • user support
  • handling minor enhancement requests

Does anyone have tips on how to price maintenance work?

4

There are typically two major ways to accomplish this

  • Fixed monthly fee
  • Floating monthly fee

For fixed monthly fee, your client always pays the same amount and you fix as many issues as come up. This is a good option as long as you are firm about scope creep, i.e. keep the enhancements minor! If the maintenance contract is long enough, you can expect to do less work over time to recoup your actual time costs, i.e., the long tail model.

For floating monthly fee, you can either have a bare minimum or no minimum monthly fee, but basically continue on an hourly basis, as bugs come up, you fix them and record your time. This may cost less or more for the client, but is better for you if the maintenance contract is short term. You have to decide if you want to discount the rate, raise the rate, or keep the rate the same. I would just keep it the same in this case.

3

You would need to give your best guess as to how many hours those items will take you during the term of the maintenance contract, and multiply that times the rate you want.

You also probably want to put a limit to the total number of hours of "user support" (and define clearly what user support means in concrete terms, and how that will be handled (i.e. emails, phone calls, site visit) with an escalation process in place. Also list your minimum response time to varying levels of support (unless you want to be woken up at 3AM with a frantic phone call).

You should also have a clause in the agreement that defines the difference between "maintenance" and "new feature"

2

First, there should be a clear distinction between maintenance/support and warranty. In your example, you should have a reasonable warranty that outlines your feature does X, Y, and Z. If it does not do these things, it should be in the warranty that you can (and should) fix it. The warranty should have clear terms of turnaround, response time, and indemnification.

Maintenance and support are separate from warranty in as such that if the user wants an enhancement, compatibility upgrades, etc. they should pay for said enhancement through a maintenance and support contract.

I have found it good practice to set minimum purchase amounts as far as hours go for maintenance and support. This way, someone doesn't buy 30 mins or 1.5 hours from you. Your time is your inventory, and you should sell it as such. Set minimums to reasonable amounts, such as 10 or 20 hours, depending on your client.

When someone comes to you for maintenance and support, they can buy these hours in chunks and do with them as see fit, (within the scope you've defined of course).

It is also good to set an expiration on these hours. This allows you to raise rates accordingly as your skill and demand advances. You don't want someone milking the 100 hours they purchased from you 3 years ago at 1/3 of your current rate.

Finally, maintenance and support should be paid in advance. Since it's support and not necessarily a deliverable, the client essentially "reserves" their spot on your calendar. Otherwise, they should be made aware that if they don't reserve a spot, you might not be available when they need you.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.