Stuck in a dull conference? You need Verity's survival guide
Getting your own back on technical seminar speakers
Stob The technical conference season is once more upon us. The speakers at these affairs spend a lot of time sharing their software design patterns and anti-patterns with us; as a regular attendee it seemed to me that we punters were overdue for revenge. Here is some of their own medicine.
Motivation: At a talk about a new programming technique, one particular attendee has already been using it for some months. The problem is that not everybody in the room is aware of this.
Intent: By the end of the session, everybody does know. Oh yes.
Implementation: About 15 minutes into the talk, the following occurs.
Speaker: ...and that about concludes the preliminaries. Time to get to some real code, you'll be glad to hear. So I'll just switch off PowerPoint... Yes?
Attendee, standing up, the better to share: Are you going to use the Northcott approach?
Attendee (serious, plonking voice, as if preventing a child lighting a match on a petrol station forecourt): Are you really going to use Northcott as the basis of your demonstration?
Speaker (defensive): Well, it is the clearest version of...
Attendee: It's just that it doesn't work.
Attendee (confidentially): We just completed a project for a... a government department. We started off using Northcott, and the whole thing collapsed on us as soon as it went to integration testing. We had to redo everything using IceDolphin.
Speaker: I know that there can be scaling problems using...
Attendee: Problems? I should cocoa. Northcott's just a bad joke. Except for toy projects, of course. You need to start with HuskyToast at least.
Speaker (annoyed): Look, do you think we could take this offline at the end?
Attendee (affably, now his duty is done): Sure. I just wanted to point out you were wasting the time of everybody here. But that's cool.
Related Pattern: I know the speaker slightly from an earlier conference, and I am going to remind him of this by asking a question and using his first name ingratiatingly. A lot.
Pattern: Mock Keynote
Motivation: A keynote is a talk delivered first thing in the morning (when one's resistance is at a low ebb) which all punters are compelled to attend, unless they can prove a genuine, medical reason. Delegates will experience the sensation of being at assembly, awaiting the pleasure of The Reverend Arnold Fondler-Smythe who has come all the way from Footon Cassock to talk down to you girls.
Good keynote speakers are rare birds - not everybody can secure the services of "Uncle" Bob (who the writer can personally attest gives excellent value; presumably he developed the skill of amusing presentation during all those years spent giving Puffin' Billy a spin on the Light Programme). [VS private note to editor: That Humph double entendre macro you sent me is fantastic!]
But just because a conference has failed to secure the services of a good speaker, this does not mean it can skip the ritual. What is to be done?
Intent: To manufacture an ersatz keynote brick without a supply of proper keynote straw.
Implementation: Fortunately, poor quality keynote speeches are quite easy to write and mumble. The main object is to supply enough short-term plausibility to prevent the attendees from standing up and walking out. Close up, the speech contains all the ingredients of a real keynote: tweetable references to the likes of Richard Feynman and The IT Crowd, snatches from Internet memes, stuff nicked from YouTube, flattery. The effect is like listening to a meandering bit of music that, despite constant changes in tempo, mood and key, never quite reaches a tune.
It is only when audience members take a mental step back at the end that they will realise that they have been royally had.
Example: (Slide text: The self-righteous programmer.) Well, good morning. Now, brainy though you guys are (pause for deferential chuckle) I know exactly what you are thinking. You'll be asking yourselves: "What's a systems programmer like me doing at an application programmers' conference like this?" (Laughs at own joke.) No, but really. What you will really be asking is: "What does he mean by the self-righteous programmer?" And what a good question that is. You know, it's funny that we're all here today. This day in 1647, over breakfast - a very different breakfast, of course, to the one we have all just enjoyed - Sir Isaac Newton's father, Isaac senior, then dead for some years, said to his wife: "I think it would be a good idea to plant a couple of Cox's at the bottom of the garden, to give young Isaac something to look at." (Slide: A seedling in a pot.) Except he didn't. (Slide: The same seedling, smashed.) And in a way that is the point. Steve Jobs had a thing or two to say about apples too. (Slide: Apple logo.) But he wasn't talking about apples when he said, "you can't connect the dots looking forward; you can only connect them looking backwards". Nor was he talking about dots. (Slide: Dots.) Here are some dots, and you've probably noticed that they can be connected, whether you are looking forwards or looking backwards. But of course, Steve Jobs was not literally talking about dots, and perhaps the best way to think about that is to consider something George Orwell (Slide: cover of much-read Penguin edition of Nineteen Eighty-Four) once wrote (Slide: photo of an ink pen with a blob of ink) while he was in Burma (Slide: Myanmar flag)... &c &c for the remaining 55 minutes.
If writing even this sort of material defeats available talent, the good news is that it is purchasable by the yard from the web. It is all written by tech support operatives based in Mumbai. They do it on their breaks from ringing you up and telling you that you that they are from Microsoft support, and that they have detected a bug in your Windows machine.
Related Pattern: None I am admitting to. You know who you are.
Pattern: Room for little me
Motivation: You are attending a crowded lecture; the important one which is the reason you bothered coming to the whole conference. Five minutes in, a Charles Laughton tribute act arrives and from the room entrance somehow manages to spot the spare seat next to you, which you had been trying to conceal with your body.
He confidently barges along the row past any number of crowded knees (this making as much noise and disruption as one would expect) and sits down heavily on the edge of your coat, placing a glass of wine on the ground next to his foot so that, if knocked, it will most likely spill its contents on your attendees' folder.
He then proceeds to unship his laptop, a Lenovo Duvet, and unfold it upon his ample thighs, turning around in his seat to secure the assistance of the row behind in plugging in its power.
He spends the rest of the talk making planned and accidental inroads on your personal space, sipping his wine, sweating, playing the Google Chrome version of Angry Birds and snorting sarcastically every time the speaker makes a point with which he disagrees.
Intent: Prevent this from happening, obviously.
Implementation: Damned if I know. Nothing I have tried has worked. You can put your coat on the empty seat and say "I'm saving this for a friend", but they just sweep it aside with an airy "Well, I'll get up when she comes".
Here is a damage limitation pattern: you could pitch up with a bunch of workmates and occupy a block of seats so that only the little fishes swimming at the edge of the school can get eaten.
Related Patterns: Despite the speaker being soft-voiced, I'm jolly well going to eat this sweetie - a sherbet-Type-2-diabetes-lemon given to me by a grateful Configuration Control vendor - right now. But in recognition of my situation, I'm going to unwrap it very, very slowly, supposedly minimising the distraction caused by the annoying crackle of paper… but actually just prolonging it.
Pattern: Mexican Crane
Motivation: Techie conferences are often put on in hotels, where the facilities do not run to raked seating. Thus, when the person in front moves his or her head to the right, it is necessary to move your own to the left if you are going to be able to read the PowerPoint. The person behind you is then in turn obliged to shift to the right, and so the wave passes on all the way to the back row.
Intent: See the bloody screen.
Implementation: Cripes, this is not rocket science, people! Grade all your delegates by height. Make tallees sit at the back. End of.
Related Pattern: Room for little me (qv).
Motivation: Speaker needs to add credibility to whatever programming technique he is pushing
Intent: The key has a strong awareness of which words and phrases are currently fashionable.
Implementation: This brief extract from a recent talk demonstrates the point:
Talk giver, hitting a climax: ...so you see, you can use this approach to inject a functional approach into an existing framework.
Delegate, raising arm: Isn't that very object-oriented?
Talk giver, hastily: Oh, no. It's not object-oriented. It's not object-oriented at all. It's very fluent and lightweight.
Delegate subsides, satisfied and impressed.
Examples: Long ago, the writer heard Bjarne Stroustrup himself complain that "object-oriented" had become a marketing synonym for "good". Many clichés have coursed through the culvert since then, and now it has become a coded term for "old-fashioned" - which is pretty much the same as "bad", to one decimal place.
It is not enough, then, for a speaker to speak in buzzing-words and fizzing-phrases. The key is to be aware of how much of their credibility remains to be spent, and to avoid worn-out terms loaded with non-technical debt.
Here is a small kut-out-'n'-keep table of examples, current as of writing, to get you started:
(1.0 best, -1.0 worst)
|design by contract||-0.82|
|unit test (as noun)
|unit test (as verb)
Observation: What's that Sooty? This whole article depends on the jargon word "pattern", and you have shown it to be a spent force?
Aaargh, you got me. ®