DaveWentzel.com All Things Data
Understand accounting and you'll understand the trends in software development and IT
(Overheard at the water cooler many years ago)..."Why are we moving to kanban and agile? I don't understand it, our teams always deliver."
(Overheard at a recent SQL Saturday I attended)..."One of our ISVs (Independent Software Vendors) is now offering subscription-based licensing in addition to their standard release-based licensing. The subscriptions are almost twice as much as release-based licensing, yet my stupid company just switched to subscription. There goes my raise."
(Overhead by a DBA in the hallway)..."I can't believe we are moving all of our data to the cloud. Security is going to suck and by my calculations it's going to actually cost us more money. I don't understand the rationale for this. I guess we'll all be laid off soon."
There are trends in our industry that baffle IT folks. The above are just a few examples. There are (somewhat) hidden reasons for these trends.
If you are involved in software development or IT it behooves you to understand this stuff. YOUR CAREER AND FUTURE IS AT STAKE.
Let's dive right in.
Quick Accounting Primer on Expenses
Companies spend money on stuff. These are expenses. Expenses are always classified as either Capital Expenses or Operational Expenses. A table is a good way to visually represent the differences.
|Capital Expense||Operational Expense|
the cost of developing or providing non-consumable goods that support the business.
|the ongoing cost of operating a business.|
|"value"||the expense has a usable life of more than a year, hence it has longer-term value||the expense is consumed within a year and then has zero value|
|example||a 3D printer||the toner material for the 3D printer|
|another example||a new delivery truck||toilet paper (it has no value once consumed)|
|one last example||building a new warehouse that the company owns||leasing a new warehouse from another company that owns the land and erected the building for you|
|accounting treatment||it is added to an asset account and the company's cash flow statement as an investment.||shown as a current expense, recorded immediately and subtracts from income, reducing net profit and thus taxes|
|affect on profits and taxes||is deducted from earnings/reduces profits over its usable life. this is called depreciation||deducted from earnings and will reduce profits and taxes in the year it is paid/incurred|
|extremely simple example||a truck is purchased for 100K and is added as a fixed asset with a useful 10 year life. 10K may be deducted to offset profit/taxes in each year for the next 10 years (VERY simplified example). The annual 10K allotment is handled similarly to opex for that year.||Toilet paper purchases are expensed and deduct from profits/taxes in the year the tp is used.|
One quick note...R&D Expenses
The above table shouldn't be difficult to understand. If it is, just trust me, or do your own research.
Now let's start to get a bit tricky. GAAP (Generally Accepted Accounting Principles) has a classification for expenses called "research and development". These expenses are opex. This is sometimes counter-intuitive for people. If I'm a pharma company my R&D could lead to a breakthrough drug that nets me millions in profits over decades. Shouldn't these be capex? Is this an "investment"?
Not generally. The rationale is that at any point an R&D project might be abandoned and there will be no "asset" to the pharma company.
If you work in software development then you may consider yourself R&D. Right?
But let's not get ahead of ourselves.
Which is better...capex or opex?
First of all, there are a lot of gray areas where a given expense might be classified as capex or opex depending on just how you are willing to bend the GAAP rules and justify your position.
In situations where an expense could be either capex or opex some companies will prefer one or the other based on how it will benefit them the most.
A good auditor/investor/accountant can learn a lot about a company's management and goals by looking at how it handles decisions around whether an expense is on-the-books as capex and opex. Frankly, many expenses, especially IT, like developing and maintaining software, could be either capex or opex depending on your world view. Here are some generalities that I believe that others may disagree with:
|pre-IPO companies||x||Pre-IPO companies prefer large expenses to be capex because the expense can be split amongst many years which has the appearance of inflating current year's profits at the expense of future profits. Pre-IPO companies want to look as profitable as possible to get investors excited.|
|Investors||x||See above. Investors would rather see higher opex because nothing is "hidden" by using depreciation methods that hide expenses in later years.|
|Companies interested in minimizing taxes||x||Costs are accounted for sooner. This also has a "smoothing" affect on profits. Forecasting is easier and you won't see as many huge "one time charges" to profits for some big capex item. (Note that investors don't want to lose their profits to taxes, which is why investors like companies that don't try to hide big capex expenses).|
|software development expenses (R&D) at ISVs (Independent Software Vendors)||x||Many will disagree with me on this. I'll discuss this more below.|
|IT department expenses (including software development) for non ISVs (banks, pharma companies, finance, etc)||x||Here is the sticking point and what I feel is the answer to all of those questions at the beginning of this post. Companies want to move to Opex nowadays.|
Some companies may want to defer as much expense as possible to look profitable (those pre-IPOs). Those companies will want to capitalize as much as they can. Otherwise, generally, companies nowadays prefer opex to capex.
Even within a company there are conflicting interests. Some folks want opex, some want capex. A good CFO/CEO will favor opex because that is what their investors want to see. But within those companies the CIO/CTO may feel differently. Many companies view IT costs as out-of-control. How better to make the budget look smaller than to shift expenses to capex? So now you have the CIO/CTO working at cross-purposes with the goals of the company.
Isn't this stuff complicated?
The Rules for Various IT Expenses
Here are some "rules" for various IT expenditures. Look at the list carefully and you'll see that the trends in our industry today is to move away from capex and towards opex. This has been the general trend in business since at least Enron and the Dot Com Bubble.
|software licenses||x||They have a usable life of more than one year.|
|software subscriptions||x||You are only "renting" the software. Fail to pay the rent and you have no asset.|
|purchased laptop||x||Has a usable life of more than one year.|
|leased laptop||x||No asset after the lease expires.|
|"cloud"||x||"renting"...no asset...do you see the trend?|
|data centers||x||Huge upfront costs. This is an asset.|
|software licenses for software deployed in the cloud||x||Yup, you can buy a license for an IDE and deploy it on AWS and move it all to opex. I'll say it again. If you purchase software that would otherwise run in your data center, yet deploy it on a VM in the cloud, magically the capex becomes opex.|
The Rules for Software Development Expenses
There are actually FASB and IFRS rules that govern how to expense software development. They are very complex. This post is a simplification of the issues. Feel free to use google to confirm. You may find a lot of information that conflicts what I have here. I suggest you actually read the rules and you may find your company is doing things incorrectly, at its detriment. But I'm not an accountant nor do I play one on TV.
First your company's primary business activity determines whether you should be using capex or opex for software development/IT costs.
|Core Business||The company's core business is developing software to sell to others.||The company's core business is not software development but it undertakes software development to increase efficiencies in its core competencies.|
|Example||DaveSQL LLC creates tools that are sold to other companies to aid them in SQL Server DBA tasks.||Dave BioPharma, Inc creates new drugs. It buys DaveSQL's products to help manage its servers.|
|IT expenditures should be...||always opex. People disagree with this...they are wrong. Go read the rules. R&D is always opex. If the ISV cancels the development effort at any time there is no asset.||at times this is capex, at other times, opex. More in the next section.|
For non-ISVs...when is software development capex vs opex?
Remember, all software development costs (well, most I guess) should be opex for an ISV. This table is solely for IT shops at traditional companies. The "phase" of the software development project at a non-ISV determines how the expense is handled.
|Functional design/"Evaluation Phase"||x||If the project is not feasible and is scrapped there is no asset, so it is R&D, which is opex in the traditional sense.|
|Development Phase including detailed technical specifications||x||The outcome is an asset. Even if the software is useless or obsolete by the end of this phase and is scrapped, it is still capex. There is still an asset. That asset may be worthless and can't be sold, but it is still an asset.|
|Post-implementation||x||This one should be obvious. This is production support.|
If you haven't noticed thus far in this post, there is a tendency for most companies to prefer opex over capex. This is not an iron-clad rule, but that is the trend in the business world today. So, if we were accountants/CFOs/analysts/investors we would want to figure out ways to get more opex and less capex from our software development efforts. This helps us pay less taxes.
First thing you should note is that the last table is very waterfall-ish in its "phases". Design to development to ops. But what if we were agile and used cross-functional teams? Could we make some of that capex into opex? Yep. And there's the trick.
Waterfall generates assets too quickly under accounting rules. It has detailed design documents after all...and those are assets. So there's another reason why agilists tout "Working Sofware over comprehensive documentation". I'll bet you didn't know that. Agile, if practiced properly and understood by your Finance Guys, will have less capex.
Agile is the best way I've ever seen to shift almost all non-ISV software development costs to opex. Just get some working software out the door and then bug fix it. That probably seems like an oversimplication to a technologist, but not-so-much to an accountant.
Bending the Rules Even More
You can justify anything you try hard enough. For instance, you can front-load opex using waterfall if you lump that comprehensive documentation as part of your "evaluation phase" documentation. Using that trick we could re-classify just about anything.
Please note that pre-IPO companies can also bend the rules in the reverse direction to generate more capex to make their current year profits higher. Like I said at the beginning of this post, this is all "accounting gimmicks".
The Ultimate Rule Bender...the Cloud
Quick thought experiment...your customer comes to you and says, "Your software doesn't work because it doesn't do X properly." You decide that you agree and proceed to rectify it. Is this work capex or opex? Here is the rule...upgrades and enhancements to non-ISV software is capex...maintenance and bug fixes are opex. So, is the work you are about to undertake capex or opex? That depends. Your customer would probably label the "issue" a bug (hence opex), but your company may disagree and deem it a "requirements change", hence an enhancement, hence capex.
But wait, we don't want capex...we want opex, so do we have to admit our software is buggy to get an opex classification?
Enter the cloud.
All cloud application development, even enhancements and upgrades, is opex because the software is rented. Nice. Now you can get an opex expenditure and never admit that your software was buggy.
More on the Cloud and Software Subscriptions
With traditional release-based licensing an ISV would only make money when the next release was available. This had an unpredictable effect on profits. If you missed a release date you may not make any money. Subscription-based licensing fixes that by "smoothing" out the profits. Recently Adobe moved their software packages to a subscription-only model. When they first released their earnings under this model their profits were down radically based on where most of their customers were in the release cycle. They basically picked an inopportune time to change their model.
The buyer of software loves subscriptions for the same reason. "Smoothed" expenses and no capex.
Open Source Software and "Services"
I'm convinced that the opex/capex debate is one of the key reasons for the rise in the open source software (OSS) movement. Most OSS vendors offer a version of their software for free and then try to make money by offering services. To the user of OSS this is very appealing. There is no upfront cost for the software (capex) and the customization services are opex.
Not all OSS uses this model, but it is prevalent.
Think of every blogger that offers free software to do performance analysis for SQL Servers. Altruism aside, they do this to get you to use their tools hoping that you will attend their seminars to learn more. Or purchases their consulting services. It's really a great model.
A History Lesson and Concluding Thoughts
Back in the Dot Com Days every company preferred capex to defer the hit to profits. And times were good for IT guys who didn't look quite so expensive because their salaries were more-or-less capitalized. Then the dot com bubble burst, the economy tanked, Enron blew up the world, and Sarbox came along. Now most companies want to be as transparent as possible with their accounting. And that means opex and less capex "one-time" charges to earnings.
Every trend in our industry in the last 15 years is geared toward the move to opex.
- Why is there a push to be more agile and to use Kanban? To get us to opex faster.
- Why are developers asked to do support work...a la "DevOps"? To get more people under the support budget (opex).
- Why is every company tearing down their 10 year old data centers and moving to the cloud? (Do I have to say it?)
- Why are ISVs moving to subscription-based software models? So that their customers can opex the "rent". (This also "smooths" the ISV's monthly recurring revenues too).
- Why is your company trying to move your on-premise SQL Servers to SQL Azure (or whatever it is called now)? I think you got it.
It behooves all technologists to understand the basics of accounting and economics. Many of the trends in our industry can be traced to how those trends will ultimately affect profits. You should be designing your software accordingly. I have no clue what the future holds in our industry, but I sleep better knowing that I understand the economics of the decisions being made.
You have just read "Understand accounting and you'll understand the trends in software development and IT" on davewentzel.com. If you found this useful please feel free to subscribe to the RSS feed.