Comment Re:You Can't Fix It (Score 1) 133
The problem is that in FLOSS, rejecting code may bruise somebody's ego, but that is it. In commercial development a whole slew of contractual issues come in.
So write the contract accordingly, then. Such as "Code will be rejected or accepted based on merit. When the product ships, payment only for code that got in."
You'll have a hard time putting something that subjective into a contract, you could change your mind about the project half way through and just reject all their code.
Yes - it happens all the time (changing projects, rejecting code and terminating employment). We don't need contracts that specify the quality of the code - but they do exist e.g. secure code standards.
OK. Now I'm confused:
So write the contract accordingly, then. Such as "Code will be rejected or accepted based on merit. When the product ships, payment only for code that got in."
We don't need contracts that specify the quality of the code
If you're saying that at some point during the contract you realise it's not working out, pay for the time spent and terminate early then that's fine. If you're saying that you'll pay based on some evaluation of the end product then the criteria for success need to be very clearly defined at the outset so that the contractor can assess the risk of failure and decide whether to take the contract.
Don't know what planet you live on where that doesn't happen (Planet Couch?).
I don't have any direct experience, I've just chatted to people who are contractors on other projects in our office and the people who hired them. They have been hired because there's an immediate need and no one available with either the time or skills required. The specification is written as well as it can be under the circumstances but it's never perfect. There are some very good contractors who keep getting rehired because they're trusted to deliver without a lot of management and there are some who are over their heads who get let go early. In the middle are the people who delivered as well as could be expected under the circumstances but the results aren't perfect and that's where it gets messy. There's a hard deadline to be met and so something has to be shipped, if the project gets funded for the next stage then they'll try to fix the bugs later, otherwise they'll stay.