Software is a Sugarmill

Sep 12 2015

About a year ago, Google acquired Revolv, where I led the Cloud
team. I coined the code names for several of Revolv's projects, including
our primary cloud platform. I named it Sugarmill.

But I never told anyone the reason. It was long-running joke that I wouldn't
say why I named it. Frankly, I never wanted to say because the reason was
more melancholic than jovial. It was not intended to be full of whimsy, but
rather was to serve as a stark reminder of what we, as software developers,
really do. And why it causes us so much pain.

Sugar Rush

Creating software is not a "job" for me. It's not something I do just to pay the
bills. It's a vocation, in the true sense of the word. It's a thing I find
fulfilling. I get to do it 9-to-5, but sometimes I do it just for fun. Some
people enjoy crossword puzzles or sudoku or working jigsaw puzzles. I enjoy solving
puzzles in code.

Maybe it's beyond that, because what we software developers build is intensely
creative. We build new things; useful things.
And when I finish that thing that "scratches an itch", I get this feeling
akin to a sugar rush. I feel excited and buzzed. The French word jouissance
captures the idea better than the defanged English equivalent. It is more than
just enjoyment.

The Old Abandoned Factory

In the city of Longmont, just north of Boulder in Colorado, there is a giant
Great Weatern Sugar factory. Made of brown brick, iron, and whitewashed concrete,
the factory towers over its surroundings. Its tall silos glow in the morning light.
With Longs Peak and the Colorado Rockies behind it, the sugarmill stands like
the Parthenon on the eastern edge of the city

But its glory days are long gone.

The sugarmill was closed down in 1977. It has stood abandoned ever since.

Condemned to Irrelevance

When it is new, it is beautiful. It is functional. And those of us fortunate
enough to create it feel the sugar rush of building something.

Good software provides for people. It gives them something they desire. And it
fills a need. Good software creates jobs or even defines industries.

But it doesn't last. Like a factory, software is built for a specific purpose,
but using the tools available at the moment. As newer, faster, better tools
become available, what was shiny yesterday looks dull today. Worn. Perhaps
overly complex. Antiquated. It was once innovative. It has become obsolete.

Primal Baptism

The philosopher Saul Kripke is attributed with introducing the term "Primal
Baptism" as a way of describing the act of naming something. It captures the
idea that naming is an initial act that is so powerful that even if the
reasons for its naming are lost, the name retains its relationship with the
thing named. (This theory of naming is called antidescriptivism.)

When I named our application sugarmill, my colleagues assumed this was a
lighthearted gesture. And we made it so. I once gave out the "sugarmill awards"
to people who contributed to the development of the project. What was the
award? A pound of sugar decorated with rainbows and ponies.

But I picked the name for a different reason. I picked it as a reminder to
myself.

As excited as I was to be building the cloud platform for a cutting edge
Internet of Things platform -- one still unrivaled -- I knew that today's
breakthrough tech would be yesterday's news. And, as Elvis Costello put it,
"Yesterday's news is tomorrow's chip paper."

Sugarmill meant "tomorrow's chip paper."

Code is Art

In Jacques Lacan's theory of psychoanalysis, jouissance involved not only pleasure,
but also suffering. (Anyone who's ever written software can relate.) I certainly
would not go as overboard as Lacan in his subsequent analysis. But he taps
something profoundly true about the nature of the creative act: it hurts.

Friedrich Nietzsche, too, captured the idea in the famous preface to The Joyful Science
(or, The Gay Science, depending on your translation). He uses the metaphor of
childbirth to talk about creation. It is painful, but it results in the introduction
of something into the world that wasn't there before.

Nietzsche was thinking of art. We who create software can sympathize. For
that is what we do. We create things that were not there before. We create things
that humankind has never before seen.

Science discovers what is there. Engineering assembles. We do some of each. But
we do more.

We create things that never before existed.

And for that reason, we are artists as much as scientists or engineers.

But Nietzsche's childbirth metaphor stopped well nigh of its ultimate conclusion.
What is born also dies. The things that we create may be novel when we create them,
but they will age, and they will die. Over the last fifteen years I have buried
the same T.S. Eliot quote in code comments, variable names, and unit tests:

This is the way the world ends

This is the way the world ends

This is the way the world ends

Not with a bang but a whimper.

It comes from the aptly named poem, The Hollow Men.

Eliot's words capture the fantastic truth that we software developers build worlds. We
are applied metaphysicians. But the sober note is that these worlds become wastelands,
most often with the whimper of bit rot and vanishing user bases.

We Are the Avant Garde

When Édouard Manet (and later Claude Monet) rebelled against the Beaux Arts,
creating the style of art called Impressionism,
they sought to capture the fleetngness of the world. The classical tradition
dominant at the time was obsessed with the Greeks and Romans, along with the
Italian Renaissance.
The subject matter of art was the immortal realm of mythology and empire.

The Impressionists balked. They did so by painting fast. Outdoors. With rough
brush strokes and unblended colors. And in their furious attempts to capture the
moment as a moment, the Impressionists captured something else: the celebration
of the temporary. We need to learn that lesson.

Software is a sugarmill. Today it is full to the brim with sweetness. Tomorrow
it will sit abandoned at the edge of town. The moment Monet captured in the
garden is long gone. The sun has set on the water lillies. But the art remains.
The Great West Sugar plant no longer processes sugar beets. But as a monument
it stands.

Can we write software that is a sugarmill? Can we write software that looms as
a monument long after it has been abandoned? And even if we cannot, have we
produced anything less than art?

There is something in our vocation that transcends the utility of software. We
are the new avant garde. It is up to us not just to create new things, or
even to create useful things, but to create beautiful things.