|Empirical Trends in Costs for Computer Systems|
Over time, the proportion of the cost of computer systems consumed by software has tended to rise. Figure 1, originally in Boehm (1973) illustrates. In this post, I offer a theoretical explanation of this empirical observation. One might take this post as an illustration of an empirical use of the Labor Theory of Value.2.0 The Model
Assume a computer system consists of equal amounts of hardware and software, both measured in some standard units1, 2. Earlier computer systems delivered less units, while current computer systems deliver more. Next, assume that both hardware and software are produced directly from labor3.2.1 Definitions and Assumptions
Let lh be the staff-hours needed to produce a unit of hardware. Define ρh to be the rate of growth of labor productivity in the hardware industry:
ρh = - (1/lh)(dlh/dt)
Similarly, let ls be the staff-hours needed to produce a unit of software, and define ρs to be the rate of growth of labor productivity in the software industry:
ρs = - (1/ls)(dls/dt)
The last assumption is that the rate of growth of productivity is higher in producing hardware:
0 < ρs < ρh
One last variable must be defined. Let p be the ratio of labor costs to total system costs for a software system:
p = ls/(lh + ls)
This completes the exposition of the model assumptions and variable definitions.2.2 The Solution of the Model
Some algebraic manipulations with the above definitions yields the following differential equation:
(1/p) (dp/dt) = Δ(1 - p),
where Δ is the difference in the growth rates of labor productivities in hardware and software productivity:
Δ = ρh - ρs
This differential equation expresses the rate of growth of software cost, as a proportion of total system cost. The solution to this differential equation is:
p(t) = 1/[1 + c exp(-Δ t)]
where c is a constant determined by an initial value:
c = [1/p(0)] - 1
2.3 Numerical Values
Calibrating the model is the last step in the analysis presented here. Suppose 20% of the cost of a system is software in 1960, and that 80% of the cost of a system is software in 1995. The rate of growth of labor productivity is then 8% more in hardware than in software.
Δ = (1/35)[ln(4) - ln(1/4)] ≈ 7.9 %
The integrating constant for the initial value is:
c = 4/exp(-1960 Δ) ≈ 1.1 x 1068
Figure 2 shows the relative proportion of system costs, as generated by the model with these parameters. Notice how closely Figure 2 resembles Figure 1. The model provides an explanation of the empirical observations.
|Modeled Trends in Costs for Computer Systems|
This post has presented a model, with its attendant idealizations. And that model shows how the empirical observation that productivity increases faster in hardware than software can account for the empirical observation that the cost of computer systems have become mostly software costs. Hardware costs, as a proportion of total system costs have been declining for decades.Footnotes
- This post draws on work I did elsewhere decades ago.
- Floating Point Operations per Second (FLOPs) is a common measure of output in hardware. I suppose one should also specify the power at which these FLOPs are generated.
- Source Lines Of Code (SLOC) is a common measure of software size. I have heard the analogy that measuring software in SLOC is like measuring the size of a house by the number of nails used in its construction. I guess one could always use Function Points (FPs) as a measure of software.
- A natural extension would be to assume both hardware and software are produced solely from inputs of labor, hardware, and software. I am not sure if I ever stepped through such a model in this context.
- Barry W. Boehm (May 1973). "Software and Its Impact: A Quantitative Assessment", Datamation.
- Luigi L. Pasinetti (1993). Structural Economic Dynamics: A Theory of the Economic Consequences of Human Learning, Cambridge University Press.