A friend of mine emailed me last week after he had experienced the tragedy of missing a big deadline. A coding project had flapped and floundered in its final days, and the deadline came and went without a completed product. “We got three days notice from the team,” he said, and that was too late to apply the bandages and resuscitate what was to be delivered. This got me thinking about how we plan coding projects, and then I went on to wonder why coding projects are so difficult to shape and “manage.”
It’s not just a problem of management or of organization. The gnarly part of managing coding projects comes from the nature of the work itself — not the framework we use to control and shape it. Coding work dwells in an area that is highly structured, rule- and procedure-bound while also depending on talents that play and sparkle and that toy with boundaries in order to unbind them. Such things as these, done well, are difficult to predict and difficult to plan. Done badly … or, heck, done normally, the process of coding and building meaningful projects is a type of Hell, filled with apparently straightforward intentions that wander into crooked ways and eventually need heroic repair. Or sorrowful rewrite. Or, yes, abandonment.
James Gleick’s New York Times’ review of Vikram Chandra’s Geek Sublime: The Beauty of Code, the Code of Beauty notes that there is a programming language called Malbolge, also the name of Dante’s eighth circle of Hell. The Wikipedia entry warns without whimsy, “This article is about the location in Inferno. For the programming language, see Malbolge.” Gleick refers to a set of programming languages as a “bestiary” — a nice poetic term.
The language of project management — in Agile, at least — follows this little poetic conceit. Tasks and project emerge from “stories” and large projects take shape as “epics.” And programmers sometimes revert to aesthetic or poetic terms to describe code: A piece is elegant or beautiful or, rarely, satisfying. Frequently, code is clever or ingenious. Sometimes, it is inspired. (I’d like to hear more epithets of this kind, by the way. And I suppose mathematicians can chime in here, too, since the terms have been applied to mathematical insight as well.)
Usually the elegance or beauty comes from a coder’s ingenuity in playing with the very structured and even jarringly declarative aspects of a programming language to tease out a result that flashes insight (in a computer sort of way) or an outcome that is unexpected or somehow larger or generally applicable to a set of problems. By contrast, work-a-day code plods and, perhaps, does a job — but without a pleasant surprise.
The same applies to poetry. We have to adhere to the rules and structure of haiku, and somehow — maybe because of the regimentation of syllable counts — we see a delightful turn arise from the words. Sonnets are likewise structured (indeed they have a host of forms, some stricter than others), and freshness comes from the strict form when a master wrestles with an idea long enough to conform it to a structure (the sonnet’s rhymes and measure) while arguing against a form (here, the habits of Petrarchan imagery):
My mistress’ eyes are nothing like the sun;
Coral is far more red, than her lips red:
If snow be white, why then her breasts are dun;
If hairs be wires, black wires grow on her head.
I have seen roses damasked, red and white,
But no such roses see I in her cheeks;
And in some perfumes is there more delight
Than in the breath that from my mistress reeks.
I love to hear her speak, yet well I know
That music hath a far more pleasing sound:
I grant I never saw a goddess go,
My mistress, when she walks, treads on the ground:
And yet by heaven, I think my love as rare,
As any she belied with false compare.
(William Shakespeare, Sonnet 130)
I have my doubts that some great coding achievements are brought into light because of exceptional project management. Rather, there is a perilous play of strict form and hazardous play. With hard work, the job gets done, sometimes elegantly.
So, when you see a coder, behold her as a poet and as a creative light. Buy a beer, or take him out to lunch.
Mark R DeLong, PhD (firstname.lastname@example.org)