Are you evaluating a software asset for a potential purchase, investment, decision making for the future, possible termination, etc? Here are some questions you should consider:
Is this a revenue generating asset? How much revenue does it generate? — Establishing the true business value of a software asset is a critical piece of the evaluation process.
Is this a cost saving asset? How much cost does it save? — While cost-saving measures can indeed be a viable goal, it is important to understand the true cost savings: time, money, and any future versions necessary.
Does this asset have some other value? What is its value? — If you are evaluating this asset beyond business value, project leaders must discern exactly what that additional value may be.
How many clients use this system? How many users do I have? How do I value each client/user of the system? — If your software asset is used by a large number of your clients, you should consider how any updates or changes will affect those users in the future.
What was the cost of supporting (maintaining, fixing, basic feature addition, deploying, patching, etc.) the application for the last year? What does it cost to keep the users happy? — This question is about more than just keeping it running; it forces project managers to take a holistic view of the development process.
What is the state of the core and non-core technologies built into the application? Will the technologies be supported in the future? How long will that support last? — We all know how quickly technology can ebb and flow. While it is nearly impossible to always predict the next big shift, you should always keep an eye toward trends to ensure you're not caught unaware.
What is the future cost of maintenance? Will there be developers who can work on this technology? How much time will it take to fix things? — Additionally, you must take into account whether or not you have the time, money and personnel to stay on top of any maintenance needs so that your users don't suffer from any lags in updates.
Will we need to rebuild this application in the future? Will the application scale up if the user base grows? — Unfortunately, application rebuilds are a fact of the technology life we've chosen. However, while that task may seem daunting, it can often mean that your business has grown, and along with it, your user base. Plan for this.
What is the cost of downtime should the application be offline? Do I have a contingency plan if the software is offline? — Things happen. Connections are interrupted, and bugs pop up. Take into account any potential time the application could spend offline and know exactly how it will affect you and your users, and what your plan is in the event it happens.
How secure is the application? What kind of data does it store? If that data were exposed what would the cost of that be? — Don't be a statistic. Daily news is rife with stories of data breaches. Taking extra time to consider security on the front end will pay dividends down the line.
A code audit can’t answer all of the above questions, but it can help you get started with understanding what you have, so that you can make the best-educated decision possible on how to move forward.