Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The Importance of Fun in the Workplace

The Importance of Fun in the Workplace

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, Holly 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”.

Holly Cummins

June 22, 2023
Tweet

More Decks by Holly Cummins

Other Decks in Programming

Transcript

  1. @BuildStep FeatureBuildItem feature() { return new FeatureBuildItem(FEATURE); } @Record(STATIC_INIT) @BuildStep

    public void helloBuildStep(HelloRecorder recorder) { recorder.sayHello("World"); } @Record(RUNTIME_INIT) @BuildStep LogHandlerBuildItem addLogHandler(final MinecraftLogHandlerMaker maker, BeanCon return new LogHandlerBuildItem(maker.create(beanContainer.getValue())); } /** * Makes the interceptor as a bean so we can access it. */ @BuildStep void beans(BuildProducer<AdditionalBeanBuildItem> producer) { producer.produce(AdditionalBeanBuildItem.unremovableOf(MinecraftLogIntercep producer.produce(AdditionalBeanBuildItem.unremovableOf(MinecraftService.cla } @BuildStep AnnotationsTransformerBuildItem transform() { return new AnnotationsTransformerBuildItem(new AnnotationsTransformer() { public boolean appliesTo(org.jboss.jandex.AnnotationTarget.Kind kind) { return kind == org.jboss.jandex.AnnotationTarget.Kind.METHOD; } public void transform(TransformationContext context) { if (context.getTarget().asMethod().hasAnnotation(JAX_RS_GET)) { context.transform().add(MinecraftLog.class).done(); } } }); Holly Cummins Red Hat @[email protected] the importance of fun in the workplace Joy of Coding June 23rd
  2. why do ducks have webbed feet? to stamp out fires.

    why do elephants have flat feet? funniest joke in Belgium:
  3. why do ducks have webbed feet? to stamp out fires.

    why do elephants have flat feet? to stamp out burning ducks. funniest joke in Belgium:
  4. @holly_cummins #RedHat “Hi boss! Joy of Coding was great. It

    was a very serious conference and there were no pink octopuses and I definitely did not attend a talk about how to have fun. By the way, did you know ducks are the funniest animal?”
  5. @holly_cummins #RedHat Play flexible for its own sake Exploration focussed

    investigation Games a winner and rules Puzzle a goal and rules
  6. @holly_cummins #RedHat Play flexible for its own sake Work a

    goal Exploration focussed investigation Games a winner and rules Puzzle a goal and rules
  7. @holly_cummins #RedHat Play flexible for its own sake Work a

    goal Exploration focussed investigation Games a winner and rules Puzzle a goal and rules jokes laughter
  8. @[email protected] #RedHat programming is fun making is fun puzzles are

    fun learning is fun code is squishy and awesome being useful is fun
  9. @holly_cummins #RedHat Photo by William Warby Puzzle Exception in thread

    "main" java.lang.NullPointerException: WhyWhyWhyIsThisHappeningNullPointerException at StackTraceExample.method111(StackTraceExample.java:15) at StackTraceExample.method11(StackTraceExample.java:11) at StackTraceExample.method1(StackTraceExample.java:7) at StackTraceExample.main(StackTraceExample.java:3)
  10. @holly_cummins #RedHat “so, what was said on the conference call?”

    “I have no idea … but they were laughing, so the project is OK. ”
  11. @holly_cummins #RedHat “so, what was said on the conference call?”

    “I have no idea … but they were laughing, so the project is OK. ” a team that doesn’t laugh together doesn’t want to work together
  12. @holly_cummins #RedHat “Your brain at positive is 31% more productive

    than your brain at negative, neutral or stressed. " https:/ /hbr.org/2012/01/positive-intelligence
  13. @holly_cummins #RedHat piglet litters grow faster if they play more

    https://www.flickr.com/photos/tambako/8746156155
  14. @holly_cummins #RedHat How much fun can you expect to have?

    https:/ /www.flickr.com/photos/paulesson/3065570366
  15. @holly_cummins #RedHat 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
  16. @holly_cummins #RedHat 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.
  17. @holly_cummins #RedHat Limits to Fun • Fun has business value.

    • Logical extension: only do activities if they’re fun and enjoyable! Photo by Joshua Hoehne on Unsplash
  18. @holly_cummins #RedHat Limits to Fun • Fun has business value.

    • Logical extension: only do activities if they’re fun and enjoyable! • Uh, no. Photo by Joshua Hoehne on Unsplash
  19. @holly_cummins #RedHat who are we including in our laughter? who

    are we excluding? https:/ /www.flickr.com/photos/davefayram/4266804988
  20. @holly_cummins #RedHat “Why are you smiling? Work isn’t a place

    to be happy!” - a prowling project manager
  21. Step 1. Find un-fun things. Get rid of them. ...

    because they're probably waste.
  22. @holly_cummins #RedHat We all hate being told what to do.

    Usually, because we know it’s wrong. Let people make their own decisions.
  23. @holly_cummins #RedHat Fun Not-Fun Effective tools Bad tools 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
  24. @holly_cummins #RedHat Fun Not-Fun Effective tools Bad tools 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.
  25. @holly_cummins #RedHat Fun Not-Fun Effective tools Bad tools 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 Streamlined process Pair programming #noestimates Self-directed teams Automation We can fix these. Knowledge sharing Self-generating status MVP
  26. TDD

  27. TDD

  28. @holly_cummins #RedHat Automation Computers don’t expect to have fun (yet).

    Let them do the tedious tasks. Bonus: Automating stuff is fun (yay!). With permission of Richard Greenhill and H
  29. @holly_cummins #RedHat Toil https:/ /www.flickr.com/photos/seat850/3341460975 SRE is a whole discipline

    dedicated to eliminating toil from ops because toil isn’t worth it.
  30. @holly_cummins #RedHat Play flexible for its own sake Work a

    goal Exploration focussed investigation Games a winner and rules Puzzle a goal and rules
  31. @holly_cummins #RedHat The Fun Theory “something as simple as fun

    is the easiest way to change people’s behaviour for the better”
  32. TDD

  33. @holly_cummins #RedHat 7186 new lines of coverage 1000 new tests

    added 230 issues fixed 10 years of tech debt resolved
  34. @holly_cummins #RedHat 7186 new lines of coverage 1000 new tests

    added 230 issues fixed 10 years of tech debt resolved
  35. @holly_cummins #RedHat 7186 new lines of coverage 1000 new tests

    added 230 issues fixed 10 years of tech debt resolved
  36. @holly_cummins #RedHat Play flexible for its own sake Work a

    goal Exploration focussed investigation Games a winner and rules Puzzle a goal and rules jokes laughter
  37. @holly_cummins #RedHat A layer of fun … on top of

    a terrible workspace … is still terrible.
  38. Fun is important. Recap on achieving fun: 1. Get rid

    of un-fun things 2. Add fun things
  39. 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.