A big problem with software and people who write software (often) is that software doesn't like all the ways that human beings misbehave, change their minds, don't have immutable states, and don't fit into the categories you build for them.
So any system that has a duty to serve everyone eventually ends up with an operational component that has almost as much human interaction and problem solving required as the software side of it. Or the software has to be really smart or complex.
Tech companies don't like that because that increases a lot of costs. For some companies, they manage to convince their users to behave well enough to fit into the box. Other companies have to reduce their profits, or go kicking and screaming down the path of accepting the cost of business.
Example: Public electric company wants to switch people to smart meters to reduce the cost of going to read every meter, more reliable operation, easier billing, turn on/shut off, etc. Reduce the number of legacy billing systems. People turn out to irrationally not want smart meters. Now utility needs to maintain 2 systems, and an exception list of people who don't want the smart meter system, and still have to run trucks and meter readers, and procedures for people with old meters.
If something is to be declared a utility, the tech company had better gulp in fear of what's required. But we better as well, if we're thinking of wanting our software to be turned into something that involves those obligations and costs too. There's a reason that Google (well, maybe other tech companies) bring you new things, and the electric company doesn't. It's not all roses.