Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am a JavaScript programmer and am planning to take Freelance projects related to JavaScript effects for the web. Recently a potential client approached me to create a JavaScript effect for his website. The effect was quite complex and it was not generic. That is, every time the design of the website would change the JavaScript code would have to be modified.

Due to this nature of the code, I told the client that I will not be able to provide maintenance for this project. I will be happy to modify the code in the future but I will be doing the cost estimation each time there is a modification. The client was not happy with this.

I thought of calculating the probability of the modifications the client may ask per year and multiply the initial estimate by that so that the maintenance becomes free. For example, if the cost of the initial project is $100 and I assume that the client will ask me to modify the code 4 times a year I would charge him $ (100 + 4*100). But I think this would be way too much and the client would deny to pay such a high amount.

I have just started freelancing and the cost estimation part related to maintenance confuses me a lot. What is a good way to estimate maintenance cost. Also suggestions on maintenance terms like what should be the scope would be useful.

share|improve this question

closed as off-topic by MichaelT, Snowman, GlenH7, Dan Pichelman, gnat May 29 at 23:16

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – MichaelT, Snowman
If this question can be reworded to fit the rules in the help center, please edit the question.

"The client was not happy with this." How odd. Charging for maintenance is really a very standard arrangement. Did they provide a reason? Do you have a competitor who does not charge for maintenance? –  S.Lott Jul 15 '11 at 12:39
Do you have any chance at making the effect generic, with more development efforts? –  Joris Timmermans Jul 15 '11 at 13:50
Was the client not happy with being charged to update it, or was he not happy with it having to be redone whenever the site changed? My boss would have freaked about the latter. He would have wanted clear instructions on how to not break the feature when updating the site. –  Amy Anuszewski Jul 15 '11 at 13:51
@S.Lott There are other people who are ready to do it cheaper but they would take a long time. The client is confident about my work and so he wants it to get done from me. Many people here (in India) do work very cheap and they also have a full-time job. But I can't charge so less as I am trying to be a full-time freelancer. –  Cracker Jul 15 '11 at 14:51
I'm voting to close this question as off-topic because it is primarily about a business concern and does not necessarily require a programmer's expertise. –  GlenH7 May 29 at 16:00

3 Answers 3

up vote 7 down vote accepted

Setting expectations is EVERYTHING!

I think you were right on when you told them up front that the maintenence was going to be extra and everytime that the site changed, the code you created would have to be changed as well. I think it is reasonable to come up with a standard per hour rate for development and maintenence. They could even be different - that is up to you and how you value your time. Make sure the client knows that up front as well as keeping the expectations for future maintenence - so when they call you in the future, they know how much it will cost per hour. In this case, you may have an idea of how much time it will take to make adjustments as their site changes - even better.

Bottom line - set your pricing, set the expectations up front. I think you are on the right path. I do think it is un-reasonable for your client to think that ongoing maintenence is included in the first estimate - they are business people too.

share|improve this answer
is right - SETTING EXPECTATIONS IS EVERYTHING. Based on my experience of freelancing, I share his view and upvote his answer ;) –  karthiks Jul 15 '11 at 14:50
"they are business people too" Umm.. they are actually people with full-time jobs who are trying to start a business. Now I have started thinking that they do not understand much of business. –  Cracker Jul 15 '11 at 14:58
Yea...I thought about putting a question mark at the end of that one, but I'm sure their motivation is to get as much as they can for as little as possible. –  Catchops Jul 15 '11 at 15:34

Thinking further and based on the introspection of my experience, I would wish to elaborate my answer in the following way.

There are two kind of free-lancers - one who does it as their full-time day job as much as possible and the others who take it up to fill up their leisure time or any compulsive personal intererst (earn some more bucks or sheer personal interest to do and experiment more).

I have personally been a freelance programmer more as the former. I partnered with another person trying to sign that FIRST CONTRACT. After our delivery, what next was the question? Thankfully enough, the customer always wants more and more, either in the form of requirements change or addition of new features. But then here is the caveat, the market is competitive with many other freelancers too. This definitely has an influence on our pricing strategy. So how did we go about our pricing? To start we signed-up on-demand contracts based on the estimated time to complete every task. As time wen by, the confidence of the customer on our work and the bonding and trust got better and better. With this we were able to convince the customer on signing-up of AMC (Annual Maintenance Contract) with us by telling him how it would benefit him. This gives certainity for our bread and butter for the next 12 months ;) Based on your marketability, you can always include in the contract on the maximum number of hours that you would be spending on the assignment, but always keep the customer of how it gets used up every time you are servicing and be a little flexible to do a little stretch on the number of contracted hours to increase your stature.

Once you become renowned for your work, you can always be rigid on your terms and conditions. In business reality, what is right depends on what works for you.

Wishing you good luck on your endeavours :)

share|improve this answer

I think the problem is:

That is, every time the design of the website would change the JavaScript code would have to be modified.

I don't have to pay Microsoft to rewrite “Word”, when I wish to change the design of a document; therefore way should someone expect to have to pay when they wish to change the design of their web site?

share|improve this answer
-1: You're comparing apples with oranges. OP doesn't have to re-write the web browser (e.g. JavaScript interpreter) when the page changes. A proper comparison would be: "I don't have to pay to get a new professional translation of my document when I re-write it". But you probably will have to pay to get the translation of the updated document. –  André Caron Jul 15 '11 at 14:58
I understood what you are trying to say. I do always try to write generic code. But sometimes that is not possible. –  Cracker Jul 15 '11 at 15:04
@Andre, how do you expect “the man on the Clapton ommi bus” to know that it is comparing apples with oranges? (They are the sort of people that are paying to custom web sites these days) –  Ian Jul 15 '11 at 15:21
@Ian: if they can shop around for home/car/life insurance policies, cell phones, etc., they can probably understand the manufacturer/seller can offer support for some things via the contract, and will not provide support for other things (or will support them for an additional fee). Explaining these clauses is part of your job as a freelancer. –  André Caron Jul 15 '11 at 15:30

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