As the software running the internet of things gets more and more complex, it won’t even require hardware failure to render our future cars, refrigerators or toasters obsolete.
It doesn’t have to be about deliberately bricking your device by software after the warranty is over. On the hardware side, if engineers are told to make something last three years of normal use, they’ll do just that and just use enough material to wear down over that period.
Software, however, can’t really “wear down”. It’ll just be the same software after five years.
But that’s the problem. The requirements rapidly change. The environment changes. Hackers will learn about the software’s weaknesses. Systems can only be kept safe, when they’re continuously updated, filling security holes. This way, devices that don’t get security updates anymore can be considered obsolete. For a premium smartphone these days, this can be as low as five years. For an entry-level one, even less than a year.
Also, compatibility with current infrastructure is a problem. If you bought a Telephone in the 70s, it worked for decades. If you buy a Skype phone now, it’ll be unusable after a few years. Not because it physically breaks and not because someone deliberately programmed it to stop working, but simply because it’s not compatible anymore and doesn’t get any more updates.
What’s the solution if the manufacturer doesn’t want to support your product anymore? On the hardware side, there are already movements to grant consumers a “right to fix”, forcing manufacturers of electronic devices to sell replacement parts and provide repair manuals to the public. But in the future, hardware issues won’t be the primary reason something stops working.
Customers need to have a right to fix the software on their devices. It’s paradox that, on one side, manufacturers try to prevent people from “hacking” their devices, trying to outlaw custom firmware, but on the other side, don’t help them when there’s a compatibility problem with the software. It remains to be seen if, for example, a Tesla will get software updates for 20 years. I’d like to see that, but let’s say it won’t.
a radical solution
So here’s a radical approach: to get approval to sell any electronic device requiring a custom software, the manufacturer should “deposit” the full source code with the government. The source code will stay undisclosed to the public.
However, once the manufacturer doesn’t publish critical updates necessary to ensure the functionality of the device (security or compatibility updates) for a period of, say, three months, the source code will automatically be released to the public.
This would also do our environment some good since having a device from a company that ran out of business doesn’t mean you’ll have to replace it simply because the software is no longer supported.
I’m not trying to take away the right of companies not to disclose their source code.
However, here’s my premise: if the software is no longer updated, it’ll be considered obsolete. If it’s obsolete, where’s the harm in publishing the source code?
One concern of corporate lawyers might be that their company wouldn’t even be allowed to publish the source code if they wanted to, for legal/licensing reasons. But here’s the thing: the law can override that.
You might say, it will harm the competitive power of the market. But if the proposed procedure becomes standard, it might even increase competition, because if companies don’t want their code to get to the public, they’ll have to support it longer.
The whole thing would work similar to trademark law where trademarks expire if they’re not used for a given time or copyright law where things become public domain after a certain time.