I have a client request that I take a program built on with PHP/MySQL and migrate it to another host. He stated that he wanted to makes some changes which we spell out in an agreement. I warned him that anytime you move data there will almost always be some issues. There were some issues which we worked through and he paid me for what we agreed to. But now anytime any bug that arises, he feels should be covered under our original agreement and expects me to troubleshoot it and fix it at no cost.
So…. if this was your client, how would you deal with this?
First and foremost, I realize that an “iron-clad” contract is the key to avoiding an issue like this. However, even when you have things spelled out fairly well, it gets client/vendor relations get muddy when you hit those “gray areas”. In a perfect world, I prepare the perfect contract, hit every deadline and have thousands of satisfied customers who NEVER question me. Unfortunately – that is just a dream. Further, after being and freelance developer for almost 15 years, I get so frustrated continually running into these issues like these. Do you? Please share your thoughts and experiences.
It's been my experience that technology is changing so fast there will always at least be "tweaking" that needs to be done.
Seems to me once the client signed off on the project further work would fall under the maintenance agreement portion of the contract no?
Thanks for your response, Mittineague.
Absolutely. And I have proposed an ongoing agreement. BUT.... let's say that this is your client. You offer him a maintenance agreement and he says to you, "I don't understand why I should have to pay more for a system with errors that I think should have been fixed?" .... and your response would be _____________
On some level, I can understand where he's coming from, but there is NO way to forecast what may break in the future or what bugs existed prior to the move.
I agree with Mittineague, any work that is not part of the original agreement is subject to a new contract/agreement specifically addressing said work. I've been freelancing for more than a decade and stating information like this up front with your client is essential to avoiding sticky situations.
It would depend on whether it was something that was broken but not caught or it was something that was OK but later broke because of circumstance beyond my control.
For example, I write code that works for the current version of PHP. Later the client's host upgrades to a newer version of PHP and since my code used what has now become deprecated it breaks. As a professional I would of course not use code that I knew might become deprecated, but I can't tell the future.
Unless there was a maintenance agreement, any further work woul be a new contract.
If on the other hand it was something I did wrong that the client didn't nottice straight away then personally I would put effort into fixing it for free even if not legally obligated to. It's a matter of how I look at "professionalism". Not "I make money doing this" but for me "I always do the best I can and take pride in my work" and "I always endeavor to improve my skills".
Typically with a contact there would be a deadline that work is to be completed and the project be considered complete. From that point on any bugs etc. that were not caught would be handled under a separate contract/project. Depending on how the contract is worded though that might not be your case.
Thanks all - I really appreciate your insight. Just to put a cap on this issue, here is what I ultimately up with to send to the client:
"I'm happy to assist with further troubleshooting and debugging of the system, but please understand that this type of support request falls outside of the initial scope of work. Therefore, I recommend putting an ongoing maintenance agreement together immediately; or please acknowledge & understand that any support requests will be billed at the our regular rate of xx/hour. Please let me know how you wish to proceed."
Pardon my poor punctuation. I'm a web developer... not a grammarogist!
In similar situations where I know there will be a few issues to deal with I usually stipulate a time period for bug fixes which is included in the initial contract, this way the client will have say 30 days in which to report any bugs and they will be fixed within the original price for the project. After the "30 day" period any changes then become chargeable at my normal hourly rate.
Your situation is common one and this is just not for the freelancer but also for the firms as well. Important point is the contract that you signing in.
To avoid such one need to specify the period of free service for any bug or error after project is finished. After this period one should charge for the work. Some common point to be clear before the you start the project as to avoid frustration from the client.
UGH -- I just read my original post and I'm so embarrassed! I guess that is what happens when your fingers can't keep up with your brain. :-o
Don't worry about it. My brain sometimes can't keep up with my fingers - which is a much worse problem. :lol:[/ot]
As a tip, the easiest way to avoid post-launch scope creep is to get the client to sign off on the deliverable. That everything is working, they are happy, etc. At that point, the project is COMPLETE. All projects you complete, it then makes sense to recommend a basic ongoing maintenance package (highlighting issues like this as potentials) to protect everyone.
Just remember, clients aren't devs, and can't read your mind. To them, this is like buying a new car, and then the engine falling off a month later. They "took care of it", and it broke, for which they will go to the "manufacturer" (you). Sometimes it's worth fixing for free (if they'll be a long term client, and you're going to "invest in the relationship"), but if you're going to do this make sure you tell them you're doing it and WHY (otherwise they'll start to expect it).
I like bluedreamer's approach!
Sounds sort of similar to "closing" on a house... You get your final 'walk-through", and after things are signed and closed, you own it as-is!! (Oversimplification, but you get what I mean.)
@ OP: It would be helpful if you described in greater detail what work you did, and what "broke".
From what I see the problems are not in the original agreement and you took the money. So I would send him an invoice upfront ( money first, work after payment ) for everything.
Now also depends on how fast the problem are resolved. If you do them fast you could skip the payments as you would like that client to work with you on another contract. But also here at 10 fixes ( example ) I would say: pay me 10$ for any other problem.
Now if you want to do maintenance for free you say nothing and just fix. For this case also send me your skills
But now anytime any bug that arises, he feels should be covered under our original agreement and expects me to troubleshoot it and fix it at no cost.
This was meant to be included with the above post of mine...
I would have outlined that in the proposal, in a scope of project section, and made it clear that they understand what they are agreeing to.
But if this is still going on, call a meeting, or if you are uncomfortable with that, call them over the phone. In either instance, you want to tell them that though they may feel or have interpreted that the original agreement was to have this specific task completed every time without additional charges, but the proposal outlines what the actual responsibilities were and this is not the case. You can say something like, "I really enjoyed working with you on this, and I did resolve this issue a few times already, but it's not feasible to do time-consuming work without being paid."
I liked your second post, it was well worded. That sounds like a great way to deal with it.
This topic is now closed. New replies are no longer allowed.