At one time, accounting for IT was pretty straightforward. Large companies had mainframe computers, really big servers, running all their systems. The mainframe managed the network needed to move data to storage and handled all the communication between systems. Programs or jobs running on the mainframe where given account codes which where assigned to departments. Utilization was tracked by these account codes and the cost of the mainframe usage was allocated accordingly.
Jump ahead to today and the environment is much more complex. Today we have many servers, multiple ways to deliver data storage, and networks that span the globe. A system is no longer a single stream of data processing handling payroll or claims processing. Systems today are a web of servers, data, Service Oriented Architectures (SOA), and Cloud computing. Accounting for IT has become just as complex as IT itself. We no longer have one large cost base the can be allocated based on utilization. Properly accounting for IT requires putting IT in the context of the business. This is most effectively done by properly defining both Business Applications and IT Services.
The example below gives a high-level view of all the costs to be considered when developing a Software Product. The diagram indicates the labor costs associated with Business Analysts providing the business requirements. The business requirements consist of two main parts, business process and business data. People skilled in business process and data modeling should be engaged at this point of the project. The process and data affinity provides the guidance for the overall solution.
Once you have a logical view of the solution, the next level of cost is again labor in terms of technologists and developers.
In order to actually develop a solution, you need the appropriate infrastructure. The infrastructure costs and take many forms. In some cases, a company may have the own servers, data storage and network services managed internally. More and more infrastructure is moving to the cloud to services like Microsoft Azure and Amazon AWS. In either case, these costs are part of the overall cost of your software product.
Organizing your costs in these broad categories provide a very good way to understand and manage the cost of your software product.