Cloud Native Blog - Container Solutions

Software is Underperforming and The Future Depends on That Changing

Written by Anne Currie | Aug 2, 2021 7:14:44 AM

“If something can’t go on forever, it won’t.” - Herb Stein’s Law

What will the future of the tech industry look like? 

The challenge facing us all between now and 2030 is no longer how we will persuade the world (or more immediately, our bosses or customers) to become carbon zero. That’s coming whether we like it or not. Our new problem is how, as companies, we can position ourselves to have a business left when it does, and how we make sure our long-term suppliers are still standing. 

The good news is, I suspect the solution to our problem will be to shift the tech industry onto a trajectory that offers far greater scope for growth in this coming world. 

That sounds surprisingly optimistic! So, why on Earth do I think it?

The Problem

Stepping back, what are the climate issues we will be forced to resolve over the next ten years?

As I discussed in my last post, according to the bright folk who look into this stuff, tech has two problems to solve by 2030: 

  • Real-time carbon emissions from the generation of electricity used in data centres.
  • Embodied carbon emissions from our consumer hardware production (plus managing the related e-waste).

Fortunately, green electricity for DCs is now in hand. My preferred way to solve a problem is usually to give it to someone clever to come up with a fix, and in this case that’s the cloud providers. They have committed to solve it by 2030 and the rest of us can either use their solutions or copy them. So, let's put it to one side for now. 

Unfortunately, however, hardware is a disaster area. For end-user devices, the carbon and other pollution from their production outstrips the impact of their run-time electricity use. 

That can’t go on, so it won’t, but what will ‘future us’ do about it?

Solutions

There’s never just one solution to a problem and user hardware is no exception to that rule. There are at least three ways to reduce pollution from it:

  • Recycle it.
  • Improve how it’s made.
  • Make it go further.

We are going to need all of them, but the first two are for hardware manufacturers to address and I won’t cover them here. For me, the third is the most interesting. It is the one that:

  • Surprisingly, needs to be driven by software.
  • Should make the most significant contribution to pollution reduction.
  • Could massively boost our own industry - if we do it intelligently.

So, let’s talk about hardware longevity.

The Holy Grail: Longevity

According to Microsoft, we should all architect our software in a way that means hardware will last longer. That’s about avoiding causing something to become obsolete when it doesn’t need to be. 

Specifically:

  • Don’t design software that relies on new hardware to run. (Ironically, that immediately makes me think of Windows 11, but there you go).
  • Don’t cause working hardware to become unusable because of a lack of software/security patches. (Android is the worst culprit here).

Although Apple is still providing software upgrades for phones dating back to 2015, Android manufacturers only support phones for 2-3 years (and Apple is not without sin - new apps often force hardware upgrades even when patches are still available for a device). 

The good news is we are upgrading our smartphones slightly less often than we used to (mostly as a result of the economy, but also because manufacturers are running out of flashy new hardware features to lure us in). However, it is still averaging once every ~3 years

The bad news is some of that increased lifespan relies on Android users running unsecure phones because they didn’t want to or couldn’t afford to ditch a working device. Doing the sustainable thing is putting them in harm’s way and I fundamentally blame Google for that - they set the license terms for Android. 

Unnecessary obsolescence is not only a criminal waste and a security risk for users, it’s a missed opportunity. Every day, millions of folk bin working hardware devices with astonishing capabilities. At the same time, the software we run on our phones and tablets barely scratches the surface of what those amazing devices could do.

What if?

  • What if new releases were about software features rather than hardware ones?
  • What if new releases ran faster on your existing hardware instead of slower?
  • What if hardware was designed to support and showcase changing and improving software, not the other way around?

All of these are doable. On launch, software is often barely optimised, which means there’s a lot of room for improvement on any given device. We could be exploiting that.

A software-based upgrade system might not be attractive to the current hardware manufacturers, but it should be to software ones. It certainly would be to the planet, which increasingly means to younger consumers. 

We’ve become reliant on hardware because that was the easiest path. Hardware has been exponentially improving for two decades and we weren’t footing the climate bills. It therefore paid for us to let our software get bloated. Instead, it should have been generating better products than hardware ever could because it’s innately more flexible - it’s a language! Software is only limited by our imagination and the skills of our developers and we could do so much more with it. 

What do I mean? 

Software-based upgrades!? But no one does that!

Microsoft tends to make its money from software rather than hardware. Unfortunately, however, their new releases usually fall foul of the “better hardware required” form of obsolescence. 

There’s no need for that to be the case. There’s plenty of room for optimisation in their software and OS. There is no technical reason why the key feature of the semi-mythical Windows 12 couldn’t be that it runs faster on your existing laptop - rather than what’s likely to happen, which is that it’ll run slower. 

Faster tech on existing hardware! How cool would that be? Arguably the best feature you could get. And there is already a great example of a successful consumer business that manages hardware longevity far better than the rest of the industry...

Games Consoles

In 2020, Microsoft and Sony each released their first new console in 7 years. That’s already more than twice as long as the average phone lasts. The amazing thing is, games continue to get better while you’re waiting for the next hardware release! How? By constantly optimising their software for existing devices.

Games companies believe that the software (the games) should be the star rather than the devices they run on, and they’re right. There may even never be another new Playstation or XBox. In the future, consumer devices are expected to play a smaller role in the gaming experience because more of the heavy lifting will move to the cloud and the edge (that’s good because cloud providers are better at managing hardware longevity than consumers are). 

All this only makes it more galling and outdated that, at the same time, I have to throw away a high-spec, working Android phone every 2-3 years. Built-in obsolescence is for Henry Ford, not the 21st century. 

What will we do about it?

Where Next?

“Software is eating the world” - Marc Andreesson

Andreesson’s quote is an implicit assertion that, this century, software has driven the world’s economy. It hasn’t. Software has underperformed throughout the past two decades because it has leaned so much on Moore’s Law. 

Despite the fact that code is almost limitlessly flexible, what has actually been eating the world since 2000 is hardware (Moore’s law plus flashy consumer devices built cheaply in Asia) and slick operations (cloud providers). Neither of which are as inherently powerful as software. I’m a software engineer, so in my opinion that’s a crying shame.

So far, the 21st century has not been about smart code. It has been about leveraging clever hardware and ops. Hardware has improved exponentially, giving us 1000X growth since the 90s. We spent most of the improvement on making software engineers more productive in a very specific direction (tl;dr: stuff we could do more easily with a growing number of processor-intensive layers). As a result, software became less specialised and more resource hungry.

The most revolutionary tech concept of the past decade has been containers, which showed us the amazing things that can be achieved by removing the heavyweight wrapping of a VM and replacing it with the vastly thinner one of a container. Unfortunately, in most enterprises that intelligence hasn’t been realised and containers have just become yet another layer. 

The solution to tech’s future is to fight our way out of the gilded hardware cage we’re currently living in. We are close to the top of the local maximum of hardware + Asian manufacturing. The next peak has to come from smarter software, and ideas beyond just wrapping another thick layer around stuff and letting cheap hardware and electricity do the work of coping with it. 

The innocuous phrase the tech industry uses for destroying working hardware is ‘premature obsolescence’. In a world that has to deal with climate change, I don’t believe that sums up the issue or the challenge. 

What we are talking about is negligent obsolescence. We could do something about it, but we don’t. Sometimes that’s deliberate (we still have Henry Fords out there) but often it’s just a failure to pay attention. It’s negligence and it cannot continue. Hardware needs to last longer. Unoptimised or unsupported software should never again be what kills a working device. 

What I’d love to see in the 2020s is software no longer taking credit for wins being delivered by something else and achieving its own vast potential. By re-focusing on software-driven energy efficiency, software features, and hardware longevity, not only could we solve tech’s fossil fuel and pollution challenges, we could enable the industry to reach the greater heights of which it is capable. 

The world is changing and software needs to step up.