Recently I started freelancing as a full-stack developer in Brazil and it's been very good so far, but I am a little stuck on this one client.

By far my biggest client yet, they want a customized software solution that runs and monitors their operations and also allows their clients to access accounts and generate reports, monitor progress of services being performed. It will also be a tool for the employees, who will use it to finalize service orders via their smart phones. This client will also be expanding to the rest of Latin America. The bottom line is if the software stops, so does their business.

So I think we can agree that it is a fairly large project. I offered them a package of 600 hours at a huge discount because I was assured I could charge a monthly fee. They also requested exclusivity and access to the source code which I also agreed on at no extra cost.

However, now this client doesn't feel that it is fair to pay a reasonable monthly fee for technical support, code maintenance and database administration.

I am perfectly capable of doing all three of these things but 8 hours a month just seems very little for a software of this scale. They responded with my original maintenance fees proposal of 30 hours a month with a request for a breakdown of the costs which was a big mistake because then they started asking questions like "Do we really need database administration? How will the software behave without any of these things?"

Now I am getting the impression that they only want to pay when things go wrong. Were my expectations for the monthly fees too high?

  • I am not sure what you are asking. First you mention 600 hours (for programming?), then 10, then 30... Make the question more understanding so we can reply.
    – Peter MV
    Commented Jan 11, 2017 at 10:35
  • I guess to summarize, I made a lot of concessions lowering the development cost, not charging extra for exclusivity or for access to the source code and I was surprised that they only want to pay 8 hours a month. So the question is were my expectations of receiving 30 hours a month to keep the software running smoothly too high despite those concessions.
    – Jon
    Commented Jan 11, 2017 at 20:37
  • Take into account that YOU know that you made concessions, but I'm not sure the customer is aware of those. That's why I'll always offer the full package including price, and THEN I'll make concessions. That way, the client is aware that I am already giving them my 'friend, I give you nice price'. Commented Jan 12, 2017 at 10:21
  • I agree, I think the problem is that the client isn't giving me enough credit because an initial price point wasn't presented to them so they have nothing to compare it to. It's definitely something I will need to improve on in the future. I should have been clearer that the monthly costs would need to justify the concessions.
    – Jon
    Commented Jan 12, 2017 at 17:59
  • @Jon Check my answer
    – Peter MV
    Commented Jan 13, 2017 at 9:16

3 Answers 3


Ah, the good old fashioned "stuff works and never breaks" assumption from a non-it manager.

First up, DBA requirements. Advise them that if they do not wish to procure DBA support from you, they will need to provide their own DBA. Ensure that your terms of service/sla/etc do not include DBA support as part of the package.

Next, general support requirements. I would suggest creating a realistic offering at a fantastic rate, but any support outside of this limit will be billed at a premium. To prevent new features being demaded as part of support, ensure scope documents are clearly agreed upon.

Onto development. Offer additional development at your standard rate, hourly. Include a detailed SLA for development activities.

Once you have all of these in a solid SLA, have the customer sign it off. Now you have covered yourself in the event the customer unplugs the server and breaks everything, and they will have areed to pay you for their own foolishness.

  • 2
    Thanks for taking the time to respond. I really like the idea of billing at a premium outside the limits because I think it will help motivate the client to renegotiate more realistic limits if they break them too often. This also solves the issue of trying to predict exactly how many hours the project will take to maintain.
    – Jon
    Commented Jan 11, 2017 at 21:11
  • I will accept this as the best answer because I will definitely be using this advice in the future.
    – Jon
    Commented Jan 16, 2017 at 4:10

It's almost impossible to predict how many hours it may take to maintain some system. Every system that has users who use it can have a person full-time maintaining it.

Now, I also know that many clients are not willing to pay for 1 man full-time but would actually like to have someone who can jump any time any issue happens and fix the bug with the minimum costs. Such client have to be either educated on the nature of maintenance or remove them from the list of clients. Any other way will get you a headache and you will earn nothing.

So 30 hours per month is nothing for 3 roles you promised to fulfil. And yes, 8 hours or 1 man-day is a joke.

In cases like yours, if I can afford it, I will drop the client with words that his suggestion will not bring quality maintenance to the system and that I will be blamed at the end because nothing works.

If I cannot afford to lose the client, I will educate him. I will write a professional long message (just 1, don't write 5) explaining what it means to support the system, what are the consequences of bad maintenance and how unrealistic their expectations are. Also explain how paying for your time they also reserve immediate help. Otherwise they will have to wait for their turn when an issue occurs - no immediate help is possible.

If they are not ready to understand, and you still want to work with them, then accept that role 1 man-day per month. Do as much as you can in 1 day and then go offline until the next month. If they come in panic, tell them that you are overly busy and for this month you cannot work on their system. Remind them how you warned them about this. In reality no killer error will appear immediately, but they will realise how important the maintenance is and that 1 day per month is a real joke.


Negotiate the minimum amount of hours that are interesting for you, if the company does not accept that, simply go for another client. It is not good for any freelancer to have just one client.

Sooner or later the company will realize that they need someone to take care of the system and the infrastructure, and if they decide to hire someone later it will probably cost more and be less productive than the programmer which developed the application in first place (you).

Never under valuate yourself.

  • My thoughts exactly! Something that keeps happening though is that after I propose a minimum amount, the client asks for a breakdown of the costs. Should I avoid providing them with this information in the future?
    – Jon
    Commented Jan 12, 2017 at 17:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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