With own hardware, scaling is not as easy. You'll have to do a lot more around plumbing too. Networking, security, many other things that you'll have to address. Stuff that has already been solved for you.
And how many die trying due to bleeding all the funding to AWS, instead of running everything off a couple cheap boxes underneath the CTOs desk? I've been in at least one which ran out of money that way.
Don't pay for the future pipedream now, pay for what you need. That "inevitable" dream of near-infinite scale up usually never arrives for most companies. If it does, worry about it then.
Meanwhile, they had to shake off a £1 million a year contract for the next 5 years for 2 DCs. With AWS they were using less than half of that per year (this includes the credits they had). But even if it wasn't cheaper, requesting a new server took days, not minutes. Scaling was not possible. I'll take the credit and potentially get trapped than having to deal with an inflexible mess that is in-house managed infrastructure.
At least bigger orgs are able to afford it by (hopefully) building a cloud on top of their infrastructure, but outside that, the majority should of companies be looking into the cloud. Whether that be AWS, GCP, or the smaller Clouds like DO, it doesn't matter.
Your companies have been wiser and more frugal than mine!
In every case, I've seen the credits run out before there was a penny of revenue coming in.
This. I'm now seeing many younger developers with no exposure at all to hardware servers, only underpowered cloud VMs.
Not sure how to solve this, but I certainly enourage everyone to spend time now and then benchmarking cloud setup vs. local hardware to at least understand the performance spread and cost tradeoffs you're making.
I've seen too many setups paying 4 and even 5 digit US$ monthly bills to AWS, for workloads that could have been served off a single $1000 box without it breaking a sweat.
Especially for internal use (CI/CD, Analytics), you'd rather want to queue a few things up than always having to consider your budget when you want to run something.