What is Total Cost of Ownership (TCO) and what are the costs involved in software world?

Gartner defines total cost of ownership (TCO) a comprehensive assessment of information technology (IT) or other costs across enterprise boundaries over time. For IT, TCO includes hardware and software acquisition, management and support, communications, end-user expenses and the opportunity cost of downtime, training and other productivity losses.

The TCO is a vital part of the ROI calculation for enterprise software.

Below are the cost needs to be considered in any software development life cycle:

Software : Off-the-shelf software or development effort usually has an up-front software cost plus user licenses. 

Hardware : The cost of servers and storage to run the software and other costs like backup and disaster recovery.This cost will be considered only for on-prem data-centers.

Implementation: The cost of setting up, configuring and testing software so it can be used in production. Applies to all software, although with custom software the configuration is usually part of development. 

Data Migration : The cost of moving data from the old to the new system, including data format changes

Training : The cost of training employees to use the software.In addition to end users, helpdesk and system admin employees must also be trained.

External system interface costs: Any other upstream and downstream systems integrations cost

Customization: The cost involved in customize off-the-shelf software to the way they work, rather than the reverse. Whenever the software is upgraded, there is a risk of the custom code no longer working. Sometimes the customizations can even prevent upgrades. 

Software maintenance & support :Typically costs around 20% to 25% of the total purchase price per year. With custom software, maintenance & support is an ongoing cost and is often much greater than the initial build cost over the lifetime of the product

Patches: The cost of applying security and bug-fix patches.

User licenses : For cloud software, licenses are typically priced per month, although they usually require an annual contract. Note that if the number of users increases, this cost increases. If the number of users decreases, this cost may decrease but often only when the contract is renewed.

Training: New users come from company growth and employee turnover. Also, when cloud vendors push enhancements some training may be required. 

Enhancements: Applies to custom software where the company must pay developers to provide new functionality as needed, e.g., when the business environment changes or new regulations come into effect. Remember to include documentation and project management costs. Can also apply to customized off-the-shelf software.

User & admin support : This is the cost of helpdesk and system admins and maybe a few analyst/developers who will be supporting the system. Bear in mind that you need to use the fully loaded employee cost, and factor in the costs of managing them.

Disaster recovery & high availability : This ranges from backups through to hot failovers and includes regular testing. With cloud products, it is often part of the standard offering, except for smaller vendors. However, there is an additional cost for cloud products, namely being able to recover if the cloud vendor goes out of business.

Data center :The costs of running the software in your data center like power, cooling and floor or rack space. Should also include indirect costs like security, data center maintenance, management of the data center and so on. If you are using a hosted data center, it is the monthly cost of running the hardware used by that software. Not applicable for cloud platform.

Downtime :The cost to the business when the software is unavailable. Custom software is not tested nearly as well as cloud or off-the-shelf software and is likely to have much higher downtime costs. Off-the-shelf software is more likely to go down than cloud software because cloud vendors invest in things like hot failover.

Depreciation:Writing off the capital cost of the software and the hardware it runs on. This is not applicable to cloud.

Upgrades : These projects can be large, expensive, time-consuming and a real risk to the business. Sometimes also applies to custom software, where a new version is created.

Security : The costs of keeping an application secure, especially if the application is visible outside of the firewall. This is not applicable to cloud

Data export: You want to be able to export existing data in a suitable format. Some vendors make it easy to get data into their systems, but there is little incentive to make it easy to get that data out again so it can be expensive.

Archived systems: You need to keep it running on servers in the data center, with their associated costs. For cloud software, you want the system to be available for reference, preferably in a read-only mode. You want to pay a minimal amount for use of the system, but unless this was part of the original agreement, you could be forced to pay a lot more.

Inactive licenses: Need to keep all user licenses on the system to preserve audit trails, but you certainly don’t want to pay full user costs for an archived system.