I do a fair bit of writing.
Every now and again, someone will ask where I get my ideas, or how I find the time, or for pointers on writing style.
First off, on writing style, I'd suggest reading the advice of someone who's finished the race not just started it - The Fieldstone Method by Weinberg and On Writing by Stephen King are two great examples.
I did, however, find out about a new resource this morning:TVTropes.
Yes, TVTropes, one of those occasionally offensive websites that characterizes drama in a way that is just a little more off-the-wal than Wikipedia.
Why? Because TVTropes explains what it is about drama that can make a show compelling and interesting ... or boring and dull.
When it comes to conveying our arguments, boring and dull loses.
Today I would like to talk about two specific ideas in writing - "Show, Don't Tell" and "Red Pill Blue Pill"
Show, Don't Tell
This one is a pretty well-accepted issue in story telling: You don't say the hero is strong; you have him lift the boulder, clear the forest in a day, or pull the sword from the stone.
You don't say the hero is brave; instead, he fights the dragon when others run away.
For that matter, you don't even call him a hero. Instead, he is simply the main character - the one who doesn't run away, who fights the dragon, who is defeated, then goes on a quest to recover the item to defeat the dragon and save the damsel. With a story like that, the audience can figure out who the hero is. (To take a different approach -- what does a story like this tell us about the damsel?)
Now a modernist is likely to say that "show don't tell" is a little old school; that there are many new forms of experimentation with writing and that we should not be locked into old patterns of communicating.
But I'm trying to make a point about software, folks.
Sometimes there is a a need to "tell, not show" in software.
When the build is busted, you can say "the build is busted." When the app is too buggy too ship and time is of the essence, you can say "the app is too buggy to ship."
The thing is, people like to be smart. Telling about the software means making a value decision about the software. This takes away the decision from the person you are talking to. In a way, it makes them sort of "out of control."
People in power like to (at least feel) in control.
Next time you are struggling to communicate with someone who isn't "getting" it, consider showing the details about the software and letting them decide. Let the exec decide to ship or not.
It's amazing how well the phrase "well, okay, if you'll take responsibility" can help guide a decision maker to an informed decision.
Red Pill, Blue Pill
But I promised to talk about Red Pill Blue Pill.
Consider the movie The Matrix.
Early in the movie, Morpheus gives Neo (the "hero") a choice:
After this, there is no turning back. You take the blue pill - the story ends, you wake up in your bed and believe whatever you want to believe. You take the red pill - you stay in Wonderland and I show you how deep the rabbit-hole goes.
Now we the audience, know how this will go. Neo's gonna pick the red pill, right?
I mean, he has to. If he picks the blue pill the story ends, and we're only twenty minutes into the movie.
Heck, if he picks the blue pill, there is no story.
So what's the point?
The point is to tell the audience about the character of the hero: He seeks the truth, he is willing to undergo hardship ... at the very least he has a sense of powerful curiosity or adventure.
This is "show, don't tell" in action. And yes, I got it from TVTropes.
We all have to tell stories every day; you can tell people how "awesome" and "amazing" your development shop is, or you can tell them what your team has accomplished. It's the same way with your testers, your project, and your company as a whole.
I'm just saying: When you tell stories, consider giving details and letting the audience decide.
Then again, ultimately, that's up to you.
Schedule and Events
March 26-29, 2012, Software Test Professionals Conference, New Orleans
July, 14-15, 2012 - Test Coach Camp, San Jose, California
July, 16-18, 2012 - Conference for the Association for Software Testing (CAST 2012), San Jose, California
August 2012+ - At Liberty; available. Contact me by email: Matt.Heusser@gmail.com