Here's a simple formula for estimating return on investment (ROI) for your client:
Business Impact / Programming Effort = ROI
- Business Impact (client-provided)
- Programming Effort (developer-provided)
- Return on Investment
The first variable is the level of impact a given feature or application will have on a business. The bigger the impact, the more valuable the thing is.
The client is best positioned to determine business impact.
As developers, we can help the client understand what benefits a feature will provide. But, ultimately, only the client knows how those benefits translate into impacting their business.
The second variable is the amount of effort required to implement the feature or application. The bigger the effort, the more costly the thing is.
The developer is best positioned to determine programming effort.
Clients are notoriously bad at estimating programming effort. What may seem simple to a non-technical person can often be devilishly complex, and vice versa.
Return on Investment
This is the question on the mind of every business that invests in your programming services.
If a project provides $25,000 in value but cost $50,000 that's a 0.5x ROI. That's not good.
On the other hand, a project that provides $100,000 in value and only costs $10,000 to implement results in an ROI of 10x.
One thing to keep in mind (and that you may need to gently remind your client about) is that ROI should be calculated over the life of a project. A project that takes 12 months, costs $50,000, and saves $100,000 in the first year may seem to have an ROI of only 2x. However, if the project has an expected lifetime of 5 years (and likely more) the ROI jumps up to 10x.*
*Truthfully, it's less than 10x because no software project has an ongoing maintenance cost of $0, especially a custom software project.
Remember, there are TWO Inputs
When a client comes to you with a problem they want solved, they will often have a solution already in mind. But they only really understand one of the ROI inputs: the Business Impact.
Clients are a poor judge of programming effort.
If you can understand the WHY behind what the client is asking for, you can often propose a different solution that requires less programming effort while still providing all or most of the business impact.
Cover image created with Microsoft Designer