The 5 year is arbitrary. Arguably, software doesn't really break or wear out, so the service life is arbitrary. (That's not to say that the OS it's running on doesn't break it during an update). 5 years matches the life of the capitalized equipment on which it runs. I don't have any insight as to the debate around 5 years, but my guess is computers are a 5 year asset.
My guess is the rules apply from other assets, where fixes to bugs and minor updates are opex as maintenance costs. If you make a major change that extends the life of the asset, such as remastering a game or refreshing the UI, or adding a feature, might be capitalized. This would be like adding a lift to a delivery truck or replacing the engine to extend its life.
I think the problem is having essentially a tax on software development could discourage some investment in that area especially from the smaller companies that could benefit the most.
First, the revenue is earned in future accounting periods. For example, you buy a delivery truck. You expect to earn money over several years with the delivery truck. To match expenses with the revenue generated, a portion of the expense of the truck is allocated to each accounting period. If the revenue is in the current period, then there's no reason to capitalize. For example, fast food worker's wages are not capitalized since the revenue is in the current period. The warehouse construction worker's salary is capitalized int he cost of the warehouse because it will earn revenue for several years.
Another test is if it's assignable to the cost of the asset. The CFO's salary isn't capitalized as part of the investment (unless the company literally does nothing else), because there are a lot of projects and it's hard to specifically assign. Selling expenses aren't capitalized because 1) the asset is complete and 2) they are assignable to the sale and not the cost of the asset. Other costs to acquire the asset, such as delivery fees, installation fees, insurance, etc. are capitalized.
Do you own the asset? If I hire a construction company to build a warehouse, they hae nothing to capitalize since they don't own the asset. I do.
And material. If I have you write a shell script that we'll use for the next five years to copy backups between our servers and Azure, and it takes an afternoon, we don't capitalize that. It's just not material.
If it's leased for 90/95% of the cost and for 90/95% of the useful life, it's capitalized. This prevents companies from treating capitalized costs as leasing expenses in the current period.
It’s what software companies do to make themselves seem profitable than they are
What many companies who amortise development costs do is make some enhancements to some software or build new software so in theory generating a greater asset value but the reality is they’re just kicking the can of accounting for developer costs down the road
Have worked in several businesses that amortised development costs and it always comes back to bite you at some point
You don't expect the warehouse to grow rooms and additional bay with each passing year. The warehouse is a capex, the software you bought and expecting to be supported down the line isn't.