Six Colors
Six Colors

Support this Site

Become a Six Colors member to read exclusive posts, get our weekly podcast, join our community, and more!

By Jason Snell

Complex systems

Six Colors readers may or may not know that I’m a bit of a fan of space and astronomy and science stuff, and have been since I was very young. I have a clear memory of sitting on a chair at the front of my first-grade classroom, boring all of my classmates by reading statistics out of a book about the Solar system. (I replicate this experience fortnightly on the Liftoff podcast.)

In any event, sometimes when I think about technology issues, I liken them to space-related issues. And so when Walt Mossberg posted his column complaining about the quality of Apple’s first-party software, I thought about the Space Shuttle.

Bear with me here.

The Space Shuttle is famously the “most complicated machine ever made,” with more than 2.5 million parts and 230 miles of wiring. And yet sometimes complexity is not a triumph, because complexity leads to complications. The Shuttle was ultimately so complex that it became incredibly expensive to use, took too much time to refurbish between missions, and had a 1.4 percent fatal accident rate. Its replacement spacecraft, while more advanced in many ways, hearken back to the previous generation of space capsules. Simpler designs from a simpler time, being adapted for the 21st century.

Software is complex, too. Operating systems most of all, though huge applications are similarly complex. Apple’s software is a creation of thousands of programmers over more than a decade. It’s bigger than any one person could possibly comprehend. A small alteration in one part of the code base could have a massive impact somewhere else.

Several times—most recently on an episode of John Gruber’s The Talk Show podcast—Apple executives have claimed that Apple software is actually more reliable than it has ever been. And I believe that, at least in terms of what Apple is measuring. Apple reports that, for example, the number of software crashes is dramatically less than it was five years ago. My experience certainly bears that out: On the Mac, especially, stuff crashes far less than it did before.

The challenge is in the stuff you don’t measure. My Mac’s contacts database, synced from Google, became unusable when I updated to OS X 10.11.2. My Apple TV now thinks its name is “Apple TV (2).” iTunes can lose its place in a playlist when you click on a link to the App Store in your browser. The custom icons on Safari’s new tabbed-favorites feature keep reappearing and disappearing. The list goes on. Some of these are annoyances, while others are actual productivity speed bumps. None of them are crashes—and that can make them hard to find.

Or take another piece of complex software from a company that isn’t Apple, Adobe’s Creative Cloud. Like many companies, Adobe cares about fixing software crashes, to the point where it includes a special piece of software to monitor crashes and report back details of those crashes to Adobe. (Apple has something very similar, which is how Apple’s Craig Federighi can make the claims he does about Apple’s software being more reliable than it was five years ago.) But what happens if there’s a bug in the crash-reporting software? In that case, your software might be preventing Macs from shutting down, as I discovered recently. That’s an invisible problem, just as deleting hidden files and folders would be.

Complex systems lead to complex problems, and it’s hard to see them, understand them, and fix them. Which brings me back to space tech. The hardware and software used in spaceships and space probes is ridiculously old and outdated by consumer standards. The Hubble Space Telescope, for example, is powered by an Intel 486 processor. One reason for this is hardening the hardware for the rigors of outer space takes time. But another is simply that if your computer breaks you can get it fixed, but if a computer on a spacecraft breaks, a mission costing tens or hundreds of millions of dollars could be ruined. As a result, the stuff running in space operations tends to be rock solid.

Why can’t our own technology be rock solid? The blame lies with all of us. Consumer technology buyers want new, better features and want them now. Companies compete with one another to provide those features faster than the competition. Speed is of the essence, quality… less so. Members of the tech press and developer community can (and often do) express a desire for Apple to back off the feature updates and focus on stability and reliability, but wouldn’t the press eat Apple alive if it announced that it wasn’t releasing major new updates to iOS and OS X this fall? A huge percentage of Apple’s business is tied to iPhone sales—can you imagine what would happen if Apple bypassed a new iPhone release for a year in order to focus on the stability of next year’s hardware?

This is not an attempt to suggest that there aren’t issues with Apple’s software quality. I absolutely believe the company has much more work to do on that front. I also believe that while they won’t say so publicly, Apple executives probably know all too well about the pain points in their software, and are working behind the scenes to make things better. But these are complex systems, and it will take time—and a massive amount of effort—to make them better.


Search Six Colors