Fixed Price vs. T&M

Fixed_Price_vs_T&M

I don’t like fixed price contracts, or at least not in my industry – software design and build. It’s not that I don’t like constraints and deadlines – on the contrary, I think they help one focus and sometimes accomplish more than within complete freedom of action. It is, however, artificial constraints that urge me to consider alternatives.

The most prominent alternative to fixed price is the Time & Material, or simply T&M, type of contract. I will assume that the differences between the two are obvious and won’t bore you with explanations of what they are. However, I will put them head to head in order to show why my feeling, which has gradually turned into a strong opinion through experience and analysis, indicates the fixed price model as the inferior one.

A couple of considerations before we get to it:

  • This comparison is done in the context of  the software delivery (design, development) services industry. This is not to say that the arguments would not apply to other industries, only that I am most confident to talk about the former.

  • I am making an assumption, albeit a strong one, that a fixed price contract necessarily implies upfront requirements that allow for a decent indication of expected effort. After all, if the requirements are not clear, how would someone then be able to size work and thus accept obligations of a fixed price contract?

  • The opposite then, although only optionally, is true for T&M. This means that there can be a level of upfront requirements, for instance, enough to gauge an expected budget, but they are not required, because a budget can also be set on mere availability of financial resources or a simple spending appetite.

With this in mind, here’s why I believe clients would be much better off with T&M contracts versus fixed price.

Fixed price contract myths

To begin, let’s look at the main reasons behind choosing a fixed price contract over a T&M. The very word ‘fixed’ implies that there is a better (perceived) clarity around the object of the contract, which in turn provides stronger guarantees relating to:

  • Total cost of delivery

  • Definition of final deliverable

  • Timeline of delivery

Let’s look at each one separately.

Myth #1. Fixed price contract will help me manage costs better.

It will help you manage costs. However, it won’t let you do it better than a T&M contract would, as it’s just as easy, and just as common, to set up a budget for the latter.

Even if we assume that maximum spend can be equally well controlled by both, I would argue that business value received for the budget would be lower in a fixed price engagement, and here’s why:

  • A vendor will always overestimate effort required to deliver the outcome in order to ensure against the risk of not doing so, and the client ends up paying more for the equivalent amount of work, or receives less for the equivalent budget.

  • Part of that budget will also be spent on change management overhead, as opposed to delivering additional business value through software.

Change management is an important consideration here. Since a fixed price contract shifts all risk to the vendor, after contingency premium, change management is vendor’s primary tool for mitigating that risk. Since the purpose of change management is to identify any deviation from baseline requirements, price it and charge for it as additional work, this more often than not results in the final cost of delivery ending up higher than that in the original contract, thus hindering the effort to control total spend.

Myth #2. Fixed price defines final deliverables better.

Even though the name refers to a fixed price, or fixed fee, what really sets it apart from a T&M contract is a fixed scope. However, I think it’s needless to say that in most projects, especially in software projects, definition of exhaustive detailed requirements prior to commencement of delivery is very impractical  – not impossible, but impractical. What makes it so:

  • While people are really good at saying what they like or don’t like about something they see (one of the fundamental ideas behind agile delivery), we are quite bad at saying in sufficient detail what we want upfront. Which translates into incomplete or inaccurate requirements and the necessity for continuous requirements’ refinement.

  • Our own experience with upfront detailed requirements shows that due to changes in direction and priorities, as well as feedback to product deliveries, up to 40% of original requirements (including designs) do not make it into the final product. This is pure wasted effort.

Say, you do decide to define full requirements upfront. This requires a very concentrated effort and exceptional analytical skills. However, even if it is done, the following financial implications have to be considered:

  • Postponed revenue. Gathering and refinement of requirements is a time-consuming activity, and an attempt to accomplish it before beginning of development is done at a cost of delayed development and thus time-to-market.

  • Higher cost. If you contract specific resources, such as visual designers, you would be forced to use their services longer, because not only would they need to work on requirements, but also provide support to developers during delivery, as requirements are never good and clear enough on their own.

Therefore, a fixed price contract type is only applicable in a situation that is impractical to begin with.

Myth #3. A fixed price contract provides me with guarantees of when the final product is to be delivered.

This is true. If a vendor is falling behind a delivery schedule, the team can be ramped up, or development speed increased in other ways, if necessary, to meet the delivery deadlines. However, the same can be achieved with a T&M contract when working towards a milestone in a release or delivery plan. After all, a T&M contract often only defines the daily rate and total budget with sufficient flexibility in budget burn rate while working towards delivery goals.

Furthermore, the fixed price approach implies that, in order to deliver a fixed scope in a fixed amount of time, one needs to indicate, evaluate and contain any project-external influences and dependencies on any third party or client’s own internal resources that can impede a fluent delivery of the final solution – an extremely difficult task that often ends up with inflated SLAs and other commitments that are designed to act as insurance against non-delivery as opposed to reasonable coordination of efforts. With a ticking T&M meter, on the other hand, it is in the client’s best interest – mind you, both for vendor’s (smooth uninterrupted delivery) and client’s (efficient spending, fast delivery) sake – to ensure actions of different parties are orchestrated within the reasonable planning horizon to minimise/eliminate any downtime of project resources.

Product & requirements management

OK, so if we take away all the ‘comforts’ of the ‘clarity’ of the fixed price contract, and move all the risk back to the client, how can I possibly say that a client would be much better off with a T&M contract? Because, believe it or not, this is exactly what I am saying.

Well, the biggest issue, which I have witnessed all too often, is to do with the mentality behind a fixed price approach. Once a fixed price project is signed and in the drawer, the client goes into a state of mind which is something like ‘Ah… I can finally kick back, relax and just wait until my product is delivered to me’. And while this might be true for when you order a pizza, this is never the case when you order custom-made software.

What is the single most important input into software delivery? It’s requirements. There’s a reason why Scrum identifies Product Owner as indisputably the most important role in a project. And while development, QA, design and a number of other skill-sets are extremely important, it is the business value delivered through well conceived and prioritised requirements that determines success and failure of a project to the business.

And get this – product/requirements’ management is always (or should always be) the function of the client. And while T&M approach leaves all the risk with the client, it is an illusion that this risk can be outsourced or sold at a premium. The only way to deal with this risk is to manage it, and the best and only tool to do that is good requirements’ management.

I have already made a point that it makes little sense to prepare upfront full-detail requirements, but  more often than not one would want to do some upfront requirements definition/design – only enough to understand the scope of the project, inform architectural considerations as well as allow for very high-level sizing and estimation – never a commitment. Instead, as requirements are being produced and refined, they are also prioritised to make sure that more important functionality will be implemented before the more trivial.

So, where fixed price approach is trying to box requirements with time and cost constraints, T&M merely uses either or both of the constraints as a line which can easily be crossed (through trade-offs) while performing the task of continuous (re)prioritisation with the goal of delivering highest business value within the constraint.

So… what’s so great about T&M?

I believe that what a T&M contract does is create one simple thing, and that is a healthy collaborative environment that is critical to any project’s success. And it does so by correctly defining the two key ingredients of a good project:

  • Skill-set. The very reason for a client to consider a service provider is the need for specific skills (design, technological, IT architecture, project/programme management, etc.) that it lacks within its own organisation. And a vendor provides these skills at an agreed price – the daily rate.

  • Leadership in the form of requirements’ management, as it not only entails the direction of the product to be built, but also bears the responsibility of success or failure of the project. I believe it is self-deceit that this responsibility can be outsourced, or concentrated into a short effort before the beginning of the project.

No project will succeed without these two components. And if T&M provides a great basis for these working together, why the overhead of a fixed price?

Conclusion

This article is, without a doubt, very one-sided in favour of T&M contracts. And for a number of good reasons which, if I did a good or at least a decent job, are clear and indisputable. However, it would be wrong to say that there is no place for fixed price contracts – there certainly is.

What kind of project could qualify for a fixed price? A small one. How small is small enough? I believe the best way to gauge that is to see what project management approach you would feel more comfortable applying:

  • If the requirements are small, clear and detailed enough so that you can construct a robust waterfall plan that you are confident you will deliver with little slippage, then there’s no harm in going fixed price.

  • However, if you think that too much time would be wasted on getting a deep understanding of requirements at the outset of the project, and a resulting sequential plan still urges you to slap a big fat contingency on the price, then agile approach with a T&M contract seems a better candidate.

In any case, when you think about what services we normally buy for fixed price, it’s usually something relatively simple, something repetitive – a shoe sole to be repaired, a haircut, a wedding photographer hire even. However, you rarely expect a price upfront for fixing a car after an accident, or for legal services to draw up a proprietary contract without a raft of ‘if‘ clauses. Less so should we expect to give a fixed price for building software, which is neither simple nor repetitive. Agile approach to software delivery was invented for this exact reason that it is so difficult (virtually impossible) to plan out software for A to Z, and if you can’t plan it, you can’t reliably estimate and cost it.

Lessons-learned learned

lessons-learned

Like any self-respecting and forward-looking organisation involved with project management, we want to improve our practices and learn from our mistakes. Therefore we gladly embrace the concept of capturing lessons-learned during and after each project. We try to keep it simple in a basic form of a list of insights, remarks, failings as well as ideas on how we could perhaps do things better.

Capturing lessons-learned, however, is just part of the task on hand. How do we make sure we don’t just leave the valuable lessons… well, unlearned? The insights are usually captured in separate documents for each project, and then they are placed somewhere. And then the next project comes, and you don’t really have time and desire to look through each of them hoping that maybe you will find something useful there.

Our first idea was that we need a central master list of lessons-learned .  Yes, some solution where lessons can be organised and categorised, ideally even tagged, and easily searchable. That way, if one wanted to see what we have done wrong with, say, estimation in our previous projects, one could easily find a list of our past stumbles on that topic.

The first step in everything we do nowadays is, of course, to google it. We tried looking for some software that manages our challenge nicely, or perhaps some tips on how to do it ourselves utilising Google Docs or any other popular collaborative cloud tools. However, we were surprised to find very little information on this topic, most of it being very hazy, with generic advice on building your own database that supports tagging, search, etc. No samples, no demos.

OK, so there’s no quick fix for this. And when you have to build your own software, you think twice. Which we did. We started at the basics and looked at what the solution has to do for us. Here are the criteria we came up with:

* Lessons-learned should be located on the project’s ‘critical path’, i.e. a project manager should have to naturally come to learn from past experiences, as opposed to pausing just to step sideways to look at past lessons, if one remembers to do that in the first place.
* They must be easily accessible and searchable, i.e. you should be able to quickly find relevant insights.
* Ideally, they should be processed, which means that it shouldn’t just say that we did something wrong, but rather suggest an alternative approach or a solution so one doesn’t spend time trying to come up with one.

Having considered these criteria, we decided that the best lessons log to have is… none at all. What we do instead is after each project we process each lesson-captured, with only two possible outcomes for each:

1. Discard, which means that there’s nothing you can do about a particular insight. Perhaps it was very specific to a project situation, perhaps something highly unlikely happened, or maybe it’s a kind of risk you simply cannot ensure against.
2. Action, and then discard. To action a lesson-learned means to update our processes and practices in a way that would ensure we don’t repeat those mistakes again.

It’s a simple and great solution that satisfies all the criteria we’ve raised earlier. Since learning is weaved into our core processes, they are on a project’s ‘critical path’. Also, by updating respective parts of the process, we make learnings relevant to whatever stage of the project we are in (say, altered estimation practices at the beginning of the project). And finally, since we turn each captured lesson into a solution, they are processed and actionable when one encounters them.

So, instead of maintaining a log of captured lessons, we process and then discard each one of them. It’s similar to a to-do list – once you have completed a task, you don’t retain it, do you? (Do you?) Done is done.

Plus, this is a great way to naturally keep our processes updated, which on it’s own is hardly ever a fun and inspiring task.

This is not to say that our project management approach is process-heavy. On the contrary, it’s rather lightweight and efficient. However, we still have light process descriptions or useful checklists for different stages of a project. For instance, one lesson that was captured in a project of ours was a slower than expected start in team communication dynamics, as we had a couple of new contractors join the team. Having processed this insight we decided that it would be a good idea to organise a team social (translate – drinks) at the project outset. So we added an item to cover this to a project initiation checklist. It is not a prescriptive task, but rather one that urges the project manager to think about this, gauge the necessity for such an event and organise one if seen as needed.

So, if you are thinking about a lessons-learned log, don’t. If you have one, we suggest you have a few sessions to go through it, process each lesson with the goal of emptying the list, and then discard the log and never look back.