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
3  
"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
1  
Do you have any chance at making the effect generic, with more development efforts? –  Joris Timmermans Jul 15 '11 at 13:50
2  
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
    
@MadKeithV No. I always go for generic effects. But sometimes the required effect is so complex that writing generic code is almost impossible. –  Cracker Jul 15 '11 at 14:53
show 5 more comments

3 Answers

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
1  
is right - SETTING EXPECTATIONS IS EVERYTHING. Based on my experience of freelancing, I share his view and upvote his answer ;) –  kartz 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
add comment

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
add comment

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
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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