Project Management

Provide flat-fee maintenance to improve your bottom line

If putting out fires is your number one drain, it's time to reassess your strategy.

If putting out fires is your number-one drain, it's time to reassess your consulting strategy. You can't just show up when things break -- although many clients may think that's the way to go. As a competent and ethical consultant, you must be proactive and keep things from breaking in the first place. You simply can't provide your client with the most efficient system if all you do is fix broken stuff. There are two problems with this type of arrangement:

  • If stuff breaks a lot, they'll blame you, even though you're not really responsible. Eventually, they'll replace you with a full-time employee or a new consultant.
  • As a consultant, your clients trust you to provide the best service, and merely fixing broken things doesn't cut it. You should strive to keep their system running smoothly, so that things don't break in the first place.

Now, if everything's running smoothly and nothing breaks, how do you make money? You put your clients on a flat-fee maintenance contract. They pay you $X every month to provide a number of services. Suddenly, you both have the same goal: to keep the system running smoothly. They have little-to-no downtime, and you actually work less.

Once you have that contract, your first order of business will be to permanently fix all those annoying things that keep breaking -- no more shortcuts and band-aids. You must reduce those fix-it calls in order to make money on a flat-fee contract. Most likely, that will require new hardware and software, so be sure you make that part of the deal. Upfront, you make money upgrading the system. Then, you must be proactive about managing the system to reduce problems and, consequently, the amount of time you spend fixing problems.

Instead of fixing things, you'll still be around, performing routine maintenance and seeing to custom user needs as they crop up. In fact, with the right setup, a lot of maintenance can be performed remotely, reducing travel time and costs.

Your users will be more productive, your clients will be happy, and you'll be putting in fewer hours while still receiving a fat paycheck, which the client will be only too glad to sign. You'll have more free time to consult with new clients and to invest in training to keep up with changing technology.

A flat-fee maintenance contract is a win-win for both you and your clients.

Realistically, not every client is going to buy a flat-fee contract. Once enough of your clients have made the switch, let the fixer-uppers go.

About

Susan Sales Harkins is an IT consultant, specializing in desktop solutions. Previously, she was editor in chief for The Cobb Group, the world's largest publisher of technical journals.

20 comments
Da Saint
Da Saint

I have a customer that a monthly maintenance fee works great. It's a rather large Hair Salon. These folks know how to cut hair, etc. but have a computer system simply because nowadays you have to have it to compete. I Remote Desktop in most of the time and go in when I have to physically be on site. They just want to do their thing and not think about all that "PC stuff"

ssharkins
ssharkins

This is great to hear -- I love it that more and more of you are working remotely. Would you mind sharing a short list of the types of tasks you perform remotely for this client?

mrwelch98
mrwelch98

Depending on the remote software you are using, you can practically do anything the user could do while sitting at thier desktop. They need to present to do things like push buttons, login to the desktop, put cd's in maybe...the obvious things you can't do remotely. Vista poses a problem though because of the UAC "User Access Control". It must be turned off because for one you can't see it. this problem can be dealt with a couple of ways. One is walking a client through how to turn it off or transferring a simple reg file to the remote system and merging it to the registry. Either way you will likely have re-stablish a remote session if it locks up or something. Before you ask, I am using Crossloop, which is currently free. It uses VNC as the backbone and can transfer files, change direction of the share so a user can see your desktop also if need be. The only thing it doesn't do is chat. but I prefer the speakephone anyway since it also requires a broadband connection to get performance. Radmin works good if you are on broadband and the client is on dialup but is $35.00/seat unless you buy multiple licences. Also is much harder to initiate a session because the user need to possibly configure the router to forward ports and know what thier IP address or router ip address is at the time of service. Crossloop provides the easiest and cheapest solution I've personally found.

ssharkins
ssharkins

I'm familiar with Crossloop - - have you tried LogMeIn?

JohnMcGrew
JohnMcGrew

...that the clients who most need this approach will be the ones who will most resist it. I have some who really resist (or resent) preventative maintenance. They really don't understand (or want to understand) why updates and patches need to be applied and security measures need be monitored and adjusted, hard disks replaced, etc. But they are always pleased when you're able to respond to the inevitable (and expensive) melt-down. The "dream" clients are the ones who listen to and respect what you tell them. The "stressful but profitable" ones are the opposite.

ssharkins
ssharkins

For myself, I would think a good goal would be to get enough dream clients that you can drop the folks who refuse to move forward.

Sterling chip Camden
Sterling chip Camden

I think this article has great advice for consultants who that kind of work. For software developers, our work is never finished. If I went on "flat fee for whatever you need", I'd have to fight off my customers' demands for time even more than I do now on hourly.

ssharkins
ssharkins

Yes, development fees require a different strategy. I can only share what works for me. First, I refuse to work under a project fee umbrella. I charge a flat hourly fee -- as long as I'm developing, they pay an hourly fee. That can get sticky because they want to know costs up front. What I do provide is a weekly update report that itemizes my time and when I can, I send a long a short demo, so they can see how the work is progressing. My contract also states that they are free to cancel the contract at any time -- that seems to make them feel a lot better. Of course, I retain that right as well. In addition, I only take on small projects, so I think that also helps support this type of schedule. Now, after the software's in production -- and depending on the software's purpose of course -- you can sell them on a monthly maintenance fee for the software. Of course, you can't charge them for fixing bugs, but that fee guarantees that you'll be around to fix things that "they" break, to enhance the software as the company grows, to make sure the software still works in the next upgrade, and so on... you can't charge a lot for this fee, but given the alternatives -- no support at all -- most will pay it. I know a lot of developers who have post-production maintenance contracts.

Sterling chip Camden
Sterling chip Camden

In the work I do, it's very difficult (if not detrimental) to try to anticipate every requirement in detail. So what often happens is you satisfy the requirement, but after you get it in place it's obvious that this will not work for whatever reason. You have to find a different way to meet the requirement than your original design. It's a bug in the design -- caused by not knowing enough until you implement it. Those bugs are why I don't have a policy to fix bugs free of charge. OTOH, if I failed to check a pointer and blow a seggy, I'll slip that correction in and send it off to the client gratis. But if, like some of my clients, they require me to do a lot of documentation and tracking of a bug like that -- well, then I charge for my time.

JohnMcGrew
JohnMcGrew

A "bug" is usually something that results in an error message, or otherwise stops the show. "Feature Creep" are ideas or functions that the client comes up with as a project moves along; usually as they start to realize the potential of the system to do far more than they first envisioned. On hourly, "feature creep" is just fine with me, as the client gets a better system and I get more money. But if you're working on a fixed-cost basis, it's problematic. I generally won't tolerate it unless the contract is renegotiated. (Clients usually do not understand the implications of changing specs when a project is so far along) The only blurry area might be where I don't fully understand every aspect of the operation I am programming for, and don't come up with the most effienct solution. I play those situations by ear.

ssharkins
ssharkins

Feature Creep: A list of good tight specs will save you every time. And, if you're charging by the hour, feature creep really isn't an issue. They'll pay for it if they want it. Bugs: If something on the specs doesn't work as expected, within the context of the specs, it's a bug. If they do something they're not supposed to and they break it, they pay to fix it -- although, realistically, it shouldn't break, just not do what they want -- then, that's called enhancment. :)

Sterling chip Camden
Sterling chip Camden

... to draw the line between "feature creep" and "bug". By charging hourly for both, I erase that line.

JohnMcGrew
JohnMcGrew

...except that I usually do not charge for bug fixes. It encourages me to be a bit more dilligent in testing. Charging hourly also contains "feature creep". People respect your time much more when they know a meter is running.

Sterling chip Camden
Sterling chip Camden

And I charge for bug fixes, unless the bug was really bone-headed on my part (at my discretion). Fixing bugs is part of software development. I do my best to minimize them to achieve better customer satisfaction, but I won't work for free.

mrwelch98
mrwelch98

Many software developers fall into the niche market for what they develop. I have seen over the years as a consultant for the client that if you call for Tech Support and the client doesn't have a tech support contract, they won't talk to you. This is because they do not have high sales of thier product and need the support contracts to also support future development. Tailoring software to a clients specific needs are how ever a different ball game. Some developers seem to develop later versions that eventually get forced on the clients for a charge and become a pre-requisite for support contract renewals. In this case though the changes benefit all the clients supposedly while reducing support costs. The idea though is to stablize your income so that you can ride out the highs and lows and can keep afloat whether you are a IT person or a software developer.

apotheon
apotheon

Excellent point. These days, my consulting tends to be more project oriented than maintenance oriented, so this doesn't apply to me so much now. Back when I was more into the network and system maintenance end of things I definitely preferred to establish a steady maintenance arrangement, though. Unfortunately, clients have always been very resistant to this sort of change in a business relationship. When I've moved from a crisis-based business relationship to a maintenance-based business relationship, it has usually been by way of introducing a new piece of technology to the client's systems (such as introducing a Linux or Unix server to a small office), and offering an ongoing on-call maintenance contract for that technology. The maintenance relationship can then be gradually expanded from there. Preparing to offer that sort of maintenance contract requires some doing, to do it right, however. For instance, collecting notes on long-term average monthly costs for the crisis-based business relationship, and comparing that with the (presumably lower) monthly fee for the maintenance-based relationship, goes a long way toward encouraging the client to accept such a proposal.

mrwelch98
mrwelch98

I recently started offering a flat-rate unlimited Phone support and Remote Desktop support merely to fight gas prices and avoid raising my rates. My criteria to offer the service is that... 1. I have developed an excelent relationship with the client and they turn to me first when any problem arises. 2. The client trusts my judgement, and integrity. 3. The clients computer(s) are in sound shape witnessed by a recent personal visit for which they paid the full rate. Also, they understand in instances that require an actual visit that a discounted rate will be charged in addition to the monthly fee they pay. Otherwise the low-monthy fee would have to be much higher. And of course, the focus of the aggreement is a attempt to avoid total meltdowns where ever possible. Creating this type of environment unfortunately often requires the client experiencing the cost of recovering from a total meltdown more than once. Often problems can be avoided by getting to them sooner. And most certainly can be more easily sold after a couple of remote sessions.

ssharkins
ssharkins

"Also, they understand in instances that require an actual visit that a discounted rate will be charged in addition to the monthly fee they pay. Otherwise the low-monthy fee would have to be much higher." This is a good idea!

ssharkins
ssharkins

I think everyone would be interesting in hearing how you (and others) managed to make the switch. You're right, it takes work to convince some clients and it takes work even when they're easy to convince -- an upfront assessment is critical. Perhaps we could create a check-list of sorts?

santeewelding
santeewelding

Your response alone convinces me of competence. As to our contract: leave dour out; aspire to twinkle, that stage beyond competence.

Editor's Picks