ROI for a Software Engineering Application by Mark Hewitt
Return on Investment (ROI) is a measure used to evaluate the efficiency and effectiveness of an investment. In the context of software engineering, ROI is used to assess the value of a software application in terms of its ability to generate revenue or save costs. The principle is relatively simple and can be kept in mind as a guide in decision making; some potential choices for example buying versus building can be answered by numbers. Perhaps the simplest case is when an initiative, with all the pitfalls of maintenance and risk, can be reasonably proven to hold less return than even its initial investment.
We can start with the equation itself. To calculate ROI for a software engineering application, one must first identify the costs associated with the application's development and maintenance. This includes the costs of the software development team, software licensing, and any other associated costs such as hardware and infrastructure. Once the costs have been identified, the next step is to determine the revenue or savings generated by the application. This can include revenue generated by the sale of the application or something more complicated to measure like the increased efficiency and productivity resulting from its use.
To calculate ROI, the revenue or savings generated by the application is divided by the total costs associated with its development and maintenance. The resulting number, expressed as a percentage, represents the ROI for the application.
Beyond the equation, when we talk about ROI we include the nuances and harder to measure consequences beyond the financial performance. On the positive side, a software application can improve user experience, brand perception or provide new insights that would otherwise not have been discovered. In these cases, while a financial benefit to the company is the inevitable consequence, it takes vision for a company to perceive the ROI ahead of time.
On the negative side, everyone with experience in creating software knows that there are hidden costs of ownership of code which stretch far into the future: technical debt, legacy code, team retention and culture, and so on. There is always an element of risk also, a subject one can try to break down into its own financial equations but which can be even more elusive to understand.
ROI is a guideline that every business has to keep in mind. For every great sounding technical or feature related idea, it provides a useful challenge and a framework to at least start to evaluate whether it is a well considered business decision. Sometimes it can be satisfied by numbers, at which point it is an easier message to convey, but sometimes it will be equally important but more nuanced to explain. In those cases it will take effective communications across different disciplines and experiences to present the business case meaningfully.