Well we have all got our knickers in a twist here, haven't we? The technically correct, but not necessarily useful, answer to your query is 'it depends.' Not very helpful I agree but read on...
As has already been noted, unless you put in some nasty clause into the contract about the IP rights to the code belonging to you, all modification must be done by you or your authorised representative etc... then they can do whatever the hell they like to the code, either themselves or via another contractor and there is very little you can do about it. BUT they cannot force you to do anything to the code that you haven't included in the contract - provided that you've reasonably commented the code in line with good development practice - unless they have some kind of leverage, non-paying of bonus, witholding other forms of payment etc...
This leaves you with several options...
- Finish the job and comment the code - Okay, mybe the support guys don't like you but at least everyone ends up happy and you end up with the money for the time taken to do the additional work. (You did put in a clause about any changes in the requirements being subject to additional charge, didn't you?)
- Tell the boss to get knotted and leave - unless you've let them get some kind of leverage over you, you can do this and still get paid (probably.) The downside of this is that if you've overlooked something then you could get sued.
- Try and reason with the boss and explain to him why commenting every line is pointless - Okay, I'm going out on a limb somewhat here but I'm including it for completeness' sake.
Personlly, I'd stay and comment the code: This should at least engender some goodwill from the PHB and will keep you in gainful employment for a while longer. If they really want to give some other muppet the code to ply with, they will anyway - this way they will at least consider asking you to come back and do the job (if you want to...)
- If anyone is going to get it in the arse, don't let it be you - get a lawyer to look at all contracts and think about things like bonuses, extra charges for change requests and so forth.
- Sometimes people break contracts - have a contingency plan: they might just not pay you your bonus for just such a reason, carry a loaded lawyer at all times just in case.
- Be totally anal about your contracts - this way you'll hopefully have all the bases covered.
- This is why most software comes with a EULA which reads like the Warsaw Convention
- If it does come down to court - the only people who ever win will be the lawyers.
The main point here is that the contract should clearly state what the expectations of the company are and what should constitute a reasonable fulfilment of these criteria. That way if things get nasty, chances are that their lawyers will tell them to settle out of court.
PS - IANAL, usual stuff about not being held responsible for believing me yada, yada yada.
"What this book tells me is that goose-stepping morons, such as yourself, should read books instead of burning them."
- Dr. Jones Snr, Indiana Jones and the Last Crusade
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.
| & || & |
| < || < |
| > || > |
| [ || [ |
| ] || ] |