A presentation at J-Spring in in Amsterdam, Netherlands by Holly Cummins
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
An in-depth look at what makes software development a roller coaster where the highs of 0 compiler warnings are quickly cancelled out by the pain of long hours, bad requirements, endless configuration, clueless managers and a plethora of other issues which make death by a thousand cuts seem like a good idea…. They will answer questions such as: “Why is programming often called an art despite having its underpinnings in formal logic?” “How can I rediscover the delight I felt when I first started coding?” “What’s that rush I feel when my test passes? Am I addicted to TDD?” Combining Psychology, Philosophy and Computer Science, Dr Holly Cummins and Martijn Verburg will present a series of practical tips to help you rediscover the euphoria that you felt the very first time a metal box in front of you came to life and cried out “Hello World”.
Here’s what was said about this presentation on social media.
.@holly_cummins on stage talking about fun in the workplace!#jspring pic.twitter.com/WGh5g3Pmtd
— NLJUG (@nljug) May 10, 2017
@holly_cummins presentation on FUN is actually... fun 😁 #jspring #Funtinuum
— Danny van Bruggen (@matozoid) May 10, 2017