Would you agree to this?
Kenny
Posts: 209
A company wants to contract me to make some changes to their existing code. This is the last paragraph in the SOW from them.
"It is you responsibility to perform full system testing after the code updates have been made and to verify these updates are operating correctly. If for some reason any code updates accidentally affect or change other parts of the code, then it is your responsibility to identify and fix. If new code bugs occur because of this and are left untreated, then it is your responsibility to go back onsite to fix on his own time and we will not pay for those additional code fixes due to those errors."
My question is, would you sign this and do the work?
"It is you responsibility to perform full system testing after the code updates have been made and to verify these updates are operating correctly. If for some reason any code updates accidentally affect or change other parts of the code, then it is your responsibility to identify and fix. If new code bugs occur because of this and are left untreated, then it is your responsibility to go back onsite to fix on his own time and we will not pay for those additional code fixes due to those errors."
My question is, would you sign this and do the work?
0
Comments
It would depend on all the other factors, pay, client, future work, etc. They might be wanting to pass old bugs on to your lap by saying you created them. I've dealt with that before, and because you likely don't know what works and what doesn't, there's no way for them to determine the origin of old problems. It also depends on your ability to read someone else's code, absorb it and make changes to it.
If they complain about a bug that you didn't create, it will be your word against their's, and they may not pay based on that. I probably wouldn't agree to that myself, but your situation might be different. I would amend it to say that since you didn't build the project, your modifications will be done on a best efforts basis, and you can't be held responsible for legacy code problems unless they pay for you to deal with it.
I've taken over a few projects, some that were nightmares and needed to be rewritten from scratch, and others that required a small tweak and were good so every one is different. I've stepped into a project where they just wanted TV fav channels updated, which I did by changing some constants, and them all of a sudden they are complaining about all the things I broke that they now want fixed for free lol. I just put the favs back to the way they were and said "No thanks, good luck"!
Paul
I would ensure a copy of the original unmodified code is made visible to both parties before starting work. If it's not already in source control, put it in there. You should do that anyway, even if this paragraph of the contract didn't exist.
Now, what comes next is personal advice from someone on the internet that you have never met and likely lives in a separate country and legal environment than you so should definitely be taken with a healthy side of salt...
If it did come to the situation where an issue is identified and you were called back in, I would happily investigate, however if it is provable these are not related to code modifications you made, bill for this time. If it was your bad, no problems, resolve it and move on. Simple.
The only exception to the above is if you were passed the code and it was an absolute mess. Let the client know that you cannot make changes to this and guarantee system stability and either walk away, or ensure you quote enough to be able to perform a complete reprogram.
I wouldn't touch that with a ten foot pole if I could avoid it. The phrasing just screams "Jerk who is going to fight over paying the bill when the job's done" to me.
If I had to get involved I'd insist on thoroughly documenting the existing state of the system as part of the billable time for the updates before updating anything so you don't get hosed fixing all kinds of crap that never worked.
Either could take hours, days, weeks, or forever. To agree to uncompensated work of unknown quantity is madness, and if the company can't see that, you need to consider pressing for T&M front to back. Or walk.
"Old source code and programming will be kept and will be used where practical to verify system functionality. Any request for future errors or debugging that can be duplicated with the original code(problem preexisting) will be billed on a time and materials basis at a rate of_____ per man, per hour, including all consultation, testing, installation, programming, documentation, and travel time."
Something similar for testing the functional state of equipment. Having them tell you the left-rear speaker in the theater worked before you got there is always a bonus. Always advise a FULL system test, on the clock before touching anything, even if it takes 2 more days just to test.
I've been caught out several times with existing systems.
I have come accross several existing projects where variables are not initialized (especially array sizes) in code and when I re-send the original tkn the program doesn't work or behaves oddly, the original programmer must have set the arrays via a watch window originally then left me a little time bomb.
I've also been caught out replacing dead controllers where the original code did not set the ports correctly, so IR ports used for RS232 don't work, or RS485 ports are still RS232 thus pulling down the lighting systems RS485 buss to ground.
Then there are AMX modules, originally they were defined (device, virtual), I have used modules with the same name where the parameters have been swapped around.
There are so many ways to get caught out, not winning a job then not making money whilst sitting at home is way better than not making money whilst working on somebodies house whilst they blame you for problems you didn't create.