It is important to understand that the indeterminate aspect of most software projects is the business requirement, not the technical software development.
So software projects should really be called ‘business’ solutions. Not ‘software’ solutions.
How do you attach a price to an uncertain outcome? At a rational level, the answer would be: You can’t. This means you either provide an exhaustive specification of the exact outcome or take a leap of faith based on industry experience, intuition, and your own commercial or emotional drivers.
A new business solution can rarely be specified exhaustively before the project is nearly complete. This is because we all know from experience that current levels of knowledge grow as projects progress, and that the more is understood, the more the requirements keep changing. This continues right up until the system is declared ‘finished’. And most finished systems will have an immediate requirement to make more changes. Why? Because commerce is restless and dynamic, and is constantly being refined. Therefore, the project process itself is the ultimate specification.
Yet providing a price for software, in advance, is nearly always a requirement. Generally speaking, this is not unreasonable. Companies want commitment, and they want predictable budgets.
If a team of professional business systems experts commits to an uncertain outcome, they should rationally charge a ‘risk’ premium. However, because it is difficult to price the outcome, it is difficult to price the risk premium. Risk pricing then becomes a subjective and emotional debate. No exact formula can be applied. This result is disappointed business leaders and disillusioned project teams.
Arguably, the most effective way to price a business solution that involves software development is to first decide how much you should spend. In other words, how important is this solution for your business? What is the price of NOT having the solution? Can you live without it, or is it a mandatory requirement for staying in business, making revenue or improving profit.
If you really need it, introduce industry experts with prior experience of the same or similar systems to provide scope, skills, and cost guidelines. Industry experts have an experienced and realistic view.
Add in your own contingency for project duration and cost. Consider the implications of spending more than you wanted. Refer back to how important the solution is to your business. And then take a leap of faith!
Once you decide to proceed, you have to accept that you are in the hands of the process itself, and that project budgets often go up. They rarely go down.
Compile and build your project team with the right skills and personalities. This is a critical step and takes careful recruitment and planning. It requires a flexible staffing approach to get the right people at precisely the right time. Staff costs are usually the biggest cost, and this point is usually ignored when it comes to staffing up, and staffing down projects. External service providers can help with this.
Recalibrate your budget, progress and timelines every two weeks. Make sure the team works hard, is engaged, and is supported, nurtured and consulted through the entire process.
If you have the right team, and you introduce the right skills (people) at the right time, you will have optimised your project. This means you will pay the going rate for your solution. If it is important enough for your business, this will have been the right decision.
And as always, it all rests on who you asked to help you!