Repairing the Fixed Price Model
I’ve been working with a colleague recently, and it has been interesting to see how his company can work with clients to build software applications under the fixed price model. While it is generally the case that outsourcing is quoted on an hourly basis (because of what is seen as inherent risks in the software industry), this group is one of the few that can make a fixed price work.
In most cases, whether software development is being outsourced or developed in-house, there is so much uncertainty in how the project will play out that it is impossible to state up front just how much time it will take to build the application, or how much it will cost. We tend to try to work to constraints and recalibrate as we go, but statistics such as the Chaos Report have consistently shown over the years that many projects are either disappointing or outright failures. Because of the uncertainty up front, there is just too much risk to bid on projects using the fixed price model, unless you expect to either a) use this as a loss leader, or b) expect to rigorously manage change and make your money by billing for these changes.
Either way, someone will usually lose in the transaction.
From the client perspective, to go with an outsourcing group on an hourly basis has shown to provide limited value. The client still retains the risk associated with the unknowns around the project – as the surprises arrive, they are usually still on the hook to pay for them. As is often the case, management of scope is done relatively weakly (as with the software industry in general), but there is an added layer of communication that makes the effort even more difficult to wrangle. Often, that additional effort more than consumes any cost saving that the client might have expected by selecting a vendor with a low hourly rate. While astute clients can leverage outsourcing to balance workload fluctuations for their IT department, most don’t find a cost savings or risk reduction in doing so.
This group seems to have found the right answer to the outsourcing dilemma – they can effectively deliver on fixed price, and in doing so provide the client a dramatic reduction in risk. The trick is to drive effective collaboration with the client, and through deep analysis, significantly reduce the uncertainty associated with implementing the system.
The approach makes a lot of sense. In a couple of very focused sessions, sit down and truly understand the needs of the client. From this, deeply model the problem and solution space, to the point where much of the risk has been mitigated. They are able to nail down the vision and scope of the system at the business level (indeed, this becomes the basis for the fixed price contract), and develop the initial requirements for the system to be built from. This allows both a straightforward implementation and the unique ability to precisely price this implementation for the client.
They recognize that the detailed requirements still have some volatility (though much less than usual, as they have established a clear vision to work from), so rather than ‘signing off’ the spec, they recognize that the the detailed requirements and system design are living (yes, an actual case of a ‘living document’ in action). They use this as the basis for ongoing discussion and clarification with the client throughout the project, and this ongoing collaboration allows them to closely manage expectations throughout.
There are two key differentiators here:
- This group has extremely strong analysis skills. They bring to the table a wide variety of different modeling techniques (they’re not hung up on any single technique), and recognize that these techniques are merely tools for channeling collaboration with the client to gather the appropriate information. They go far more deeply that to merely ask “what do you want”.
- They are great listeners. They recognize that it is the client that best understands the domain and problem space, and their role is to elicit this information as thoroughly and efficiently as possible. They know better than to suggest “this is what you need”.
In speaking with the customer, we get feedback that is almost unprecedented in the field. The CFO of one company clearly recognizes the reduction of risk associated with this analysis-driven model, and is at the point where what started as an amicable relationship has become a strong enduring bond. There is no adversarial negotiation of changes along the way, just delivery of value as expected. Indeed, when asked what the biggest surprise in the engagement has been, it was that “there were no surprises at all”.
The end-user that was involved with the initial modeling sessions had an equally glowing viewpoint. For the first time, she felt that the analysts were actually listening to her, rather than trying to tell her what she needed for her own domain. Unlike previous attempts where even internal IT managers failed to deliver on expectations, she is looking forward to using the system, both for the additional features it provides for her, as well as for all the other stakeholders involved. She has become a true advocate for seeing the the system deployed.
The solution is relatively simple in principle, but rarely practiced in the industry. With well-focused customer-centric analysis up front, they can provide dramatic value to the client while turning a profit. No reliance on heroes, no death marches, just disciplined, predictable software development.
Oh, and profitable repeat business, as well. – JB