- A General System
- Detail Complexity Versus Systems Complexity
- Throughput Accounting for General Systems
- A System of Software Development
- A More Complex Software Development System
- The System Goal
- Financial Metrics for General Business Systems
- Financial Metrics for Software Development Systems
- Predicting the Future
- Framing the Problem
- Understanding Software Production in the Value Chain
- Throughput Accounting Versus Cost Accounting
Financial Metrics for Software Development Systems
More Profit From Software
Figure 2-9 summarizes the definition of the elementary metrics for Throughput Accounting of software development. In order to make greater profit and have greater ROI from software, Throughput (T) must be increased. This means more client-valued functionality must be delivered more often. The rate of delivered value must increase.
Figure 2-9. Summarizing throughput accounting for software development.
The amount of working capital required for Investment (I) must decrease. That means that the costs of gathering requirements must be reduced by finding better ways of identifying and gathering truly client-valued ideas and communicating those ideas to the software engineers.
The Operating Expense (OE) involved in the development of software must be decreased. This means that waste must be eliminated. Energy must not be wasted on undesirable adaptive behavior or production of by-product. Only truly client-valued functionality should be built—energy expended building features the client doesn't value is waste! Due to the acutely labor intensive nature of software development, ways must be found to achieve more with less, to produce more client-valued Throughput (T) using fewer people. The cost of people is the biggest contributor to OE.
To summarize, software development businesses must focus management attention on three things to create greater profits and higher ROI:
Increase Throughput (T)
Decrease Investment (I)
Decrease Operating Expense (OE)
Working Capital Requirements
The figures for T, I, and OE can be used to predict the working capital requirements for a software business. If the rate at which units of inventory (V) are converted into working code (Q), that is, client-valued functions delivered in a given time, is known and the OE for the same amount of time is also known, the average cost to transform a single unit of inventory from input to output can be calculated. The quantity of client-valued functions delivered is shown as Q. An average unit of Q would require the mean amount of OE in order to transform it from an idea into working code—the average cost per Function (ACPF).
If the ACPF is known and the total units of inventory (V) for a given project is known, then the estimated cost to convert the requirements into finished code can be expressed as:
The value for D will be accurate if the definition of an average unit of V does not change during the life of the project. Getting a precise value for D would require understanding the complexity of each unit of inventory and being able to accurately calculate the amount of OE expended in the system to convert the idea into working code. As I will show, trying to work with precise estimates has been a contributing factor in the systemic failure of traditional software development methods. Hence, it is actually better to work with this imprecise measure and to accommodate the imprecision in calculations using it.7
With an approximation for D and using I as the value of the inventory plus the capital invested in the system of software production, that is, in equipment and tools for the development and test teams, the working capital requirements to complete a single project will be the cost of acquiring the requirements plus the cost of providing the software developers with all the equipment they need and the cost to convert those requirements into working code.