September 2012

Volume 27 Number 09

Don't Get Me Started - On Honor, Cold Iron and Hot Silicon

By David Platt | September 2012

David PlattI remember, at age 6, attending my father’s medical school graduation. His face glowed as he explained to me the Hippocratic oath. “We swore to use the things we learned never to hurt anyone; only to make them better,” he explained. I swear I remember a catch in his voice, though perhaps the intervening half-century has added that.

I sat at my own graduation from Dartmouth 18 years later (indoors in the hockey rink because it was raining outside), with my Thayer School of Engineering classmates, sharing my pal’s flask as the medical students took their oath: “I swear by Apollo the Physician …” We didn’t have any such ritual, being mere engineers, a lower calling held to a lower standard.

Our responsibilities have grown exponentially since the dawn of the software industry, perhaps 50 years ago, about when my Dad was taking his oath. A guy who develops software for a jumbo jet holds more lives in his hand on a single afternoon than a doctor does in her entire career. It’s time we had a public reminder of this.

I don’t mean some empty “Code of Ethics,” which all professional societies seem to have. These carry about as much meaning and power as a Web site’s privacy statement. I want a public, individual promise, on a person’s honor, in front of peers and betters and loved ones.

I found that such a thing already exists. It started in Canada in 1922, and is known as the “Ritual of the Calling of an Engineer” (bit.ly/8XwJiQ). Rudyard Kipling wrote the oath. He was a huge fan of engineering, which is evident in his classic work “McAndrew’s Hymn” (bit.ly/htBITe). Instead of a dead Greek god, the participants swear “upon Honor and Cold Iron.” The new engineer is given a steel ring to wear on the little finger of his working hand, as an external symbol and an internal reminder. An American version of this ceremony exists as well—the “Order of the Engineer” (bit.ly/14g7Pn)—though it’s not widespread. It begins with the words: “I am an Engineer. In my profession I take deep pride. To it I owe solemn obligations.”

These are good places to start. But their historical roots in metal-bashing, which hark back to the first engineer perhaps 5,000 years ago, don’t match today’s software engineering. We share with all engineers the challenges of problem definition and analysis, of making tradeoffs between time and cost and safety. On the other hand, we don’t produce anything tangible, nothing you can really drop on your foot. Our end products are strings of ones and zeros, binary integers, no less and no more. Our ceremony needs to reflect the non-tangibility of our product.

What do we swear by? If we want to go the dead Greek route like doctors, how about Pythagoras, the first geek? His eponymous theorem—and, more important, his concept of mathematical proof—have withstood the millennia a whole lot better than Hippocrates’ prescription of willow bark for pain relief. Or if Pythagoras is too Western or too dead, how about remembering our end product? Perhaps this: “On my honor, by the holy opposites zero and one, I swear …”

What do we wear to show our art? Rings are easily visible, but even an extra few grams on a seldom-used finger add up after a day on the keyboard and mouse. A piercing? Perhaps, but in what? (No, not that.) How about a bar code tattoo, or better yet, a QR code? Each would carry a GUID unique to the oath-taker. They’d be decipherable with the certifying agency’s public encryption key, so we’d know they were genuine. Any potential employer could check, using a smartphone app.

Now that I’ve stirred up this wasp’s nest, I want to hear from you. I’ll select the best ideas for our oath. Eight clauses there will be—a power of two, of course. What do we promise to do, or refrain from doing? Tell me what you think by sending an e-mail to the magazine at mmeditor@microsoft.com. And not just, “I will not drink at lunch, unless I’m thirsty.”


David S. Platt teaches programming .NET at Harvard University Extension School and at companies all over the world. He’s the author of 11 programming books, including “Why Software Sucks” (Addison-Wesley Professional, 2006) and “Introducing Microsoft .NET” (Microsoft Press, 2002). Microsoft named him a Software Legend in 2002. He wonders whether he should tape down two of his daughter’s fingers so she learns how to count in octal. You can contact him at rollthunder.com.