you're having a laugh

20
YOU’RE HAVING A LAUGH James Thomas Linguamatics UKTMF. July 2015 @ qahiccupps , qahiccupps.blogspot.co.uk j [email protected] @qahiccupps

Upload: james-thomas

Post on 11-Apr-2017

243 views

Category:

Software


0 download

TRANSCRIPT

Page 2: You're Having  a Laugh

@qahiccupps

I write notes all the time ... anything interesting that comes to me ... but the notes are not the thing. The thing is the fact that I'm watching out for stuff ... like a boxer keeping loose ... on stage I hope they'll all come together.KEEPING

LOOSE(Phil Kay)

Page 3: You're Having  a Laugh

@qahiccupps

Keeping Loose• Joking

• … is like testing (for me)

• When I think of a corny joke …• … I force myself to find two more …• … with some aspects in common• The restriction simulates real world constraints; forces creativity

Page 4: You're Having  a Laugh

@qahiccupps

There's no black and white in politics, only graze

Page 5: You're Having  a Laugh

@qahiccupps

Jokes…

•Violate some expectation•Expose an ambiguity•Point out the thing that’s been ignored in plain sight

•Make a surprising connection

Page 6: You're Having  a Laugh

@qahiccupps

… and Testing?

•Testing finds issues that•Violate some expectation•Expose an ambiguity•Point out the thing that’s been ignored in plain sight

•Make a surprising connection

Page 7: You're Having  a Laugh

@qahiccupps

A Joke• Two components:

• surprise: say, by a violated expectation • coherence: how well the joke fits to the context

• But, the non-sequitur:Q: Why was the programmer debugging at midnight?A: Fish.

• Definition of a joke is heuristic• Useful rule• Fallible

(Brownell and Gardner, in their essay in Laughing Matters)

Page 8: You're Having  a Laugh

@qahiccupps

Genesis of a Joke• 2 January 2015, Tim Western posted a joke on Twitter:

Q: Why was the web developer sent home early on new years?A: His application needed a little REST.

• Two missions:• “test” the joke• “design” a joke from the same premise

Page 9: You're Having  a Laugh

@qahiccupps

Mission #1: Test the Joke• Sufficiency, necessity – New Year

Q: Why was the web developer sent home early? A: His application needed a little REST.

• Consistency – Dev sent home but application needs REST?

Q: Why was the web developer sent home early?A: He needed REST.

• Balance surprise and coherence – “need” vs “want”

Q: Why was the web developer sent home early?A: He wanted REST.

Page 10: You're Having  a Laugh

@qahiccupps

Relative RuleFor any abstract X:

X is X to some person, at some time (Michael Bolton)

• A joke is a joke to some person at some time • An issue is an issue to some person at some time

• Have you ever had to spell an issue out?• They just don’t get it• Surprise vs coherence

Page 11: You're Having  a Laugh

@qahiccupps

Mission #2: DesignQ: Why was the web developer sent home early on new years?

• Factoring: • Web - HTTP, SOAP, browser, internet, Javascript, AJAX• developer - code, script, IDE, bugs• new year - 31st, 1st, annual, fireworks, resolution • home - home page, house, street, homing pigeon• work - job, position, meetings, requirements, responsibilities

A1: Was he sent home or did he desert his POST?A2: Hopefully he was PUT in his place.A3: He's now considering his OPTIONS.

• Fault vs Failure • These “failures” stem from the same underlying “fault”

Page 12: You're Having  a Laugh

@qahiccupps

Mission #2: Design• Stopping strategies

• Time, deadline, other work, risk, value, statistical test, …

A4: And so on ...

• Plunge in and Quit• I can always come back!

• Factoring• Javascript: common libraries such as node.js, jQuery, D3 • node: sounds like "knowed“, "no-ed"• Ajax: sounds like "Hey Jacks", "Age Axe", "A Jacks"

Page 13: You're Having  a Laugh

@qahiccupps

Mission #2: Design• Lateral Thinking

• Be open to off-track thoughts• Deliberately provoke off-track thoughts• Example: decomposition

eleph-ant - the biggest insect in the worldunpleas-ant - the worst insect to be arounddeodor-ant - the nicest smelling insect

• jQuery: sounds like "Jake weary"

• Work back from result to context• From theoretical to practical • Does it have coherence?

Page 14: You're Having  a Laugh

@qahiccupps

Mission #2: Design• Iteration, rote generation

• Jake said he was weary• The boss saw that Jake was weary• Jake's weary programming• Was Jake weary?• The boss saw Jake weary

• Oracles• Do I think it’s funny?

Q: Why was the web developer sent home early on new years? A5: The boss hated to see Jake weary

• Negate the premise

Page 15: You're Having  a Laugh

@qahiccupps

Keeping Loose• When I think of a corny joke …

• … I force myself to find two more …• … with some aspects in common• The restriction simulates real world constraints; forces creativity

• Cheap and easy training method• No software, tools, preparation, resources needed

Page 16: You're Having  a Laugh

@qahiccupps

Other Ways• Blogging

• Writing• Discovering and clustering ideas• Introspection• Discipline

I don't pretend that every thought I have is revolutionary, revelatory or even revealable … but by forcing myself to think I am getting in the habit of thinking and, I hope,  thinking is becoming my habit.

(Hiccupps)

Page 17: You're Having  a Laugh

@qahiccupps

Other Ways• Blog Images

• Making connections• Focus/Defocus• Exploration

@qahiccupps

Page 18: You're Having  a Laugh

@qahiccupps

Summary• Some things I ‘just do’ help me in my job

• Joking• Blogging• Blog images

• Like drills for an athlete

• We don’t all need to be comedians• … we probably all do something

Page 19: You're Having  a Laugh

@qahiccupps

Over to You• What do you ‘just do’ to stay loose?

• James Christie: checking relationships; number factoring • Cambridge Tester Meetup:

• Unicycling down mountains• Intense self-observation

• How does it help you?• Have you refined it? How?• Can it be used by others?• What’s common across these kinds of things?• Can they be motivational (to our teams?)• Is there a real effect here?