Being a wordsmith and bibliophile, it's no wonder that I'm also a big fan of metaphor, analogy and simile; here are a few of my favourites from my IT field of expertise:
The "Adam and Eve" Analogy for Effective IT System Usage
I have a commercial and customer facing role in IT currently - I love the variety of the job and meeting lots of different people in a wide range of industries all over Europe and the US and hearing their stories and experiences at work. One of the more frustrating sides of the project delivery we do is when an organisation has invested in a system or some software and struggles to implement it properly and successfully and fails to realise the forecast benefits. This isn't an irresolvable situation, but is, sadly, quite common. One of my customers recently shared this very charming analogy with me when we discussed this very issue:
Adam was sat under a tree in the Garden of Eden one rainy afternoon when Eve strolled over.
"Hey, Adam," she said.
"Hello, Eve," he replied, despondently, shivering. "How's it going?"
"Well," said Eve, "I've just heard about this amazing new system called 'clothes'!" She pushed a damp lock of hair off her cheek and behind her ear.
"Really?" said Adam, rather disinterestedly while flicking an ant off his inner thigh.
Eve sat down beside him. "Yeah, seriously, I think you'll be interested in this." She winced and removed a twig from underneath her bottom. "Apparently 'clothes' can keep us warm and dry and can stop the insects biting us!"
Adam looked up and at her. "You're right," he said. "That does sound interesting. Tell me more."
"Well, I know where to get them," Eve said, looking up at the thunderclouds stretching to the horizon. She leapt up. "No time like the present."
Later that afternoon, the rain still pouring down, the pair were sat together again underneath the tree, now resplendent in sets of marvellous, if skimpy, fig leaves. "I don't think these clothes are working properly," said Adam.
"Rubber Ducking" - a Something for Problem Solving
Even with my pretty extensive training in the English language I'm not completely sure if this is a metaphor, or more an urban myth that's turned into a kind of simile - although here I'm using it as a verb. I don't have a technical background per se and have done no programming beyond making an Amstrad CPC 464 repeat 'i am cool' ad infinitum on screen and the Application Development 1 course for Lotus Notes. So, sometimes I do need to phone a helpdesk. Many is the time though, that as I have been describing my problem to the hapless support professional on the other end of the line, lo and behold! The answer comes to me crystal clear with barely more than a hello from said helpdesk expert. One time, following my profusion of apologies for the interruption and complete waste of the person's time, the support analyst said: "Ha! You're rubber ducking."
"What?" said I. And was wryly told to look it up.
Apparently the term 'rubber duck debugging' originated from a book called "The Pragmatic Programmer" which contains a tale about a programmer who carried a rubber duck around and would debug their code by forcing themselves to explain it, line-by-line, to the duck - and miraculously, the answer would come to them without the need of another human in the process. Wikipedia states that many other terms exist for this technique, often involving different inanimate objects although I don't know any of these. Do you?
The "Like Breathing / Like Driving on Snow" Simile for Pace of Change
Since I currently specialise in DevOps, I spend a lot of time every day talking with people about the cadence of change: specifically, how to increase it. There are lots of elements to consider throughout the software development lifecycle when we apply the theory of constraints to identify and eliminate bottlenecks from requirements and design, through testing and into release - which is where these similes come into play. In a breakfast briefing we held last week, two of the panelists explained how iterative releases and releases on demand should feel. Many organisations we work with have long release cycles which culminate in 'release weekends' where all hands are on deck, everyone is on high alert and holding their breath hoping the thing will work, and when it doesn't, scrabbling around madly trying to fix it and then holding their breath again waiting to see if it does.
The idea here is that we shouldn't have to hold our breath. Releasing software should be so frequent, regular, consistent and predictable that it is just like breathing.
Similarly, it shouldn't feel like a British person feels when we have one of our biannual snowfalls and get caught on the road in our car, white knuckled clinging on to the steering wheel, tense, boggle-eyed and leaned forward in our seat, breathless as we slide onto a roundabout out of control and praying we don't collide into something. It should feel like the pilots clearly did on a WOW air flight to Iceland I was on last year, when, during their announcement of our imminent descent, they mentioned there was a blizzard on the ground at 'Reykjavik and so 'hopefully' we would be able to land. The rascals.
The Formula One Analogy for Pace of Change
Yes, it's clear we talk about the pace of change a LOT, but this one's really fun as you get to watch a video:
Video comprehension quiz: What proportion of the 2.09 long video is spent doing the 2013 pit stop?
It's easy to get caught up in the frustration and despair of the things that aren't going right in the world and in our lives, but let's just take a moment to appreciate the progress we've made in processes and technologies in the last fifty-odd years. We're not so bad, huh?
The Metaphor of "Software Eating the World"
It's not actually eating the world, that's a little scary - it's our world and we need it. But it's becoming every more prevalent and essential to the way we live our daily lives. Here are some words on the subject from Marc Andreeseen in the Wall Street Journal.
This metaphor does underscore the key driver for DevOps - the critical importance of digitization for all businesses' survival and the need to push innovation to end users.
The metaphor also reminds me of some of the conversations I've been having recently around IBM's Watson - their cognitive computing platform. We are very much anthropologising Watson - from the debates over 'its' gender to the terms I hear in discussions about it - what to feed it, how to nourish it - hardly surprising since we've taught it to think like us, made it so we can ask it questions in our language that we think of it as animate somehow.
So there you have it - a few of my favourite analogies, similes and metaphors I've come across in my daily IT life. Have you a favourite you'd like to share?