In any custom software development project, there are well-known risks:
- The scope may be underestimated at the start.
- The scope may increase over time (not always a bad thing – often a client discovers that additional functionality would deliver additional business value).
- The development firm may be unable to deliver any working solution at all.
- The project may take more time than anticipated.
- The project may take less time than anticipated.
In a time-and-materials pricing model, the client takes most of the risk, and this is generally accepted because the client will receive most of the benefits of a successful project. Many development firms (including many very good ones) only offer time-and-materials pricing.
They do this because of the problems with the other extreme – fixed-price contracts in which an attempt is made to fully describe the software project in advance, then specify a fixed price to build it. In this model, the development firm takes most of the risk, with some unfortunate side effects:
- The development firm is strongly motivated to interpret software requirement as narrowly as possible, rather than in a way which maximizes the business value of the software.
- The development firm and its client can end up in an adversarial relationship.
- Arriving at a project specification and price can be very expensive and time consuming, so much so that this model is often infeasible.
- It can result in an overly conservative approach to software development, estimation, and design. The client might be quoted a price which covers the highest amount of time than anyone can imagine the project taking, when then becomes a self-fulfilling prophecy.
However, a key merit in the development firm taking on some of the risk, is that the development firm is in a position to affect the outcome. This suggests a compromise.
One possible compromise between these two extremes is referred to here as Shared-Risk Pricing. It works like so: a small set of core software requirements is developed for a fixed price, then the remainder of the project is billed on a time-and-materials basis. That core set of requirement is intended to demonstrate that the developers can deliver working software, encompass the efforts needed to set up development environments, ensure familiarity with tools, and show progress on any unusual/key features of the software.
The client accepts some risks: | The development firm accepts others: | |
Scope creep risk. | Risk that the firm will be unable to deliver a working solution. | |
Risk that the work will go faster than expected getting basic features working. | Risk that the firm will spend more time than expected getting basic features working. | |
Some of the risk of the project taking longer then expected. | Some of the risk of the project taking longer then expected. |
As we start out, Oasis Digital will perform most work on an hourly / T&M basis, while looking for projects where the shared-risk model fit.