In Agile Software Development, there’s a general fear of talking of costs. Costs are something that leads to budgets, which leads to planning, which leads to big, up-front planning, which leads us to waterfalls. But costs don’t have to follow this pattern, if we truly talk of recording costs after they have incurred and take a lean/agile approach to projects.
Tracking costs lets us know how much we spent on an effort. By pairing this with the lift in revenue or cost savings the effort lead to, we have an idea on what our return on investment (ROI) is. Teams may also fear calculating an ROI, thinking that if an effort did not have a positive ROI, then they did a poor job. This is a symptom of a lack of psychological safety, which is a much bigger problem. But that’s a topic for another time.
Tracking cost is can be tracked 1 of 2 ways: by calculating a team’s cost per story point and extrapolating costs from there, or by tracking the team’s time and account for the team’s individual costs. The first approach is unobtrusive, but requires careful calculations and makes many assumptions. One assumption is that team members are 100% dedicated to their team and 100% of their effort goes to the work the team is doing. This approach will give you a number that is ‘roughly right’, but will not be very precise. The second approach is obtrusive, as it requires team members to record the time spent on various tasks (depending on how granular you go), but will give you a more prescise cost.
Besides calculating a Return on Investment, the biggest reason to track cost is to determine a team’s capitalizable expenses. In accounting, a capitalized expense is the expense invested to build or acquire an asset. If I start a business and build a storefront, that store is an asset. The materials that went into building the store would be capitalizable, as well as the labor costs to construct it. However, once built, the electricity and other utility costs would be operational expenses and would be realized as expenses on the budget as they occur. A capitalized expense, on the other hand, is recognized over a period of time - a time span equal to the usefullness of the asset. For a storefront, that may be 10 years or more, where as fixtures or software will have a shorter span of usefullness, somewhere between 2 and 5 years. As the asset ‘depreciates’ or loses value, an expense is realized.
My father, who’s a banker and an accountant, described capitalizable expenses this way: in accounting, you want to recognize expenses such that they align with the revenue those expenses generate. Having a store front allows me to operate a business and earn revenue, but I must spend money in order to earn revenue from a store front. This includes the operational expenses that are on-going and the up-front costs of building the store.
Capitalizing assets and depreciating their value allows me to recognize large, asset-building expenses as I occur revenue. This provides a picture of how much it truly cost you to earn that reveue. Some expenses, like utilities, are operational expenses. But when you have an asset like a building or software you built, its usefullness decreases over time. The building needs repairs. The software becomes dated. That’s another reason these assets are depreciated over their useful life span: at some point, additional expense will need to be made to update the asset. The software will need to be upgraded, or the store front remodeled to fix wear-and-tear and to stay up-to-date with modern trends.
To know if I am TRULY running a profitable business, I need to consider if I am making more money than both my operational expenses AND my capitalizable expenses. If I spend $1 million to build a store front, have monthly operational expenses of $1,000, and make $2,000 a month, it might appear that I am making a profit. But in reality, it will take me 83 years at that pace to make back the initial investment into the store front - and I will need to repair it frequently over those 83 years! By capturing the capitalizable expenses, I can get a better picture of the businesses profitablity.
It’s for this reason that so much effort goes into tracking capitalized software costs. If I spend $3 million this year on 2 different software projects each, and one is an operational expense and the other capitalized, I will incur a $3 million expense this year for the operational expense. For the capitalized project, I may not occur ANY expense this year if the software hasn’t been released yet. But, once it has been released, I will incur a $1 million expense each year, capturing the depreciation of the value of the software (assuming a usefulness of 3 years for the software).
This is an over-simplified example - with software, there are some activities, like planning, that won’t be capitalized. But by understanding how the accounting works for software, we can see why capturing our costs is important.