This essay is adapted from Overcomplicated: Technology at the Limits of Comprehension by Samuel Arbesman, published by Current.
When the designer Don Norman was backing up his computer to a server, he sat back and watched its progress, reading what it was doing at each step. At one point, Norman noticed that the computer program had reached the stage where it was “reticulating splines.” This phrase sounded complicated, and that was reassuring to Norman—this program must really know what it was doing. But after some research he discovered—as any good fan of SimCity 2000 would know—that this was actually an inside joke, a nonsensical phrase inserted into the game that only sounds like it means something. Ever since, it has cropped up in various games and other software.
Think back to the last time you installed a new piece of software. Did you know what was going on? Did you clearly understand where various packages were being placed in the vast hierarchy of folders on your hard drive, and what bits of information were being modified based on the specific nature of your computer and its operating system?
Unlikely. Rather, you monitored the progress of this installation by watching an empty rectangle slowly fill over time: a progress bar. This small interface innovation was developed by the computer scientist Brad A. Myers, who initially called these bars “percent-done progress indicators” when he created them as a graduate student. They seem to soothe users by providing a small window into an opaque process. Is a progress bar completely accurate? Probably not. Sometimes progress bars are almost completely divorced from the underlying process. But for the most part, a progress bar and other design decisions—such as a bit of text that describes what is happening during a software installation—can provide a reassuring glimpse into a vast and complicated process.
More and more, we have constructed user interfaces that abstract away complexity, or at least partially shield it from the user, bringing together the fields of complexity science and user-interface design. Whether in our computers, our cars, or our appliances, these technologies lower a veil between us and how they operate. But as long as we have small ways of maintaining some intuition of what is going on beneath the surface—even if it’s not completely accurate—we can help users avoid an unnerving discomfort with the unknown.
My family’s first computer was the Commodore VIC-20, billed by its pitchman, Star Trek ’s William Shatner, as “the wonder computer of the 1980s.” While you could buy software for the VIC-20 (like a race-car game), a major way that people acquired software in those days was through computer code published in the pages of magazines. Want to play a fun skiing game? Then type out the computer program into your computer and fire it up for yourself. No purchase necessary. The tens of millions of lines of code that make up today’s game software would fill far more than one magazine.
Typing code into our computer brought us closer to the machine. I saw how bugs occurred—I have a memory of that skiing program creating graphical gibberish on one side of the screen, until the text was corrected—and I also saw that there was a logic and texture to computer programs. Today’s computer programs are mysterious creations delivered whole to the user, but the old ones had a legible structure.
All complex systems that we interact with have different levels that we can examine, created in technology by the deliberate abstractions we construct and in nature by the abstracting powers of scale and evolution. In biology, we can zoom up from biochemical enzymes to mitochondria to cells to organs to whole creatures, even entire ecosystems, with each level providing different layers of insight. As we abstract up from one level to the next, we lose fine-grained control and understanding, but we are also able to better comprehend the larger-level system. In computer software, we can move up from individual bits and bytes to assembly language to higher-level computer code to the everyday user interface that allows us to click on, drag, and use a web browser. Each successive level brings us more functionality, but it also takes us further away from the underlying logic of the machine.
Of course, it’s unlikely that that logic will ever be entirely comprehensible. But we should be able to glimpse under the hood a little. If we see our tablets and phones as mere polished slabs of glass and metal, performing veritable feats of magic, something is lost. In fact, this can cause problems: When our systems are so completely automated, we have little ability to respond when something goes wrong. This problem of being shielded from the inner workings of the technology around us has been called “concealed electronic complexity”: mind-boggling complexity lies within our devices but is entirely hidden from our view.
But what if a system is so incredibly sophisticated that these little windows either are too difficult to construct or provide too little insight? There is another approach. Simulations are a way to provide us with the beginnings of intuition into how a complex technology works.
While we can’t actually control the weather or understand it in all its nonlinear details, we can predict it reasonably well, adapt to it, and even prepare for it. Weather models are incredibly complicated, though each individual part is still designed to be understandable. We look to these models to plan our wardrobe and our activities of the day and week, but also to get a sense, even if an imperfect one, of how the atmosphere operates.
Just as we have weather models, we can begin to make models of our technological systems, even somewhat simplified ones. Playing with a simulation of the system we’re interested in—testing its limits and fiddling with its parameters, without understanding it completely—can be a powerful path to insight.
For example, the computer game SimCity is a model of sorts. Before SimCity, I doubt many outside the realm of urban planning and civil engineering had a clear mental model of how cities worked, and we weren’t able to twiddle the knobs of urban life to produce counterfactual outcomes. We probably still can’t do that at the level of complexity of an actual city, but those who play these types of games do have a better understanding of the general effects of their actions. We need to get better at “playing” simulations of the technological world more generally, teaching students how to play with some system, examining its limits and how it works, at least sort of.
Adapted from Overcomplicated: Technology at the Limits of Comprehension by Samuel Arbesman, in agreement with Current, an imprint of Penguin Publishing Group, a division of Penguin Random House LLC. Copyright Samuel Arbesman, 2016