A Software Developer’s Guide to FUN in the workplace How to achieve Euphoria despite the Despair Holly Cummins, IBM | @holly_cummins Martijn Verburg, JClarity | @karianna May 2017 #jspring

I’m from IBM’s Bluemix Garage.

Is this a fun talk?

Is this a fun talk? No. It’s a talk about fun.

Is this a fun talk? No. It’s a talk about fun. That’s different.

Is this a fun talk? No. It’s a talk about fun. That’s different. Obviously.

20 step plan to achieve FUN. 1. Quantify and Qualify your FUN metrics 2. Create a Chief FUN Officer (CFO) role 3. Gamify your daily tasks to make them more FUN 4. Enthusiastically high five everyone each morning for FUN 5. Install a FUN ball pit 6. Inject a FUN word of the day into conversations 7. Wear FUN clothing, something with flair 8. Create FUN certificates with gold star systems - relive the fun of kindergarten! 9. Nominate FUN assessors for each team 10.Laugh Out Loud (LOL) once a day in the office, others will enjoy your FUN @holly_cummins http://ibm.biz/bluemixgaragelondon @holly_cummins @karianna

Let’s talk about your career.

“Dear Boss, you need to send me to J-Spring so I can go to the session on…. FUN.” @holly_cummins http://ibm.biz/bluemixgaragelondon @holly_cummins @karianna

“Dear Boss, you need to send me to J-Spring so I can go to the session on…. FUN.” @holly_cummins http://ibm.biz/bluemixgaragelondon @holly_cummins @karianna

, Having fun at work @holly_cummins http://ibm.biz/bluemixgaragelondon @holly_cummins @karianna

Are you brave enough? , Having fun at work @holly_cummins http://ibm.biz/bluemixgaragelondon @holly_cummins @karianna

Are you brave enough? I’m not :) @holly_cummins http://ibm.biz/bluemixgaragelondon @holly_cummins @karianna

Wait. Where’s “fun-loving”?

Wait. Where’s “fun-loving”? We keep fun a secret.

What is Fun?

A Fun Guy. (Remember, fun means jokes.)

“Fun is a point on the intersection of engagement levels and social interaction for a given activity.” Fun: An Exploration in its Relevance to Interaction Design - Elise Woolley, 2010

Aside: When is fun notfun?

Aside: When is fun notfun?

Aside: When is fun notfun? When it’s your job.

Things that are Fun

Things that are Fun Something novel

Things that are Fun Something novel Doing something you’re good at

Things that are Fun Something novel Completing a task Doing something you’re good at

Things that are Fun Completing a task Something novel Getting fast feedback Doing something you’re good at

Things that are Fun Completing a task Something novel Getting fast feedback Creating something new Doing something you’re good at

Things that are Fun Completing a task Something novel Getting fast feedback Fixing something old Creating something new Doing something you’re good at

Fun

Fun

The Psychology of Fun The brain has pleasure centres which are triggered when you do something fun.

How do you measure fun? Excerpted from Elise M. Woolley, B.S., Fun: An Exploration in its Relevance to Interaction Design

That was called the Funtinuum.

That was called the Funtinuum. If you remember just one thing from this talk …

Programming is fun.

Programming gives pleasure to both types of thinkers: • Creative • Logical

We get to control stuff when we program.

Which programming language is the most fun?

• Which programming language is the most fun? Clojure?

Which programming language is the most fun? • Clojure? • Java?

Which programming language is the most fun? • Clojure? • Java? • Groovy?

Which programming language is the most fun? • Clojure? • Java? • Groovy? • Javascript?

Which programming language is the most fun? • Clojure? • Java? • Groovy? • Javascript? • Python?

Which programming language is the most fun? • Clojure? • Java? • Groovy? • Javascript? • Python? • Ruby?

Which programming language is the most fun? • Clojure? • Java? • Groovy? • Javascript? • Python? • Ruby? • Scala?

Which programming language is the most fun? • Clojure? • Java? • Groovy? • Javascript? • Python? • Ruby? • Scala? • Visual Basic?

Which programming language is the most fun? • Clojure? • Java? • Groovy? • Javascript? • Python? • Ruby? • Scala? • Visual Basic? • Swift?

Say … Making noise is kind of fun, isn’t it? @holly_cummins http://ibm.biz/bluemixgaragelondon @holly_cummins @karianna

Why are most of our workplaces Not Fun?

The 1980/90’s Management Model Very hierarchical Control favoured over autonomy Technology seen as a cost centre

http://www.defenceimagery.mod.uk

Puritan confronts ale drinkers Howard Pyle

The value of Fun in the workplace

IBM Watson IoT Centre, Munich @holly_cummins

IBM IoT Lab, Munich

@holly_cummins

Research shows: Fun is good for business.

Research shows: Fun is good for business.

Research shows: Fun is good for business.

Research shows: Fun is good for business.

Studies have shown… Employee fun

Studies have shown… Employee fun

Studies have shown… Less sick leave Employee fun

Studies have shown… Less sick leave Employee fun Harder working

Studies have shown… Less sick leave Employee fun Harder working More productivity

https://hbr.org/2012/01/positive-intelligence

“Your brain at positive is 31% more productive than your brain at negative, neutral or stressed. ” https://hbr.org/2012/01/positive-intelligence

https://www2.warwick.ac.uk/fac/soc/economics/staff/eproto/workingpapers/happinessproductivity.pdf

“Individuals [who just watched a comedy video] have approximately 12% greater productivity.” https://www2.warwick.ac.uk/fac/soc/economics/staff/eproto/workingpapers/happinessproductivity.pdf

Your brain needs breaks. @holly_cummins http://ibm.biz/bluemixgaragelondon @holly_cummins @karianna

Practical example: Everyone loves lego trains.

Info Support funded their employees’ lego trains.

Why? Good business. Thanks, @johanjanssen42!

How much fun can you expect to have? https://www.flickr.com/photos/paulesson/3065570366

How much fun can you expect to have? (Yes, this is a picture of lots of fungi. You’re welcome.) https://www.flickr.com/photos/paulesson/3065570366

Limits to Fun • No one likes working on things that aren’t valuable or useful. • So if you take that to its extreme, and only do activities if they’re fun and enjoyable, will that work? • Self-discipline is still needed.

Just because it’s fun, doesn’t mean it’s good.

Just because it’s fun, doesn’t mean it’s good.

“I love the smell of napalm in the morning …. smells like victory.” Bill Kilgore, Apocalypse Now

“I love the smell of napalm in the morning …. smells like victory.” Bill Kilgore, Apocalypse Now Is everyone having fun?

Fun. What could possibly go wrong?

Fun. What could possibly go wrong?

Fun. What could possibly go wrong? 2008: A developer had a lot of fun with Groovy.

Fun. What could possibly go wrong? 2008: A developer had a lot of fun with Groovy.

Fun. What could possibly go wrong? 2008: A developer had a lot of fun with Groovy. 2009: The others who had to maintain the code had less fun.

Enjoy fun. Responsibly.

_ How to achieve fun Warning: This is our context and our experience of Fun. Your workplace culture may be different.

A process being unfun is a red flag that it’s not adding value.

Step 1. Find un-fun things. Get rid of them. … because they’re probably waste.

Fun Not-Fun Programming Meetings Puzzles Mysteries Collaboration Criticism Just doing it Process/Ceremony Learning Repeating Designing Sizing Doing Status reporting Prototyping Hardening Interactions Interruptions Making a difference Being a cog

We can fix these. Fun Not-Fun Programming Meetings Puzzles Mysteries Collaboration Criticism Just doing it Process/Ceremony Learning Repeating Designing Sizing Doing Status reporting Prototyping Hardening Interactions Interruptions Making a difference Being a cog

We can fix these. Fun Not-Fun Programming Meetings Puzzles Mysteries Collaboration Criticism Just doing it Process/Ceremony Learning Repeating Designing Sizing Doing Status reporting Prototyping Hardening Interactions Interruptions Making a difference Being a cog Pair programming

We can fix these. Fun Not-Fun Programming Meetings Puzzles Mysteries Collaboration Criticism Just doing it Process/Ceremony Learning Repeating Designing Sizing Doing Status reporting Prototyping Hardening Interactions Interruptions Making a difference Being a cog Pair programming #noestimates

We can fix these. Streamlined process Fun Not-Fun Programming Meetings Puzzles Mysteries Collaboration Criticism Just doing it Process/Ceremony Learning Repeating Designing Sizing Doing Status reporting Prototyping Hardening Interactions Interruptions Making a difference Being a cog Pair programming #noestimates

We can fix these. Streamlined process Self-generating status Fun Not-Fun Programming Meetings Puzzles Mysteries Collaboration Criticism Just doing it Process/Ceremony Learning Repeating Designing Sizing Doing Status reporting Prototyping Hardening Interactions Interruptions Making a difference Being a cog Pair programming #noestimates

We can fix these. Streamlined process Self-generating status Fun Not-Fun Programming Meetings Puzzles Mysteries Collaboration Criticism Just doing it Process/Ceremony Learning Repeating Designing Sizing Doing Status reporting Prototyping Hardening Interactions Interruptions Making a difference Being a cog Pair programming #noestimates Protect peace

We can fix these. Findable documentation Streamlined process Self-generating status Fun Not-Fun Programming Meetings Puzzles Mysteries Collaboration Criticism Just doing it Process/Ceremony Learning Repeating Designing Sizing Doing Status reporting Prototyping Hardening Interactions Interruptions Making a difference Being a cog Pair programming #noestimates Protect peace

We can fix these. Findable documentation Streamlined process Self-generating status MVP Fun Not-Fun Programming Meetings Puzzles Mysteries Collaboration Criticism Just doing it Process/Ceremony Learning Repeating Designing Sizing Doing Status reporting Prototyping Hardening Interactions Interruptions Making a difference Being a cog Pair programming #noestimates Protect peace

We can fix these. Findable documentation Streamlined process Self-generating status MVP Fun Not-Fun Programming Meetings Puzzles Mysteries Collaboration Criticism Just doing it Process/Ceremony Learning Repeating Designing Sizing Doing Status reporting Prototyping Hardening Interactions Interruptions Making a difference Being a cog Pair programming #noestimates Protect peace Self-directed teams

We can fix these. Findable documentation Streamlined process Self-generating status MVP Fun Not-Fun Programming Meetings Puzzles Mysteries Collaboration Criticism Just doing it Process/Ceremony Learning Repeating Designing Sizing Doing Status reporting Prototyping Hardening Interactions Interruptions Making a difference Being a cog Pair programming #noestimates Automation Protect peace Self-directed teams

Make it easy for people to find the information they need to do their job. Find a good, indexable, solution. Use it.

@holly_cummins http://ibm.biz/bluemixgaragelondon @holly_cummins @karianna

@holly_cummins http://ibm.biz/bluemixgaragelondon @holly_cummins @karianna

Get rid of the stuff that stops us doing what we enjoy. @holly_cummins http://ibm.biz/bluemixgaragelondon @holly_cummins @karianna

Get rid of the stuff that stops us doing what we enjoy. “We’re short staffed. You’re going to need to cancel all my meetings for a month so I can do programming.” @holly_cummins http://ibm.biz/bluemixgaragelondon @holly_cummins @karianna

Get rid of the stuff that stops us doing what we enjoy. This worked! “We’re short staffed. You’re going to need to cancel all my meetings for a month so I can do programming.” @holly_cummins http://ibm.biz/bluemixgaragelondon @holly_cummins @karianna

Interactions are fun. Interruptions are not.

Interactions are fun. Interruptions are not. Martijn promises me this is a hilarious in-joke if you’re British. Apparently.

Protect your coding time from meetings. “I’m sorry, since I’m pairprogramming, I can’t make that meeting.”

Pair programming

#noestimates Estimates are rarely accurate. Why bother?? @holly_cummins http://ibm.biz/bluemixgaragelondon @holly_cummins @karianna

Prototyping versus hardening Can adding logging ever be fun? @holly_cummins http://ibm.biz/bluemixgaragelondon @holly_cummins @karianna

Prototyping versus hardening Can adding logging ever be fun? Making a difference is fun. @holly_cummins http://ibm.biz/bluemixgaragelondon @holly_cummins @karianna

Prototyping versus hardening Can adding logging ever be fun? Making a difference is fun. Having a prototype become real is fun. @holly_cummins http://ibm.biz/bluemixgaragelondon @holly_cummins @karianna

Prototyping versus hardening Can adding logging ever be fun? Making a difference is fun. Having a prototype become real is fun. Add the logging when you know it actually matters. @holly_cummins http://ibm.biz/bluemixgaragelondon @holly_cummins @karianna

“We don’t want to be the prototyping department.” — Head of Innovation, A-Client @holly_cummins http://ibm.biz/bluemixgaragelondon @holly_cummins @karianna

Testing should not be part of the hardening phase. TDD is fun. @holly_cummins http://ibm.biz/bluemixgaragelondon @holly_cummins @karianna

TDD

TDD

Automation Computers don’t expect to have fun (yet). Let them do the tedious tasks. Bonus: Automating stuff is fun (yay!).

Status for all to see. @holly_cummins http://ibm.biz/bluemixgaragelondon @holly_cummins @karianna

Status for all to see. Keep stories small, so status is self-reporting. Daily stand-up. Keep it short. @holly_cummins http://ibm.biz/bluemixgaragelondon @holly_cummins @karianna

We all hate being told what to do. Usually, because we know it’s wrong. Let people make their own decisions.

Step 2: Add fun

Can I have a volunteer? … or two?

The exercise: Write down your partner’s father’s name.

The exercise: Write down your partner’s father’s name.

Wait, where’s the rigour?

Wait, where’s the rigour?

Wait, where’s the rigour? Write down your partner’s father’s name.

Wait, where’s the rigour? Write down your partner’s father’s name. We need QA on these letters. Show a draft of each letter to me, first.

Wait, where’s the rigour? Write down your partner’s father’s name. We need QA on these letters. Show a draft of each letter to me, first. Show each letter to the room, so we know what your progress is like.

Wait, where’s the rigour? Write down your partner’s father’s name. We need QA on these letters. Show a draft of each letter to me, first. Show each letter to the room, so we know what your progress is like.

What have we learned? • Status reporting and code reviews slow things down. • That was on an earlier slide, but we learned that better through a game :)

Children learn through play. Adults do too.

Play Exploration Work Games

Play: for its own sake Play Exploration investigation Exploration: Work a goal Work: Games a goal and rules Games:

TDD

Build gamification

Build gamification (Strictly speaking, productization of build gamification)

Build gamification can be pretty serious.

Play

Quirkiness

Images: shawcomputing.net, computerhistory.org

Images: shawcomputing.net, computerhistory.org

“Is ‘Gullible’ in the Dictionary?” Images: shawcomputing.net, computerhistory.org

Quirkiness How do a production-train slack-integration right:

_ Failing at Fun

What if you got paid to do something other people would pay to do?

No, not the best job in the world.

A layer of fun

A layer of fun … on top of a terrible workspace …

A layer of fun … on top of a terrible workspace … is still terrible.

31% of us dislike teambuilding activities. http://www.successfulmeetings.com/Strategy/Meeting-Strategies/When-Teambuilding-Fails/

31% of Americans dislike team-building activities. http://www.successfulmeetings.com/Strategy/Meeting-Strategies/When-Teambuilding-Fails/

How to ruin an office party? Take attendance.

_

_ Fun is important. Recap on achieving fun: 1. Get rid of un-fun things 2. Add fun things Doing 2. without 1. is going to fail.

Thank you! @holly_cummins Please rate this session in the J-Spring app #jspring