Today's Glimpse Into the World of Software Writing

Two years ago, Mark Bernstein was part of the stellar guest-blogger team in this space, when I was holed up in China in a fever of book-writing. In his day job, Mark Bernstein is the head of Eastgate software and the creator of a program I use every day, Tinderbox.

He is in his own own fever of composition now, preparing a new version of Tinderbox. On his site he has a fascinating account of how he went about adding a particular feature to this new release. Here's the headline:


If you have any interest in software, I think you'll find this worth reading. It reminded me in many ways of the months I once spent on a Microsoft program-design team. But much more broadly it is part of the endlessly engrossing category of "how things work" in the world.

I won't give my full speech on that topic right now, but I will say that for me one of the big appeals of journalism is the opportunity and excuse to meet people in far-flung roles and ask: OK, can you tell me exactly, step by step by step, how you [decide on questions for the SAT / figure out how much weight you can take out of a car's design so it uses less gas / decide when software is "bug-free enough" to be released / create an airplane with a parachute / teach a computer to "understand" speech or automatically group related news articles / set up a factory that employs 250,000 people / decide what to put into a half-hour news broadcast, back when those existed / anything else.]

Almost any organized human activity is much more complicated and interesting than you would expect, once you examine it in its particularity. For instance: I have never taken mail delivery for granted after my earliest paying jobs as a parcel-post sorter and then letter carrier at the local Post Office. People scoff at the USPS, but it pulls off some amazing feats of volume management -- even as today's volume sadly goes down.

This brings me back to Mark Bernstein's chronicle. The next time you grumble at some aspect of the tech world -- "wow, this is ugly UI!" "why won't this damned program do what I want?" -- reflect on the long series of choices and trade-offs that go into even the simplest-seeming feature of program. As a reminder, here is where you can read more.