What is Price Per Point?
Price Per Point (PPP) is a new way of charging to build a product. PPP balances the risk of a project between the client and the agency, and it incentivises the agency to work efficiently – and to frequently deliver completed parts of a project while keeping the quality of the work high.
Using PPP we bill clients based on the components that we complete and deliver to them. This has obvious benefits over traditional ways of billing.
Let’s look at how…
The problems with fixed-priced billing
The benefits of an agile approach are clear. It encourages efficiency and reduces the time wasted on a project by allowing the business to make multiple iterative changes to the specification while the software is being built.
But, if the scope of a project is flexible – and changes as the project progresses – it is impossible to fix a price against it.
The problems with paying by the hour
There are a two fundamental problems with paying by the hour (or sprint):
There is no incentive for the agency to work more efficiently – in fact, they get paid less if they do
If the agency’s estimates for a project are incorrect, the client is hit with unexpected costs (conversely, the agency actually makes more money)
The client shoulders the risk.
No link between payment and delivery
With no link the agency can get sloppy – perhaps components remain uncompleted, or technical debt starts to accumulate.
In many organisations Agile has a bad name, not because the methodology is flawed, but because the commercial basis of Agile contracts encourages sloppy practice.
How PPP actually works
There are four straightforward steps to PPP billing:
At a distance we break the project up into its component parts, usually in a workshop with our client. There may be 100s of components.
We then estimate each component using ‘points’ . Using a consistent method, we make estimates of the effort, in ‘points’, that it will take to deliver each component of the software.
In batches the project’s component parts are scheduled for build. We document the specification (acceptance criteria), review the ‘points’ estimate, and fix it for each component. At this point we guarantee that we’ll deliver each completed component for its set cost (or points value) – meaning we carry the risk.
We deliver working software in incremental pieces. Each component is designed, built and tested before we send it to the client. If it doesn’t meet the client’s criteria, it is passed back. And we only get paid after the acceptance of each component.