Another programmer wants to subcontract me to write, test, and document code. If anyone has nuggets of wisdom they could share regarding the business arrangement, I sure would appreciate the advice. My present plan is to go through specification and break it down into fixed-price deliverables, with the definition of "done" being passing the pre-specified test.

  • 5
    I suggest you seek the advice of a lawyer in order to draft a simple contract up. One that covers you and your clients. – Ramhound May 2 '11 at 13:10
  • 3
    Fixed price deliverables are a terrible idea, here or anywhere else. Bill for your time. – Rein Henrichs May 2 '11 at 14:59
  • 2
    Yes. They are always bad. There are two possible outcomes: 1) you come in under budget and screw your client 2) you come in over budget and screw yourself. – Rein Henrichs May 2 '11 at 17:17
  • 1
    Goal posts in software development are never defined and fixed. Anyone who thinks otherwise is just fooling themselves and setting themselves up for failure. Even if you got it right the first time (almost impossible), markets change, so it won't be right when you're done. – Rein Henrichs May 2 '11 at 17:18
  • 1
    @Rein Henrichs: Fixed-price contracts assume the risk. There's risks in software scheduling, and somebody has to assume them. Typically, assuming risk is considered valuable, so I'd always set a fixed-price contract on the high side. – David Thornley May 2 '11 at 17:29

In all important ways, a client is a client is a client:

  • Treat the other programmer like your customer representative. They must be available to answer questions you have about requirements and etc. You might want to make this responsibility clear in the contract.

  • Do not use fixed bid. Fixed bid is a terrible plan, whether contracting or subcontracting. Walking on water and designing to spec are easy when both are frozen.

  • Have a lawyer help you write up a contract that specifies hourly rate, payment terms (half up front, net 15 or due on receipt, etc), scope, intellectual property ownership, and all the other important stuff, just as you would for a regular client.

  • Make sure their contract actually allows subcontracting. You wouldn't want to be left in the lurch because your client's client fails to pay for breach of contract.

  • Do not use fixed bid.

  • 2
    @OP - if you missed it, DO NOT USE FIXED-BID PRICING. – DaveE May 2 '11 at 17:06
  • 4
    You have to be really smart and extremely experienced to make fixed-bid work. I used to be smart and experienced enough to do fixed-bid. But after twenty years of consulting, I've gotten stupider and more inexperienced, so I only do time-and-materials. Oddly enough, I make way more money and my clients are happier this way! – Bob Murphy May 2 '11 at 17:43
  • @Bob in my experience (and I've done a lot of both), no one is that smart. Your last point rings very true as well. – Rein Henrichs May 2 '11 at 18:21

Beware of the payment terms. You may not get paid until the main contractor gets paid. If you're going to ask to be paid first, you may have to settle for less. Different places and industries vary in their practices and legal requirements. Follow @Ramhound 's advice.


What you need in cases like this is a good contract. It should specify deliverables and when you get paid, and what happens when you don't get paid. It turns out that software people in general aren't all that good at writing contracts, so make sure you have a lawyer help you. It will cost perhaps a few hundred dollars, but that's chicken feed when you risk being stiffed for thousands. (Don't forget to list it as a business expense on your taxes.)

The idea behind a contract isn't to win in court, because you never want to have to win in court. The idea is to make it clear what is to be done, so there aren't major arguments over who promised what and so that any court case will be predetermined (in which case the party that would lose will normally offer a settlement).

If you want to go fixed bid, make sure the requirements and acceptance criteria are nailed down in advance. You will get change requests, so you will need a way to deal with that. Changing things under the originally negotiated price is normally not a good way (although you can allow small changes for the sake of good will). Set the price higher than you think is warranted by the work. You're assuming the risk, after all, and you deserve to be paid for it. (If you're using fixed bid, the contract is more important, as it has to make sure you won't wind up in a position of having to do indefinite amounts of work to collect a definite amount of money.)

So, find a lawyer. Talk to the lawyer about what you want to do and how to write the contract. Let the lawyer know what you're planning to do, as a fixed-price contract will be somewhat different from an hourly rate.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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