As a project manager at Zirous, I am involved with consulting projects from the time they are conceived, until we have a post-mortem lessons learned session. I see how projects start, work through to completion, and finish. I’ve seen successful projects, not-so-successful ones, and projects that limp along toward the finish line; usually leaving either the contractee, the contractor, or both, disappointed in the outcome.
There is a lot of talk in the industry about how to make projects more successful. One of the topics that receives a lot of attention is the concept of managing a project using an agile methodology. Yet, for all of this chatter, I have not seen a lot of discussions surrounding the use and structure of a consulting work order contract that is flexible enough to allow agile projects to thrive. Agile methodology is great for project execution, but projects will still have problems, and possibly fail, due to contract related challenges. I’ve seen some of these challenges first-hand; and in this article I’ll share some of my thoughts on the topic.
Contracts typically come in one of three types; 1) Fixed Bid, 2) Not-to-Exceed, or 3) Time and Materials.
1. Fixed Bid – NOT an Agile Contract
This contract type is not very adjustable; hence its name. Many times, the only way to adjust a contact is through a change order process that can take days, weeks, or sometimes even months. When writing a fixed contract, the contractor will seek to limit the work to items that are very clearly defined. This requires the contractor to know a lot of detail about what they will be doing before a contract is signed. Otherwise, the contractor may overlook something and be contractually bound to complete a deliverable that includes work the contractor never understood.
The contractee will not be able to change anything as the project evolves based on technical advancements or unforeseen decisions that cause a major direction change. Battles over scope creep will be the natural result. The contractee will want something adjusted, but the contractor will be reluctant to change knowing the contract doesn’t pay them for items not included in the original language.
Having to lock everything down in contract language can result in either underbidding or overbidding the project. If things are missed, the contract is under bid and the contractor must make up the difference. Naturally, the contractor will seek to build in some buffer to account for these situations. However, if there is too much buffer, or if work is done much faster than anticipated, the contract is over bid and the contractor walks away with a hefty profit causing the contractee to over-pay for the delivered services.
2. Not-to-Exceed – A Better Agile Contract
A not-to-exceed contract is very similar to a time and materials contract, with the addition of a built in limit. It could be limited by calendar duration, dollars paid, or hours worked, and might be limited by one, two, or all three. Contractors are paid by the hour. Some level of work detail is included in the language, because the contractee typically wants to understand the work that will be accomplished within the contract limit. Changes still require a change order if the scope of work was well-defined and needs to change. And, a change order is definitely required if the limit needs to be changed. Underpayment and overpayment possibilities still exist, depending on the type of limit.
Time and Materials – The MOST Agile Contract
This contract type is very adjustable. If written properly, it allows the contractor to be paid on an hourly wage basis for any work the contractee desires. You don’t need to ever go through a change order process, because the contract isn’t locked down to a particular list of deliverables. Contractors don’t need to understand every detail of the project before getting started. Adjustment in technical direction can be made by simply telling the contractor to do something different. Contracts are never underpaid or overpaid; contractors are paid for every hour they work. These types of contracts do require the contractee to manage their project, set direction for the contractor, and stay on top of progress being made by the contractor. This ensures legitimate progress is being made and the contractor is being diligent.
A More Agile Approach
Define a project with only a high-level scope of work. Outline the major milestones to be accomplished to prevent major scope creep, but don’t lock-in specific requirements and granular tasks. Specify an hourly rate at which the contractor personnel will be billed. Don’t require low-level deliverables, but list them something like, “Contractor will work to develop software for the purposes of …”. Contractee should provide all direction and priority and should closely manage the hours the contractor is spending on requested tasks. If the contractee feels more comfortable, an agreed upon not-to-exceed hour limit can be included to allow a legal break point to determine if work should be continued or stopped. This type of contract structure will allow an agile project to adjust as it moves forward. A well managed flexible project will be more successful than not. And by the way, if you don’t trust your contractor, fire them and hire someone who will partner with you. You’ll be glad you did.