Many companies choose to outsource their software developments for different reasons. Application outsourcing has many advantages such as resources availability and spend reduction. But outsourcing has a major inconvenient, which is the loss of control over current projects, in terms of project run, duration and, above all, prices. Yet, there are methods enabling companies to monitor and control the suppliers’ work in progress.
Time-based invoicing vs fixed-price invoicing for application outsourcing
Most of the time, outsourcing agreements are settled according time-based units of work, instead of fixed-prices.
By analogy, it is as if you paid gas based on the time it takes to fill the gas tank rather than on the volume you poured. Fixed-price invoicing seems obvious in many sectors, but not yet in the one of software development. Yet, it is pretty easy to create outsourcing agreements based on fixed-prices and it has many advantages. You just need to know the size of the software and to associate a price to a delivered volume.
Software sizing consists in measuring the amount of software functions that are delivered. The measure unit that is used is the Function Point. That ISO measure amounts to the gallon in the example of the gas station, or to the square feet in construction.
How to control your suppliers thanks to software sizing
Companies who outsource software development are willing to monitor and control their suppliers’ price quotations. In doing so, two questions usually come up.
Is my suppliers’ price steady over time?
To ensure the stability of application outsourcing prices, you just need to proceed with samplings and evaluate the cost per Function Points for the array of demands. A Function Point counter measures the size of those demands, 1,200FP for instance. If we add up the prices of all those demands, 240k€ for instance, we can deduct the cost per Function Points, that is 200€. By reproducing that from time to time, you can ensure that the price is steady.
The second interest of that process is it allows then to settle agreements with a fixed-price per Function Point.
As a matter of fact, sometimes, suppliers cut prices for tenders to get deals based on fixed-prices, knowing that they will make up for low prices adding clauses to the agreement later on.
If you negotiate the price of Function Points first, you will prevent the occurrence of those kind of additional clauses.
Is the volume of delivered software per “sprint” (agile project) stable over time?
In that case, you should be careful not to bring agility and performance measurement into opposition.
Agile projects generally use measurement method based on story points, during poker planning sessions. It is designed to evaluate the effort to produce during a sprint. The value of the story point is team-specific and it may vary over time. How is it possible to monitor performance in such conditions?
There is an approach that consists in measuring the size of the sprint and linking it with the cost and effort of the sprint. For instance, during a six-week sprint, 450FP were delivered by a team of 5 people. That is an effort of 150 man.days, the productivity is then of 450/150=3FP per day and person. A similar calculation can provide the cost per FP.
Weather it is in the case of an agile project or not, it is possible to keep controlling outsourced application development. Thanks to that method, you can ensure that prices or productivity are stable over time. However, note that it is useful to associate those indicators with others such as quality. Indeed, if productivity is steady, but quality decreases, it is actually a loss of productivity.