What is the ideal contract model to use with sub-contractors, and is it any different than you would use with a lead contractor? I’m curious myself, and so I’ll just post a couple of quick thoughts and I encourage you to share your thoughts with me.

In July my local agile user group, AgileCville, focused on the topic of agile contract models. We had a great discussion, primarily around the contract models presented in this excellent blog post by Peter Stevens. What I particularly like about this classic blog post is how he describes the way each contract model affects the interaction and cooperation between client and customer.

In the course of our discussion, two of the contract models presented in that blog post stood out as our group’s favorite ones to use on agile projects. The first was what Peter calls a «Phased Approach.»

Phased Development,  Image by Peter Stevens

For the full explanation, please see Peter’s blog post. This is what I use most often with clients, and it’s basically a «pay as you go» approach. You pay me for each iteration of work at either a fixed rate per iteration or a fixed hourly rate, and we both have the option to end the project after any given iteration.

Another interesting model presented in the blog post is «Money for Nothing, Changes for Free».

Money for Nothing, Changes for Free, Image by Peter Stevens

Once again, I refer you to Peter’s blog post for a full discussion of the contract model. I really don’t like the title, but the model itself is interesting. In short, you agree with the customer on an estimate for the total work at the beginning of the project. The developer charges time & materials until that estimate is reached, and if it is exceeded then the developer will only charge at-cost rates or at a fixed lower profit level (that’s the changes for free part). If the client wants to end the project early, which should often happen in a good agile project, then they just pay the developer the remaining fixed profit in order to cancel the rest of the project (that’s the money for nothing part).

I’ve worked as a subcontractor many times, and in those situations I am usually just paid on a time & materials basis. If the client is on a fixed price contract, then I may also be held to that same constraint. And when I’ve hired subcontractors, it has been on that same basis.

But what is the best way to contract with a subcontractor, and is it any different than the way a lead contractor should contract with the client? Are there times when they should be different models? For the moment I’m just wondering out loud since I think it’s an interesting question, so I’d love to hear your experiences.