Progressive Reduction is Everywhere

(and it’s beautiful)

Stephanie Oh
5 min readJan 19, 2015

I recently read a blog post from InVision by Dan Birman about the concept of ‘progressive reduction’. It was defined as: “the dynamic simplification of a user interface (UI) as users become familiar with it.”

One of the most recognizable examples of progressive reduction in action is the evolution of the Starbucks logo:

While I don’t personally remember ever seeing the first version, I do vaguely remember the second and third, and definitely recognize the fourth (the current version). What I remember most about the leap to this version was the loss of the color black, and the general sense — I didn’t actually realize for a while that the words “Starbucks Coffee” had been lost as well — that the Starbucks logo felt “simpler” and “more zoomed in” (this literally seems to be what happened). What remained, however, was the logo’s powerful messaging, and its ability to instantly convey to me what it had always stood for: coffee. And lately, pumpkin spice lattes and spinach-feta wraps.

Progressive reduction makes a lot of sense. It is the elegant process of encapsulating the same amount of meaning and function in an ever-simpler vessel. In the world of design, that vessel is often UI, logos, or even UX. It’s one of those things that I’ve never consciously acknowledged or concepts I never knew there was an actual term for. But now that I’m aware of it, I’ll never be able to unhear or unsee it.

And now that it’s stuck in my brain, I realize what it is that I find so fascinating about progressive reduction: that it’s a process of simplification and refinement intrinsic to any creative process, not just design — be it writing essays, composing music, or even writing code.

Progressive Reduction in Code

In fact, learning how to code is probably when I first came across the concept or was in some way made conscious of it. At the time, however, it was explained to me under a different name: ‘abstraction’. From literal and hard-coded functions to elegant ones that could handle dynamic inputs, the move was always toward greater and greater abstraction. That was the name of the game.

When I was first starting out and didn’t know any better, I was impressed by the sheer length of other people’s code; the more lines, the more densely-packed the Sublime file open on their screens — the more, I assumed, their code was doing. But as with writing in English, I came to learn that ‘more’ and ‘dense’ didn’t directly correlate to quality, function, or true content. Just as long and wordy essays don’t necessarily say more, long and verbose code doesn’t necessarily do more, either.

I learned that you could always make your program accomplish the same amount of functionality with fewer lines of code, through refactoring and abstraction; the best programmers always seemed to strive for this, because they took pride in the beauty and “cleanliness” of their code. I learned through their work that code could actually be beautiful (well-written code really does look more visually appealing, even at a glance — the blocks tend to look smaller and less terrifying because the methods each have a single purpose, and the lines don’t run edge to edge because there are fewer characters per line).

Abstraction. Refactoring. Progressively stripping away the intricacies until you’re left with an elegant solution that accomplishes the same task as before and possesses the same amount of meaning.

Progressive reduction.

Progressive Reduction in Writing and Music

Once I’d been made consciously aware of abstraction as a deliberate process intrinsic to writing good code, I had an ‘aha!’ moment where suddenly I realized how intimately familiar I was with this process, and that I’d basically been doing it my entire academic and creative life. We often refer to it as: ‘editing’.

When writing and editing papers, writing music… you often begin with an imperfect idea, an incomplete argument, a question without any answers. Then you start throwing everything you have at your idea, your question, in the hopes of “getting it all out there”, until you feel like you’ve exhausted that part of the process and are ready to begin progressively reducing. You start to peel away at the inconsistencies, the ugly bits, the repetitive parts. There are re-writes. There is a lot of whittling down.

At the end of all this, if you’ve done your editing successfully, you’re left with something coherent, meaningful, maybe polished, maybe even beautiful. Perhaps you’ve managed to express what you initially sought to in just a few key metaphors, or a few well-phrased sentences, rather than the rambling five pages you started with. Your wandering melody may now be reduced to just five distinct notes from twelve, but put together in a sequence that is now more emotionally stirring and memorable.

For an English major and code noob, it was an oddly powerful connection to make. Needless to say, framing code abstraction as an activity akin to essay refinement helped me grasp the higher goals of writing code in a way that hadn’t clicked before, and the moment I made this connection was the first time I finally felt like ‘this delusional English major’ deserved to learn to be a programmer.

So much anxiety and imposterdom, lifted off my shoulders and washed away — if even just temporarily — by that single revelation…

The power of a metaphor.

Progressive reduction.

If you’ve made it this far in reading, you probably won’t be able to unhear or unsee progressive reduction ever again, either. It truly lives all around us.

As for why we seem to gravitate towards it, my best guess is that it actually gets pretty deep into the question of what makes us human. Our delight at and appreciation for abstractions and metaphors seems in part utilitarian, but also a little magical. Because on one hand, they allow us to save energy and time; our eyes don’t have to strain as hard to take in all the details of the Starbucks logo anymore — most of it’s been abstracted away. Yet this is the part that’s magical, that our minds can be challenged in a split second to make the same associations they used to when we had more information, with now less. And that for whatever reason, we enjoy this challenge (think about poetry, the ultimate example of all this).

It seems, then, that progressive reduction is not just “something you do” or strive to do in your artistic endeavors. Rather, if all artforms are variations of metaphoric expression—the human experience represented in the abstract—and metaphors are the final outcome of progressive reduction, then progressive reduction is art itself.

It also seems that stumbling upon this term has been, in and of itself, a moment of progressive reduction for me and my appreciation for the concept: I’ve found a new word to describe a process that has always been around me, something new to describe something familiar.

Code, essays, music, design—they are all unified and connected by it.

And it’s beautiful.

Wanna talk more about any of the above? Or just chat about how weird it is to be human?

Don’t be a stranger! @SostephOh

--

--

Stephanie Oh

Product Manager | Cryptocurrency Investor and Enthusiast