Saturday, June 18, 2011

A platitude on software

[Via Reddit and Hacker News, a strange little essay published (anonymously) this morning over on Pastebin. The original piece was submitted by one HINTEDCOGWHEEL. Which is the very first of about 18,000 anagrams for CODING THE WHEEL. What are the odds?]

It's true that most software projects fail. It's in the nature of software projects to fail. You might even say that software projects want to fail. Failure is what you get by default. Failure is the status quo. From the minute you begin the development process, failure waits behind blind corners, ambushes you from dark alleys, sidles up to you with a wink and a toothy smile.

"Go ahead," it grins. "Hit me with your best shot."

You can hire the best and brightest people, give them a budget that would beggar Croesus, evolve a methodology that makes Agile look like a clumsy attempt to rub two sticks together, producing fire. You can give your programmers triple-monitor setups, juggernaut CPUs, hard drives measured in terabytes, free all-you-can-eat sodas and snacks everlasting. You can choose the perfect language, the perfect platform, the perfect toolset. You can scrawl Goetic symbols on the dusty floors of the computer lab and dance widdershins around a burning copy of Code Complete, for all anyone knows or cares.
When you put your clothes back on (perhaps wondering how they got off) and snuff the candles, failure will still be there.

Waiting.

Picking its teeth with the dessicated bones of software projects long forgotten.

* * *

The world will tell you that software is a bird that can be caged. It's a mantra.
At this moment the bookshelves of Silicon Valley are groaning under a thousand tons of "best practices" software development verbiage inscribed across the backsides of thin little pieces of reconstituted wood we call "paper", splattered with color and gloss, marketed and hyped and sold at a premium. And if you were to take all the material that appears on the Internet about this subject, and print it out on paper, well... you'd denude the planet of all vegetative life and probably somehow upset our orbit relative to the sun, sending the Earth spiraling towards a fiery stellar death.
It's a business. Money in, words out. Kill more trees, consume more bytes.
And you just know, when aliens stumble across the shattered remains of our haughty civilization, down there in the rubble, preserved in the browser cache of an off-market hard drive of a manager who was, at the precise time the Apocalypse hit, surfing the web trying to hire a web consultant—you just know that the fatuous technobabble Newspeak jargon of technology evangelism will persist.

I can hear its familiar bullshit strains even now...

We provide complete, integrated, start-to-finish vertical solutions delivered by business consultants with industry experience working to a proven implementation methodology, leveraging business process synergies to provide you with a scalable and forward-looking technology roadmap.

Meaningless weasel words, slipping through the corporate digestive track like so many pastel turds. The message is always the same:

Jump on our technology bandwagon and success will follow otherwise you will surely perish in a hailstorm of fiery damnation as everything you love is ripped away from you and your corporate offices are stormed by marauding Orcs. We have learned how to cage the "Blue Bird" of software. We know where the software sidewalk ends. We've been to the end of the software rainbow and we've strangled that goddamned leprechaun who keeps teleporting away with our customer's pots of gold. We're Accenture; check out our snazzy website, read our PDFs, and prepare to be blasted into the realm of software awesomeness.

This—the irresponsible, cheating use of language—is the Ground Zero of software failure so far as I'm concerned. (Around you loom the shattered wrecks of forgotten projects, blocking out the sun. It is dark here. You are likely to be eaten by a grue.) The Venus di Milo, Beethoven's Ninth, Shakespeare's 19th, yes, even Emacs: all will eventually perish. But the my-what-big-teeth-you-have, the-better-to-eat-you-with language of technology sodomizers will persist, along with porn and spam, as humanity's last and final legacy.

`My name is Ozymandias, King of Kings:
Look on my works, ye mighty, and despair!'
Nothing beside remains. Round the decay
Of that colossal wreck, boundless and bare,
The lone and level sands stretch far away.

* * *

I'm as enamored of the programmer-as-magician mythos as the next geek. Not for nothing were programmers assigned the top security clearance in that brilliantly sadistic RPG of yore, Paranoia. But I've started looking forward to the day when we'll be tossed off our high horse by the democratizing power of tech that we pay lip service to. Because my experience in this industry has convinced me of the following:
  • Most programmers are egotists
  • Most corporate projects are red herrings
  • Most budgets are grossly inflated
  • Most production systems are hacked together
  • Most infrastructure security is a joke
  • Most marketing is dishonest
  • Most managers are incompetent
  • Most software patents are concocted
  • Most development tools are politically motivated
Software is an entropic system whose arrow of time flows in the direction of failure, aided and abetted by human bullshit. That is my belief.

So feel free to believe in shiny-happy 200-billion-dollar Facebook valuations and colorfully disruptive startups that accrue heaps of naive funding and then predictably implode. Feel free to ignore the evisceration of digital industry by patent trolls, snake oil consultants, crooked politicians, primadonna bloggers, internet crackdowns, shady PR teams. Turn a blind eye to the wolves gathering around the fountains of innovation, the alligators slipping into the shady-watering holes of small business (surely they won't bite). Feel free to participate in the fiction that what we are doing is sustainable.

But don't kid yourself that the high-hanging fruits of the technology tree—strong AI, for example—will be made manifest by a society more excited by the Facebook social graph than by feeding its children.

Without the willingness to embrace difficulty, the willingness to replace Twitter evangelists with hard scientists and hard mathematicians, without a solid manufacturing basis, without some counterweight to our addiction to "the easy"—and when our very language has become polluted with sophistry of lobbyists and middlemen, wreaking havoc in our nations' capitals—our ability to move mountains diminishes and diminishes, even as the technologies we discover convince us of our superiority.

In a way, it's a story as old as time. Wherever the bright spots of human endeavor appear, wolves will always follow, wearing the dress of sheep, affecting the mannerisms of sheep, and above all, speaking the language of sheep. So it is and has always been.

The only difference is that the wolves never had an internet before.

[via Coding the Wheel]

No comments:

Post a Comment

Please pick a handle or moniker for your comment. It's much easier to address someone by a name or pseudonym than simply "hey you". I have the option of requiring a "hard" identity, but I don't want to turn that on... yet.

With few exceptions, I will not respond or reply to anonymous comments, and I may delete them. I keep a copy of all comments; if you want the text of your comment to repost with something vaguely resembling an identity, email me.

No spam, pr0n, commercial advertising, insanity, lies, repetition or off-topic comments. Creationists, Global Warming deniers, anti-vaxers, Randians, and Libertarians are automatically presumed to be idiots; Christians and Muslims might get the benefit of the doubt, if I'm in a good mood.

See the Debate Flowchart for some basic rules.

Sourced factual corrections are always published and acknowledged.

I will respond or not respond to comments as the mood takes me. See my latest comment policy for details. I am not a pseudonomous-American: my real name is Larry.

Comments may be moderated from time to time. When I do moderate comments, anonymous comments are far more likely to be rejected.

I've already answered some typical comments.

I have jqMath enabled for the blog. If you have a dollar sign (\$) in your comment, put a \\ in front of it: \\\$, unless you want to include a formula in your comment.

Note: Only a member of this blog may post a comment.