So here's an immutable principle of all business:
For a business to stay in business it must manage its costs. Without managing cost there can be no hope of profit. Profit is why a business is in business. Sure there is that "let's change the world" mission statement. Or the "world domination" statement. But without profit those glorious goals cannot be met - unless your a sovereign. So managing cost and knowing cost is a precondition for profit. Profit is a condition for staying in business.
We can know cost from the past - these are called actuals or estimated actuals if the invoice hasn't arrived yet. Knowing costs in the future is called forecasting. Forecasting involves estimating. Estimating future cost is part of the immutable process of staying in business. If we can't forecast future cost, it's going to be hard to hang on to those revenues customers are giving us in exchange for some value we've delivered.
Enough of Business 101. Now on to project based business processes. Overrun our project cost for an external customer on a non-government job and our profit margin is reduced.
Overrun our baseline cost on a government cost-plus job and you're going to have to explain why we're a bone head to some contracting officer.
Overrun our government contract by 25% or greater and we'll have to explain to congress why you're a bone head that breached the Nunn-McCurdy limit.
Overrun our spend plan for staff, and someone is going to come and ask why we have more people than we planned. Have no plan for that number of people, the balance sheet is going to show the overrun to people you may have never met and they'll be asking us questions we may not have answers for.
Project performance starts with cost management. It may be likely that our salary is a recoverable (allowable) cost. It may be our salary is wrapped into the bill rate to the customer. But no matter the source of funds that pay your salary, the light bill, the really nice capichino maker, the pool table, Income - Cost is retained earnings. If we overrun our Planned cost, we're going to erode what remains from Revenue - Cost = Profit.
Any one not agreeing must be working for a not-for-profit or a non-profit organization. Cost management translates directly into profit margin goals. Profit Margin is revenue minus direct cost plusoverhead, indirects, and all other non-recoverable costs. Profits are what keeps the lights on. Profit is Net Margin.
So Now What?
Cost is one of two numbers in the Return on Investment equation every managerial accounting class taught us.
ROI = (Value - Cost) / Cost
Unplanned growth in cost reduces ROI. When we hear It's all about delivering customer value, nothing but value, starts and ends with value, ask at what cost? Don't know the cost, you can't determine the NET Value. Simple managerial accounting again. Not developer accounting in story points, not drip accounting in budget fed to your project. Dead Presidents accounting from the bank customers pay into to your payroll account your pay your mortgage from.
Any business not knowing what things cost for the work they are performing, be it internal work or external work, is not going to be in business for long.
Cost is KING
Once we come to understand that, we can now talk to business people and talk to engineers. Because most engineers work on budget. And budget is not the same as funding. Funding can buy bread at the store, It's real money. Budget is a cell in Excel or a number in SAP, or a number written on the White Board.
So Now What, Really?
If we're on the customer side, or we're in the accounting managers office, or the product managers office, or the account executives office, we'll be having a conversation about the cost of the wonderful work we're doing for our internal or external clients or our customers we're selling our product to. This is how business is run.
There is a mythical notion that places like Google, Facebook, Twitter don't care about cost. I'd suggest you go look at the 10-K and search for the term cost. You'll see things like cost of revenue. How much do we have to spend to bring in every dollar in revenue. Business runs on cost. It also runs on products, service, cool things no one can produce except for them, stuff we never ever thought about but they did. But when paychecks go out every two weeks to Chase, dead presidents are removed from one account and transferred to another - you're bank account. The cost of building all those cool, unimagined things requires real money. Spend too much - more than planned - profits go down.
How Can The Business Know What Costs It's Obligated to Pay Next Week, Month, Quarter, Year?
How you ask? They make estimates. Now these estimates may never reach us in the development department. We may only see budget, funding allocation, release of funds, or just a direction to go forth and build cool stuff. But someone, somewhere in the building needs to know the cost of our wonderful work.
This cost can be flat spread - peanut butter spread as we say where I work. A fixed number of Full Time Equivalents with a base cost and burden (fringe, overhead, and indirects). That's the budget for all the people working here. What happens then is we need to know our capacity for work. What can we produce for that cost? Unless we're building transmissions at Toyota, we'll have a variable cost of production. Somethings we work will cost more per the value produced, some will cost less. Software for example is NOT a production line. So if we've fixed the cost of production, the value produced will be variable. How variable? Oh I don't know, let's estimate.
Estimate from past performance. That's the absolute best way. What of there is no past performance, or no applicable past performance? Then estimate anyway. You're seeing a trend here right?
We have to estimate our cost of production in order to know, with any confidence, our future earnings. Where earnings are Revenue minus Cost.
No cost estimating process at the business level is simply nonsense. Now we as a developers may not be involved in cost estimating. But someone is. Let's go find that someone and ask. Do you really not want to know my cost of being here?