A modest proposal for a new development paradigm
November 11th, 2012 12:43:17 pm pst by Sterling Camden

The introduction of a new paradigm in software development is almost always more properly a recognition and codification of principles that developers have honored intuitively for years, and the one I’m about to propose is no different in that regard. Developers of both end-user applications and software development tools have often observed that the consumers of their productions are likely to:


be uncertain about how to begin
make common errors when using the product
attempt to use the product in ways other than the purposes for which it was designed
Developers have haphazardly employed a number of tactics to remedy these ills. I hereby propose a systematic strategy to insure that not one user goes astray, which I call Stupidity-Oriented Development (SOD). SOD includes the following helpful practices:

Put the user in a box and keep him/her there

Make the usual things simple, and the unusual things impossible. Don’t think of this box as a prison, but rather “a fortress deep and mighty, that none may penetrate”. Users can’t hurt themselves if we only allow them to achieve certain things that we know in advance aren’t harmful. The best examples of this principle are graphical wizards that include only the options that are reasonable. Rather than rapping the knuckles of a wayward user with an error message, we simply make it impossible for him/her to perform the wayward act. If they express a desire to pursue an option contrary to our guidance, the correct response is: “that’s unsupported.”

Make the user repeat his/her intentions

It is axiomatic that the most frequent mistakes in software development are type errors. Not even highly-skilled developers can write so small a program as “Hello world” without trying to pass a string where a Microsoft.Playthings.World object is expected instead. Languages that employ SOD solve this problem with static typing — the developer must state the type of object expected, and then must also type the object that is passed using a compatible class. By forcing the developers to repeat themselves in this fashion, the compiler can check both statements for consistency, and stop them from pursuing their momentary insanity. In recent years, though, this safeguard has been increasingly threatened by a new laxity that goes under the name of type inferencing. This dangerous development sprints down the slippery slope of assuming that developers mean what they say.

Lead the user down the right path

Perhaps the single most SOD-like feature ever implemented on a large scale was Microsoft Office’s most famous assistant, Clippy. Clippy’s animation appealed to the playful tendencies of the human brain, and cheerfully offered to help the user do the things s/he should do, rather than what s/he wanted to do. Alas, Clippy was ahead of his time, and failed to achieve the unsurpassed popularity he deserved. Some analysts have attributed this failure to the work-related image of a paper clip, but later incarnations as a puppy, wizard, or genie did not fare any better. Perhaps if he were reintroduced as a Nyan Cat or Gangnam Style dancer, he might be better able to command user attention.


All of the above practices share a common theme: using well-designed silicon-based intelligence to guide and correct the inferior carbon-based intelligence that evolved purely by chance within human skulls. While not a perfect solution, it is the best we can do until the latter can be replaced totally by the former.

Tags: clippy, design, development, programming, satire, sod

A matter of the heart
August 10th, 2012 3:58:06 pm pst by Sterling Camden


I scurry between the oncoming traffic and the sidewalk that’s closed for construction as I continue up Jefferson Street. Then I spot the hospital ahead on the left. It’s the first time I’ve seen it since they discharged me almost a month ago. My sister and mother drove me home that day. I remember saying goodbye to Gail, my nurse. All the nurses in the Telemetry Unit treated me well, but Gail had been especially thoughtful. I’m glad that she was on duty that last day to handle my discharge.

One month ago today they stopped my heart to repair the mitral valve. Of course, they kept my blood pumping and oxygenated with a machine all that time, so I wasn’t really dead, but I like to think of myself as resurrected anyway. By any standard older than a century, my revival was nothing short of miraculous. Is it any less miraculous because we know how it’s done?

I’m walking from the ferry to the hospital today (a mile and a half, almost all uphill) to see my surgeon, Dr. Eric Lehr, for my one-month follow-up. That’s possible because of a minimally invasive approach that the good doctor employed. Instead of breaking the sternum, he used robotic arms to enter my right side and pass behind the sternum to operate on the heart. I was up and walking almost immediately afterwards, and back to work within a week. Now, I’m able to walk three to six miles every day, and feeling more stamina than I had before the surgery.

I got to meet the robot before they put me under. I have to admit that I didn’t find it as impressive as I had hoped. Just a big, grey machine with arms. And it doesn’t function autonomously, so it’s really just an extension of the surgeon’s hands. But I still like to say that a robot fixed my heart — it sounds so geeky.

Thanks to the ferry schedule, I arrive at the hospital forty minutes early for my appointment. I consider going to the cafeteria to eat something. Then an idea occurs to me. I walk into the gift shop and pick out a small arrangement of African violets. I take the elevator up to the fourth floor, then find the Telemetry Unit. At the desk I ask if Gail is working today.

“Yes, she is.” They page her.

After a few moments, her slender figure appears around a corner.

“Remember me?” I say.

It takes her a second, then she puts it all together. “You’re the one who has a son living in California, right?” My son visited for part of my stay. I can see what she remembers.

“Yes,” I reply. “The surgery was a month ago, and today I walked here from the ferry.”

“Over all those hills?” she asks, incredulous.

“Yes, and I don’t even feel winded. I have an appointment with Dr. Lehr, but I wanted to give you these and to say ‘thank you.’ You made my stay here a very pleasant experience.”

Gail begins to tear up, and then she hugs me. She apologizes for stepping on my foot in the process.

“It’s OK. Thanks again,” I say, and then we say goodbye.

Tags: heart, hospital, mitral, nurse, surgery, swedishmedical, valve