People in glass houses shouldn't throw stones, I've heard. Given the rather pitiful state of this blog, do I have any right to criticize someone else's posts? Well... let's pretend I do.
There's a style in blogging that I loathe. I have no catchy name for it, but this post is an excellent representative: What Makes a Great Software Engineer. I have never read this blog before and don't know its author; I stumbled upon it through Hacker News, where posts like this are a dime a dozen (along with plenty of interesting stuff as well). Being free of attachment, I can liberally tear into the post without risk of offending too much, as the author can always claim I'm judging unfairly based on a single post. I'm sure I am.
What's wrong with it? Everything. It's content-free, metaphor-riddled fluffy nonsense. The author expended a minimum of mental effort blurting it out and the audience will spend even less digesting it. Ten minutes after you've read it you'll have forgotten all about it. It's almost a parody of the style—but there's not a hint of irony in it, so you know it's not. Let's run down the checklist, shall we?
- Use a grandiosely promising title.
Of course you're going to read something titled "Getting It: What Makes a Great Software Engineer". Don't you want to be a great software engineer? Maybe you think you're already one—you'll still need to verify. Maybe the author has the golden insight that will elevate you above the unwashed masses. At the very least, showing people that you read posts like this demonstrates you're a cut above the rest (this inane thought is eloquently expounded by the incomparable Jeff Atwood).
- Open with an overly broad question.
As every writing class in the world will teach you, start by stating the topic, concisely and clearly. What's more concise than the single question that you're going to be providing the answer to? Never mind that the question is so broad that you could answer it in a dozen different ways without opening yourself up to accusations of not sticking to your topic. Readers know where you're coming from and you're still free to move in whatever direction you want, or none at all. It's a win-win situation.
- Use the dictionary as your straight man.
A tried-and-true way for starting off your chain of reasoning, if you can think of no other way to do it, is to open your dictionary and copy its definition verbatim. If you're lucky, there will be some peculiar turn of phrase that you can exploit to your advantage. Even if there's not, you'd be foolish to pass up the whittling down to essence that has already been done for you. In recent times, the dictionary has been increasingly supplanted by Wikipedia. It's even better because it doesn't stick to a simple definition but can provide you with endless factoids on a topic.
- Illustrate by clip-art.
Images draw the eye and help capture the reader's attention. That the attention will be directed to the images and not your text is not a concern; anything that keeps the audience in their seats is a win. Animations and videos are even better. Don't worry about making the images provide added value—they add value by virtue of their presence. The most tenuous connection to the words is enough to fend off accusations of irrelevance, so don't fret about it.
- Employ the metaphor as the gateway to truth.
The best way to understand something is to pretend it's something else entirely that you already understand. At the core, all things are like each other, and the metaphor allows you to effortlessly leverage that insight. To argue that a software engineer is like someone building a house, all you need to do is state that a software engineer is like someone building a house. Everybody knows how you build a house, so now everybody knows how a software engineer works. This helps immensely in clearing away rhetorical obstacles to your main point.
- Divide the world into good people and bad people.
This technique is so obvious and effective that you have to wonder why it's not employed more often. If you want to hand your readers advice on what to do, explain to them how there are good people, who act in a manner consistent with your opinions, and bad people, who do not. If it's not immediately obvious how a bad person might become better, reserve the details on how to do this for a future write-up. You'll exploit your readers' attention spans much better that way.
- Engage your readers.
The audience will be getting up to leave after your presentation—don't let them! You need a repeat audience to be really successful. Don't contend yourself with getting your points across, make them feel like they're part of an experience. Presenting them with a vote on something, anything, is a near-perfect way of doing this. Requiring the user to click somewhere is the lowest possible threshold for participation, and everybody wants to know what everybody else thinks. Start off with a voting system and you're well on your way to building a community, which is like an audience but better.
Honestly, I didn't intend to lay on the sarcasm as thick as this when I started out to write it, but I really couldn't help myself. I hate lazy writing much more than bad writing. Bad writers can still engage you; lazy writers suck the soul out of everything.
Don't write by recipe, folks, it's bad for you and it's bad for your readers.