← Back to context

Comment by cj

3 years ago

I'm guessing that this will result in many employers reclassing many engineers into COGS, S&M, G&A, etc (in other words, not calling their work R&D).

This is relatively easy to do. If an engineer is fixing bugs, helping support team, helping sales in any way, participating in customer onboarding, keeping the servers online, etc, a company can argue the engineer is a cost of doing business rather than true "R&D".

In reality, the % of time most engineers spend exclusively on 100% new products is much smaller than you'd assume at face value. Even at a young startup, I'd guess at most 50% of the work is true R&D.

To reiterate, things like devops, managing infrastructure, patching servers, upgrading code, fixing bugs, professional services, etc... none of that is R&D and it's pretty easy for a small company to say that the majority of their engineering expense is not R&D (extremely difficult for the IRS to argue otherwise if they audit a company unless detailed timesheets are kept).

Edit: I'm not an accountant, but pretty familiar with R&D / IRS stuff

https://www.law.cornell.edu/uscode/text/26/174

> 26 U.S. Code § 174(c)(3):

> (3) Software development

>> For purposes of this section, any amount paid or incurred in connection with the development of any software shall be treated as a research or experimental expenditure.

We won't know where the line is until we get guidance from the courts.

A lot of things in real estate that you might think qualify as just maintenance actually have to be depreciated. Like, repairing a roof has to be capitalized since the roof will be around for awhile. The devops equivalent might be migrating from docker swarm to k8s-- the k8s cluster will be around for awhile.

  • The average roof has a lifespan at least an order of magnitude greater than a k8s cluster. Most roofs being put on today will outlast k8s itself.

    Software is a liability, not an asset. Treating the construction and maintenance of this horrible liability knows as “code” is a complete misunderstanding of what software actual is.

    • It's just an example. Another is paint. The rule is close to but not exactly "if it lasts more than a year it has to be depreciated instead of expensed."

      The book value of the k8s work could be completely expensed as soon as it is replaced.

      Also, your belief that "software is a liability" is irrelevant. What matters is that tax law calls software an asset (as does most everyone else, even ones who fundamentally understand it).

      1 reply →

  • > the k8s cluster will be around for awhile.

    without someone maintaining it, it would probably fail by the end of month. That's not considering the constant changes going into it.

"New product" is a distinction without a difference. Literally all software development efforts are in the interest of "new products" depending on your definition of "new product."

  • How is fixing a bug in the interest of a new product?

    • Leaving arguments about new patch releases out, how could we practically track this? Would every engineer log the time they work and track feature work separately from bug fixes?

      4 replies →

    • It's a bit strained, but car or TV companies often put out a new model that's identical to the old model +- some but fixes. There's a line somewhere but the law does not specify the line, it seems

      2 replies →

it would surprise me if the IRS would resolve this favorably for you if your defense was "we didn't keep detailed timesheets"