Category Archives: Uncategorized

The Imperfect Craft

For much of my career I viewed software development as a craft: a constructive endeavor with fixed standards of excellence. I thought that over a lifetime, I could assiduously refine my skills, inching toward some level of subjective mastery until eventually myself and others would agree that I had become “a real expert.”

Unfortunately it doesn’t work that way with software. The technological context in which software is developed and used changes constantly and dramatically. So most of the stringent guidelines we impose upon ourselves in the name of craftsmanship are at risk of being obsoleted by some new advance in hardware, in programming languages, or in the baseline services of the operating systems we develop for.

Ask yourself, or a software developer of a certain age: what were the guidelines for crafting excellent software 5 years ago? 10 years ago? 20 years ago? The farther back one goes, the less relevant the answers will be to our modern craft. Memory management? Not a significant issue for most programmers today. Multitasking? Obliterated by modern operating systems with efficient context switches. Concurrent programming? Constantly reinvented in the wake of multi-core CPUs, GPUs, and higher-level programming language features.

I have spent a lot of my professional life honing “the skills of programming.” That is, the set of skills that seemed important at the start of my career. But I’ve seen what happens to people who cling to outdated standards of craftsmanship: they become self-righteous, bitter, and delusional. Guided only by the hallowed rules of yesteryear’s geniuses, they and their work become marginalized. Without a foothold in the modern technological context, programmers who should be great are rendered effectively incapable of developing their craft.

I’m sure this problem is not limited to software development, but given the world’s obsession with computers and related technology, the software landscape is changing much faster than many of us can easily keep up with. The world demands that this craft change. The technology for sculpting, firing, and glazing a ceramic bowl has also changed over the years, but not at the same mind-boggling rate as prototyping, programming, and testing a software application has.

What if you happen to enjoy old-school programming? There’s nothing inherently wrong with crafting “retro software.” In fact, I’m sure that dabbling in outdated techniques will serve to round out a modern programmer’s abilities. But while a classics scholar may be intrigued or even obsessed with ancient Greek or Latin, she knows that in order to remain relevant she must publish her papers in modern English. And if Esperanto were to become the lingua franca for her craft, that is the language she would have to use.

In software, the lingua franca is changing all the time, whether by adoption of new programming languages, through nuanced idiomatic changes in the ways that we use languages, or because of evolving operating-system level facilities. We don’t have the luxury of assuming that the tools and techniques of our parents, or even our younger selves, are sufficient to move the profession forward.

As a modern software developer, I derive as much joy from remaining relevant as I do from the thrill of identifying and solving the particular problems in my work. To remain relevant, I have to reject my previous assumption that I would spend a lifetime refining my craft. Instead, I will spend a lifetime adapting the techniques of yesterday’s craft to the sometimes radically different challenges of today. I may never become “a real expert,” as I hoped I might be. But by diligently throwing out the old rules and embracing the new ones, I hope to come close.

Bitsplitting With Jean MacDonald

Episode #9 of the Bitsplitting podcast features my friend Jean MacDonald, who recently founded App Camp For Girls. Jean and I know each other through our respective efforts to boost our small Mac and iOS-based software companies. She is a partner at Smile Software where she focuses on marketing, PR, and customer satisfaction, among other things.

Over the years I have had the pleasure of catching up with Jean at various conferences and, when the stars align, in the Karaoke bars. I have always been impressed by Jean’s indomitable spirit in both her personal and professional endeavors. Thanks, Jean, for joining me on the show.

The Medium Compromise

I have been trying to appreciate Medium since it launched several months ago. I wanted to like it from day one, largely because of my admiration for Evan Williams, who co-founded the company. When a guy who co-founded Blogger and Twitter takes a stab at raising the bar on social writing, it begs my attention.

Williams’s mission statement for Medium is inspiring, if vague:

Medium is based on the belief that the sharing of ideas and experiences is what moves humanity forward. The Internet is the greatest idea-sharing tool ever imagined, but we’ve only scratched the surface of its capabilities.

Yes! Let’s share, let’s move humanity forward, let’s, umm, scratch the surface some more? When I visit the Medium site I find a huge list of article summaries with author bylines, suggesting a magazine-style format. But unlike a magazine, there is absolutely no topical cohesion. The first four articles as I write this are on the subjects of electricity demand, star-spotting the actor who played John Locke from “Lost,” and two items on the nitty-gritty of user-interface design. Yikes! This is just like the Internet: a vast repository of ideas on virtually every subject, being, I grant you, shared.

But wasn’t the internet already getting pretty good at that? Today, anyone with an internet connection can establish a bona fide, personalized soapbox with a free Blogger, WordPress, or Tumblr account. These services all provide for limitless self-expression while also giving authors the ability to dramatically customize and, to a great extent, “own” the style and structure of their expressions. Medium feels more like an effort in the other direction: to homogenize and commoditize self-expression such that each component contribution is differentiated only with a small byline, avatar and genre label on an otherwise mass-produced “Medium” experience.

In Luke Esterkyn’s high-level “How Medium Works” article he, ahem, scratches the surface of what rubs me the wrong way about Medium:

Posting on Medium […] is elegant and easy, and you can do so without the burden of becoming a “blogger” or worrying about the arduous task of developing an audience.

To me this betrays the implicit compromise of Medium’s mission: at last one can be a “serious writer” without concerning oneself with the matters of serious writing. I can see from Medium’s success that they have indeed attracted great writers, and I don’t mean to disparage even one of them for participating. But I am mildly surprised so many have chosen to donate their talents to Medium rather than publishing on their own or through a publication with a more focused brand.

Perhaps some of the authors contributing to Medium truly have no other outlet. I commend Medium for encouraging people to write if they otherwise would not, but I don’t think this fulfills Williams’s lofty mission. It seems more like a case of dealing smartly in excess supply: we have an excess of better-than-average writing, and Medium has found a means of collecting, packaging, and distributing that content.

I’m reminded of the high-quality packaged foods found in supermarkets. Some premium foods are produced at such quantity that stores are able to sell the very same products in vastly different packaging. The food that sells in a fancy, name-branded package might look the same, smell the same, but cost far less in the drab store-branded box. It’s a big win for consumers who stumble upon higher-quality products at rock-bottom prices. But they also pay a price: sifting through aisle after aisle of generic product, looking for clues of greatness. Buying, trying, and rejecting the generic crap that doesn’t meet their expectations. The premium producers pay an even greater price: a severed relationship with customers. The very ownership of their brand, which serves to build up and then defend the pride of ownership in their work, is lost when Safeway, CVS, or Walgreens slaps their logo on their hard-won success.

Obviously I’m not blown away by Medium, but I’m not writing it off. As a consumer, I’m attracted by the large amount of free, relatively high-quality content. I’m willing to sift through some generic boxes for this. As a producer, it strikes me as underwhelming and uninspiring.

My four-year-old son sometimes becomes withdrawn and quiet. I might try to coax some talking out of him, to gauge his mood. “How are you feeling?” No reply. “Are you feeling good?” No reply. “Are you feeling bad?” No reply. Finally, he might moan lethargically, using his beautifully imprecise language: “I’m just feeling a little bit good and a little bit bad. I’m just feeling a little bit medium.”

Check Your Libel

Two days ago, the internet went nuts over Apple’s alleged homophobic, capricious censorship of Saga #12, an adult-themed comic. As far as I can tell, the allegations originate in a statement from the comic’s co-creator, Brian K. Vaughan, in which he claimed that the issue had been banned specifically by Apple:

Unfortunately, because of two postage stamp-sized images of gay sex, Apple is banning tomorrow’s SAGA #12 from being sold through any iOS apps.

The claim was taken by many at face value, and folks were understandably outraged by the implication that Apple was specifically rejecting the issue based on gay-themed content. It didn’t take long before the claim had been republished in zillions of tweets and on blogs ranging from casual fan sites to Comic Riffs, a blog residing under the banner of the Washington Post.

In short: it didn’t take long before everybody “knew” that Apple was a big, bad, homophobic, reckless censor of artistic content. Until yesterday, when the news came out that Apple had not, in fact, rejected the content in question:

It appears that Vaughan may have been jumping the gun in assigning blame. Apple confirmed to Macworld later on Wednesday that it did not block Saga #12, and Comixology CEO David Steinberger subsequently took responsibility in a post on the company’s blog.

It turned out that the content in question had never even been submitted to Apple. I’m guessing some kind of communication breakdown occurred between Comixology, the creators of the app, and Image Comics, the publishers of the comic. Amid this miscommunication, Brian K. Vaughan presumably leapt to the conclusion that Apple was at fault, and chaos ensued.

I myself have been guilty of jumping to conclusions about Apple. But when allegations like these take on a kind of collective confirmation, it’s unfairly damaging to the brand and, by extension to the reputations of the people who work for Apple. I am not an expert in legal matters, so I can’t say that it constitutes libel, per se, but it meets my everyday understanding of the term: a false written statement that damages a person or company’s reputation.

It’s extremely upsetting when a damaging claim turns out to have been false. We need to be outraged by this, or the whole system of fact-based accountability breaks down. As mad as you or I or anybody else may have been about the alleged misdeed by Apple, we should be at least as mad that we were misled to believe it was true.

To Brian K. Vaughan’s credit, he apologized publicly for the mistake, in a brief statement published by The Verge and also on Image Comics’s Tumblr:

I wanted to apologize to everyone for this entire Saga #12 kerfuffle. Yesterday, I was mistakenly led to believe that this issue was solely with Apple, but it’s now clear that it was only ever Comixology too conservatively interpreting Apple’s rules. I’m truly sorry. I never thought either company was being homophobic, only weirdly inconsistent about what kind of adult material was permissible.

It’s an apology, and that’s a start. But in my opinion it doesn’t meet the standard of a great apology. First, the “led to believe this issue was solely with Apple” leaves open the implication that some of the fault remains with Apple, when all evidence points to the fault being entirely in Comixology’s decision to not submit the issue. Second, the apology fails to acknowledge and specifically apologize to Apple for the damage his statement has done to them.

When any of us witnesses what we believe to be an injustice, it’s tempting to cry out loudly and forcefully. The web is a great tool for dissemination of information, but it’s just as good or better at spreading misinformation. In the old days, libel was something that, practically speaking, only an elite class of published writers risked committing. Most people didn’t publish written content for all the world to read. These days, any one of us could be on the verge of stating as fact something that is very damaging to a person or company, yet very false. Check your libel.