My son has been teaching me to play a Very Popular Video Game. As anyone with kids knows, screen time is premium — plus bedtime was coming — so I set a limit of 45 minutes.
That would have been plenty of time for a few battle royales, but this Very Popular Video Game needed to download a few gigs of updates, and our internet was spotty. So we had 30 minutes of downloads between our computers. My son is 10. He was bummed. “They have to do it,” he explained. “It’s how they keep people from cheating.” Frequent, game-pausing updates are just part of his life. Eventually we enjoyed the 15 remaining minutes, and he was rewarded by watching my character die.
Then, after he went to bed, I thought, You know, since I’ve got Windows booted up, I’ll play Flight Simulator. Except…guess what happened? Flight Simulator wanted me to download Spain. I could not play until I downloaded Spain. So I let that run for an hour. At which point, I was feeling pretty tired, and Windows wanted me to reboot, because it too had downloaded a bunch of updates. My computer’s 3D card had also downloaded some updates, and my computer’s fan. So I gave up and rebooted the machine into Linux, which wanted me to update to Ubuntu version 22. I started that, and then went to bed.
I’m not complaining. Or rather I am, but I’m accepting of this too. Frequent software updates are a big improvement over the days of gigantic service packs or new software versions with years between them. And since everything gets hacked all the time, they truly do matter — if you ignore updates, you’re inviting risk. And we who build software believe that software should be produced this way, with new features going out to users as soon as they’re ready. And for the most part, updates are invisible. We’re all using dozens of apps a week (if you could categorize websites as apps), and updates are being uploaded all the time.
For a while, it looked like everything would consolidate into your phone. Your phone would become your calendar, remote control, telecommunications platform, camera, mapping system, and so forth. And it did! But humans are funny — every time a platform emerges that seems to subsume all the other platforms, we end up making all kinds of new stuff to attach to it.
The era of personal networking
You may have a smartphone, and so do the other people in your house and your life. A Kindle. A laptop or desktop machine. A Wi-Fi printer. A smart tablet. Smart speakers or Bluetooth speakers. Your dishwasher and fridge might be online. Your car probably has multiple operating systems. Your air conditioner might be on Wi-Fi too. And then there are the devices specific to your life: the smart lock, the intelligent dog collar, the e-reader, the video game console, the router the cable modem people give you, and the router you connect to it. My TV runs an operating system. The $30 security camera you use to keep your son from eating all the ice cream.
I have 63 devices online in my house right now. This seems like madness, but when you tally up the phones, Chromebooks, watches, printers, laptop, speakers, and so forth — well, I still don’t know what many of them are. And all of these are…computers. They have operating systems, even if those OS’s are weird. A lot of them are secretly web servers; that’s how mobile apps connect to them and pull data. If these devices don’t talk to the internet, they talk to devices that are connected to the internet. Which means they really need to be updated, or your Sonos will be used to DDOS an embassy. And of course they need to be updated when the devices that control them are updated. That’s the worst part about updates: Every update necessitates further updates.
As software developers we should think hard about this. Obviously your updates are very important. But we should remember that they are only one of hundreds of things happening to any given device at a time, and they will inevitably slow things down for the user. They’re friction, no matter how great that security patch turns out to be.
I think all the updates are a symptom of the changes in our industry. We started out 30 years ago doing personal computing. Then everything went mobile. But now, given all the devices we share and the sensors we install, we live in an era of personal networking. This was going to be the “Internet of Things,” but it’s a little more like “the LAN of stuff.” Our experience of computing is a hybrid. For a long time it looked like the answer was, “Just use the cloud,” but…the cloud is expensive. My home security system doesn’t really need to log all video to Dropbox. Sometimes I forget to check code into GitHub and just want to log into my home machine and grab a file.
Managing our LANs of stuff
The world of software is evolving to help us deal with our LANs of stuff. One interesting company (which recently raised $100 million) is called Tailscale. Tailscale makes a VPN product. It lets you use your Google account to link lots of devices together, so, for example, you can connect to your home computer from your phone while on the train. VPNs have been around for a long time, but they’re always a bit of a chore. If you ran one at home, sometimes it would disappear for various reasons (cat stepping on surge protector).
Tailscale is easy in the same way that Dropbox was easy. And it has changed the way I work: All my little hobby projects are at home on my local machine; I don’t need a cloud server in the middle. Sure, I still check code into GitHub for safekeeping. I also got rid of Dropbox and use a tool called Syncthing instead, which keeps all my files linked up between my home and work laptops. Photos and email are still inside of Google.
Is that the way we’re headed? Your cheap, chatty devices will all talk to each other via a mesh. They’ll control each other. They’ll update each other. Peer-to-peer stuff. Or will we have more and more centralized software — so that Apple pushes out all the updates not just to your Mac or iPhone, but to all the devices in your phone? Centralized stuff.
A third alternative: your web browser. Perhaps because of the decades we spent waiting for legacy versions of Internet Explorer to finally be cast aside by IT administrators, modern browsers have been religious about self-updating and have ridiculously high version numbers. Occasionally a browser will need to restart, but it’ll only take a moment. Since browsers are now 3D-engine-having, virtual-machine-powered, pseudo operating systems, running things inside a browser means that updates are fast and cheap and don’t require restarts. What’s valuable is orchestration — the ability to access all this stuff wherever you are.
Get me to my TV
What does all this mean to people like us, the ones who make software? Well, ask yourself: What do users want? They don’t care about Netflix or Hulu or HBO Max. Those are just friction before they can get to “TV.” If you could log into your TV and use it anywhere (and why not? It’s just a computer! Why can’t I access my TV through Tailscale?) that would be…cool. It’s weird, because the idea of a TV seems old-fashioned in an age of streaming. But when I think about TV, I still think about the slab of pixels in the other room. Old habits die hard. Same with your Sonos. Why am I accessing music one way to play it on the Sonos and one way at work on my headphones?
All these different interfaces, modalities, and platforms, all the companies and approaches to accessing the same stuff (video, pictures, e-books, email, music), the idea that things work one way at home, one way on mobile, one way on the web, and one way on desktop — they are all a drag on the user. No one cares about your software, or your cool e-reader platform, or your brand. They care about their data, their access to that data, and their experience. And they’re starting to drop Netflix because they don’t care as much about its data or experience.
Fair. The fact that I have to remember that What We Do in the Shadows is on Hulu and Peacemaker is on HBO Max is ridiculous. All these updates are slowing down my fun as well as my son’s. We’ve organized everything wrong, again. All of our stuff revolves around operating systems, brands, and platforms. But those things should be organized around our stuff, at the protocol, OS, update, interface, UX, search, and data level — whether it’s on a home NAS drive, cloud service, or website.
What people want are fast devices that chat with each other just enough so that they can watch their movie or read their book. They want systems that update themselves quietly and don’t reboot. It’s all very blurry right now, which makes it fun to think through.