The Best Software Writing — Joel Spolsky

Well-written, insightful books on subjects I know nothing about often impart some lasting and surprising ideas. The biggest problem is finding them, since you don’t know they’re well-written or insightful till it’s too late. Pleasant surprises have abounded recently, one being The Devil’s Candy: The Bonfire of the Vanities Goes to Hollywood. Another comes from Joel Spolsky, who writes a popular blog on software called Joel on Software and edited The Best Software Writing I. In an industry where books age date so fast as to be almost pointless, like the hardware that runs software, one astonishing aspect is how The Best Software Writing, published in 2005 and composed of many essays written earlier, is still relevant and fascinating—and will probably be so for a long time yet.

Take Danah Boyd’s “Autistic Social Software,” which, like most of The Best Software Writing, explains how computers and people interact. It was published around 2004, which represented a societal turning point not widely recognized at the time, as virtually everyone my age hopped on what we now call “social networking sites.”* She observes that those sites weren’t very good because they’re not focused on users, even drawing a not entirely apt analogy similar to the one I made Science Fiction, literature, and the haters:

While many science fiction writers try to convey the nuances of human behavior, their emphasis is on the storyline, and they often convey the social issues around a technology as it affects that story. Building universal assumptions based on the limited scenarios set forth by sci-fi is problematic; doing so fails to capture the rich diversity of human behavior.

Her comments about science fiction are accurate regarding much, but not all of it, just like her comments about the focus of programmers on computers and their limitations, forcing us to adapt to them rather than vice-versa. The market has a knack for giving people what they want, however, and that focus is changing over time as iterative generations of software improve and people move to sites that work better. Boyd says, “[…] there is a value in understanding social life and figuring out how to interact with people on shared terms.” Right: and those who figure out what that means will be rewarded. I’m reminded of a programmer friend whose e-mail signature says “Computers aren’t the future; people are,” and I suspect he would approve of the lessons in this essay and larger book.

That’s a single example of how you take offline phenomenon—how people congregate—and apply it to an online context. Other essays reverse that dynamic. Clay Shirky’s “A Group Is Its Own Worst Enemy” explains how online groups form and break apart in much the same fashion as offline groups. You could look at this in terms of clubs, families, countries or jobs, all of which have similar cohesive and destructive forces assailing them over different time periods. One thing the military has going for it is hundreds of years of experience in taking people and forcing them to work together toward a common goal. Many sports accomplish the same thing. But in both cases, the tasks—destroying things and killing people, moving a ball down a field—are narrow and well-defined compared to the wide-open field of artistic creation. Granted, both the military and sports have their wider, macro possibilities—what do we destroy and who do we kill and why? (this question is more often known as politics), or what rules should the game have and why?—but they’re not intrinsically undefined like software, or other forms of intellectual endeavor (Paul Graham wrote about this in Great Hackers.) The incentives are easier to get right. In software, like life, they’re not. Compensation becomes harder to get right when goals are less easily defined, which is a major subject in one essay and subsidiary in others. I wrote about it as applied to grant writing, using Spolsky as a launching pad, and if more people realized what he’s already discovered, we might not waste so much effort trying to reinvent the wheel or invent futile algorithms for what is inherently a tricky subject.

The Best Software Writing is, yes, about software, but it’s about more, including the future. Those interested in seeing it, and the inside of the most transformative industry of recent times, would do well to read it. It contains more thought than Literacy Debate: Online, R U Really Reading?, a New York Times article published yesterday (read it, or the rest of the paragraph won’t make much sense). Why hasn’t the reporter figured done enough background research? I wish I could say. It contrasts with Shirky’s other article, “User as Group,” which demonstrates much of what’s right about the new mediums without questioning the medium’s utility—something that the New York Times article utterly misses. Furthermore, on the individual level, the individual is going to suffer the pain of insufficient literacy or numeracy in the form of inferior jobs and a less intense life. Many seem happy to make such trade-offs, and we go on telling them to eat their Wheaties. If they don’t, they won’t be able to write at the level of skill and detail in The Best Software Writing, which would make the world a poorer place, but those involved don’t seem to care as a group. Oh well. What harm not reading Spolsky or Fred Brooks will harm the individual, but it will also cause splash damage to others who have to work with them. To the extent reading online ameliorates those problems, as Shirky implies, we’ve made improvements. He, Spolsky, and Brooks who write about programming only to the extent you’re unwilling to see programming as a metaphor.

The major fear articles like “Literacy Debate: Online, R U Really Reading?” express, I suspect, is that many people are getting along without books and stories. On a societal basis, this probably isn’t a good thing, since democracies depend on educated citizens with historical knowledge—but on a personal level, if you’re a mid-level account manager at some large company, how much does your familiarity with Tolstoy and Norman Rush really help or hurt you? On the other hand, if you want to be at the top of virtually any field, you need to read and understand the world. In software, that means books like The Best Software Writing, which, though it consists almost entirely of pieces that originally appeared online, is a physical, dead-tree book that I liked reading on paper far more than I would’ve on the screen, where I already spend entirely too much of my face time. I want what I find convenient, as do most people, and many of the essays point toward defining what that means. It’s got more about how fulfill human desires than most books, fiction or nonfiction. Volume II of The Best Software Writing might never appear. Given the strength of the first, I wish it would.


* I hope future readers find this strange phrase an anachronism showing how primitive we are, because it’s ugly and imprecise. If a phrase must be one, it at least shouldn’t be the other.