Software engineers hired for custom, in house work are not building a fixed piece of software with the intention of letting it loose unchanged for the next five years.
Software engineers hired to build product are not exclusively building a finished product, and are increasingly necessary as part of the expense of operating that product long term. Industry trends have gone towards combining and blending developement, security, operations, and design.
There are businesses that will build a big custom piece of machinery. Think a factory or a mine. That may last for 20 years, but require workers to operate, maintain, etc.
This is handled in existing tax law; building or improving a capital asset is amortized, repairing or maintaining it is expensed. It can be a pain in the butt, this is why accounting is not a trivial profession.
We could (and I think should) treat software the same. Some software engineer work is absolutely creating a capital asset. Some is absolutely high-priced janitor work. It makes sense to allow for both with your tax code.
> Think a factory or a mine. That may last for 20 years, but require workers to operate, maintain, etc.
Before Sec 174, s/w development costs were subject to a choice: amortization as if they were a capital expense, or regular deduction as a normal operating expense. Companies could decide which category to put costs into depending on the nature of the work (and presumably to suit their own interests).
Sec 174 removes that option. Or rather, it narrows it significantly. You must be absolutely confident that you paid developer X for ONLY maintainance work before deducting their salary.
Oh, I didn't realize - I knew 174 made it "must amortize", I didn't realize it could be done either way previously. Very silly indeed how they've done this.
The idea that the software must not be changed over the next five years is irrelevant
The important bit is that it will be used for longer than one year