Any time a service provider is hired to provide something, whether software or a new house, both buyer and seller enter into this relationship with expectations. A buyer expects to get exactly what he asked for at a fair price the seller expects to make a reasonable profit. Any buyer entering into an agreement who cannot accept the seller’s right to a fair profit is operating outside the sphere of “good faith”. This applies equally to the seller who cannot acknowledge the customer’s right to get what they want. This is the minimum basis for a business relationship.
On the surface this seems pretty simple, but, as in all complex undertakings, the “devil is in the details”.
In order for these objectives to be met for both parties, they need to be mutually compatible. In complex undertakings, such as large medical software development efforts, there are various options for such a business relationship. I will discuss the two most commonly considered: Fixed Price and Time and Materials (T&M).
Part 1: The sweet sound of a fixed price quotation – not!
Uncovering the oxymoron of “Fixed Price Project”
When our four children were small we were looking for a larger home that provided room for a growing family as well as a space for my wife’s psychology practice. We found a neighborhood we liked and went ahead with the builder. We had a contracted price and a general list of what was included. Even though his exact costs and therefore his profit were not knowable up front, the builder could offer us a contracted price because the task met two objectives with regard to “unknowns”. The number of unknowns was limited (plans had been drawn up, etc.) and (b) the remaining unknowns were reasonably in the control of the builder. Some unknowns are not in anybody’s control, such as weather impacts on the building schedule, or a sudden rise in plywood cost, but the builder was free to choose his subcontractors and material sources as well as establish his minimum profit range. He has built this exact house before and knew what labor and materials were involved. We signed on and work started.
Typically, in an effort of this type, the buyer will request changes during the building process. Ours was no different. The builder can usually determine what can be done at no charge and what will impact his profit moving a wall 6″ at the architecture stage can be done for little or no charge, but moving the same wall after it’s built is a different matter.
Because the builder had expectations of profit and time frame, we found that when making change requests, we always got a higher than expected price tag. We were locked in with this builder and had no choice. For example, when our then newborn son was diagnosed with asthma during the building process, I approached the builder and asked about a different type of heating system – one that would be less problematic for an asthmatic child. I had done my homework and expected about a $5,000 net increase in cost. When the quote came back at $8,500, I was shocked. Wasn’t I getting some credit for the system originally in the plan that was now to be replaced? Yes, but far less than I expected. The builder had no incentive to disrupt his plan unless he was paid well to do so. Our relationship had changed from free market to a monopoly. If I wanted to change the heating system, I just had to gulp and sign the evidently overpriced change order. But if I wanted to take an item out of the plan, it seemed to favor the builder. When we replaced carpet in one room with wood flooring we got charged the expected market price per foot for the new floor. But what about a credit for the unused, uninstalled carpet? Essentially nothing. It was basically take-it or leave-it.
While this lack of price symmetry disturbed me at the time, looking back on it I see the inevitable dynamics of Fixed Price at play. The initial price (pre-sale) is kept at the lowest possible number to make the offering attractive in the face of competition and still provide minimum acceptable profit. But once the contract was signed (now post-sale), there was competition. So, each new request was governed by the rules in place at the time – which were now monopolistic.
For us, this reality dictated that certain additions to the construction had to be deferred or abandoned simply on cost alone. We went forward and the house got finished. When all was said and done, the outcome was typical of a Fixed Price contract – we, the customer, got something similar to what we wanted but not exactly what we wanted even though we paid more than we expected. Because of these missed expectations and the back and forth negotiations on cost and features, the relationship strained to the extent that we would not use the same builder again. This strained relationship is another typical outcome of a Fixed Price agreement and follows where both parties have missed expectations. And finally, should the project begin to take more time/effort than estimated, there is the additional risk that the provider may cut corners and sacrifice quality. For our house, some of these quality issues did not surface for many years, after any warranty was long expired.
My Fixed Price Experience
- I didn’t get exactly what I wanted
- The cost was more than originally planned
- The build quality suffered due to tight deadlines and compromises
- The relationship and collaboration suffered throughout the project
- I would not use or make a referral to the provider again
Now let’s remind ourselves of the conditions required for a Fixed Price contract to be possible: (a) a limited number of unknowns, and (b) the remaining unknowns are reasonably in the control of the provider. When there are too many variables and/or those variables are outside of the control of the provider, the provider cannot ethically enter into an agreement with sufficient confidence as to the amount of effort required to meet the customer’s expectations (however, this does not stop companies from offering fixed price quotes – we’ll discuss this later).
Enough about house building. Let’s look at software development projects:
In software projects such as we encounter, there are typically many separate components to develop, each with its own risk profile. This may include UI design, database design, communication design, interfacing to proprietary customer hardware, intensive graphics for imaging, multiple layers of algorithmic processing (frequently with “black box” modules thrown over the fence from the client’s R&D department), FDA requirements, safety concerns, watchdog implementation,… you get the picture. And despite the diligence with which the client creates the specifications, it is virtually impossible to anticipate every detail. This is common, especially for large complex projects, and can increase the error in effort estimates. Does this meet the two requirements Fixed Price? No, remember requirement #1 for Fixed Price? Minimal number of unknowns? We don’t have that here and while technically any project can be quoted fixed-price by throwing a huge number at it, that’s not useful for the client. There are many unknowns, and each one represents risk that translates into dollars and if taken on a “worse case” basis, can make a quote look something like the GDP of a small country.
And I should mention that if a client gets a great price, where the provider under-quotes a large amount of work, remember the old adage: “if something seems to good to be true, then it probably is.” Clients should beware of a low quote. Either the provider does not understand the need, or is just trying to stay afloat which is outside of good faith business practice. Either way, it’s not a recipe for success. When the crunch point comes (and it will), and the client asks to see a feature that the provider vows he had never heard of before, work grinds to a halt while the parties put on their battle gear. Very likely the “resolution”, if you can call it that, is that the client agrees to pay for something he thought was included, and the provider agrees to take less compensation than required to add the feature. A classic lose-lose situation and one to be fervently avoided. In product development, both parties benefit from stepping forward onto a path that leads to the same place, and that destination needs to include the client getting exactly what he needs, and the provider getting paid adequately and in step with the market for his expertise.
Above I referred to companies that quote without sufficient information, just to get the business. While we regard this as unethical, many companies don’t see it that way. It is a somewhat common practice that when faced with a list of unknowns, a provider just assumes best-case quotes accordingly – essentially saying, “caveat emptor” to the client. like my builder, they know they will have the client over a barrel when inevitably best-case turns out to be typical or worst-case, so they are reasonably protected. But they are knowingly signaling a cost/effort that is unrealistic. Clients will do well to ask a lot of questions and to be very wary of a low quote.
So, if you have read this far, you’re probably wondering about the house. Once it was finished, we spent even more money to make it what we originally wanted. We decided we wouldn’t build a house that way ever again. In Part 2 of this blog, Why Time & Materials produces the best outcome for Houses and Software, I’ll tell you about my Time & Materials experience building a house, and share my insights into why this approach is the best for software development as well.
Have you experienced a fixed price model gone wrong? I’d love to hear about it in the comments below.
Part 2: Why Time & Materials Produces the Best Outcome for Houses and Software
How to get exactly what you want and pay no more (and no less) than necessary.
In part 1 of this blog, “Uncovering the Oxymoron of a Fixed Price Project”, I shared my experience with building a house “Fixed Price”, and looked at how the same failings of that approach apply to software development projects. In Part 2, we look again at both house and software construction, but this time from the other side: Time & Materials.
So fast forward some years, and we’re in the market for a smaller house. We had lined up the land and started talking to builders. The first, I think his name was “Wolf”, or something like that, looked at the plans for several days and we sat down to review it together. He presented a price as in “This is going to cost you X”. “How did you arrive at that number?” I asked. “Well, it’s an estimated number” was the response, “based on my experience with similar projects”. “So even if it takes less time than your estimate I still pay the whole amount, right? He nodded. “So then to be fair it won’t go above this number, even if the project takes more effort than you budgeted?” He frowned as if in thought for a long silence and replied, “Well if that happens, we’ll have to renegotiate”. So if it costs less, he wins, and if it costs more, I lose. I questioned him unsuccessfully on how in the world this was an actual fixed price, since I bore the risk for both a too-high and a too-low quote, and then we parted ways.
The second builder, let’s call him “Tom”, met with us to look at the plans. “I can come up with a ballpark for you”, he said, “and I’ll bill you as work is done”. This was clearly a different approach. “So tell me how this would work”, I asked, “how would you expect to be paid?” Tom put his hands out, palms up, and said, “You pay me for the actual work done – I will bill you weekly… and if I have to acquire any materials for you or manage any subcontractors, I will pass on those costs plus 10% for my management.” Now Tom had my attention. Unlike our earlier house, we could add or revise things as needed and pay only the actual cost, not some trumped up cost that reflected microeconomics supply and demand market factors in a monopoly. And if we removed something, it came out of the cost completely. My wife spoke up, “So what if we want to change something during the project?” Not a problem”, said Tom, “whatever you need”. He shared his rates for various experience levels of his team members which I thought were reasonable. But this potential relationship had two key factors which are absolutely essential for T&M. Unlike Wolf, Tom came highly recommended to me through a mutual business contact. Because of that recommendation, (a) I had confidence in the work quality, and (b), I trusted him.
Trust is Key
A suspicious client might think, “what if this guy bills me for work done inefficiently or not done at all?” True, that. It probably happens. There may be service providers who bill this way, but the law of the jungle comes back to those who do business outside of a “good faith” arrangement. Likely that guy doesn’t survive at all. Conversely, the firm that has been in business for decades is very, very likely one who puts ethical business practice at the top. Their team members know that they need to be efficient to both meet their own estimates and to garner repeat business.
Let’s say you feel pretty good about the provider based on a few meetings. Should you breeze through an actual assessment of the provider’s track record? Not if you want a successful outcome. It is absolutely crucial that a client have complete trust in the provider. Absolutely, crucial. So simply, ask for references. I have lost track of the number of times we have been asked to step in and correct or even re-do substantial work that was done where the client did not check the other vendor’s references. They found out too late that the provider did not have what it took and the project bombed. Not only does the client need to be assured that the provider operates in good faith, he needs to be confident that the provider has sufficient professional management in place and operating policies to insure that time billed to the project is spent efficiently on actual project work.
Meanwhile, back at the house…
So how did the second house project go? Really, really well. It was just what we wanted. Tom worked hard to keep his efforts in the original ballpark. The relationship was excellent the whole way through and I am happy to count Tom among my friends years later. And when I needed more similar work done, I knew just who to call. The cost was somewhat higher than I expected, but since I made each decision about what was done with the full knowledge of the cost (read: I was in control), I was satisfied with the cost/benefit outcome. And because I was clear about my expectations for quality (and agree to pay for it), it was up to the standard I expected.
My Time and Materials Experience
- I got exactly what I wanted
- Cost was somewhat more than I expected, but was justified
- High level of quality
- Excellent communication and collaboration
- I would use the provider again and refer to him
Unlike the house building situation, where the buyer (me) did not have the option to do the work himself (I am not a skilled builder), in the case of software development, frequently the buyer does have software engineering staff and could choose to do the project internally. Normally, this can’t happen because of conflicting demands on the in-house staff or a specific body of knowledge is missing – frequently reasons we get involved. But in cases where in-house staff takes on a project (which is how the vast majority of product software is developed), they do it essentially T&M.
Imagine how well it would go over if an employer required in-house staff to provide binding fixed-price cost estimates. “Ok team, since we’re not finished, and we’ve used the budget from your estimates, you’ll need to finish this project on your own personal time…” I can hear the recruiter phones ringing now! And incidentally, this is the main reason that internal estimates are virtually always lower than outside estimates. Employees can afford to be optimistic since there is often a reward for optimism and rarely a penalty for an overrun. Not so with an outside provider. When initial estimates are not met, justification details are requested. Typically the project continues, but approval is not guaranteed (and if, when reading this, you think that going “outside” for development comes with a higher price tag, read my blog “Outsourced Software Development: A Net Money Saver“.
Experienced clients know that the estimates are not cast in concrete. New facts may emerge and new features may be required during the project. Sometimes an initial T&M estimate will need to be raised. On the other hand, we routinely complete projects under our budget estimate, in which case our client only pays for the actual work done. Whether the final cost is above or below the initial estimate, this client knows he will get exactly what he needs.
While the words “Fixed Price” seem like they translate to “lower risk”, the truth is quite the opposite. The next time a large project looms, and you look to the outside for skills to complete it, resist the illusive temptation to “nail down the cost”. Find a trustworthy provider with the depth you need and work together. You’ll get what you need, pay only for the results, and build a relationship you can leverage over and over.
I’m always interested in how this distinction plays out for others. Leave me a comment of questions below.
Comments are closed.