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

Productivity is Messing Around and Having Fun

Productivity is Messing Around and Having Fun

Developer satisfaction, developer joy, and business results are strongly correlated. Developer productivity frameworks like SPACE recognize this, with Satisfaction being a key metric. And yet - our jobs are frustrating, filled with mindless work, and free of joy. How do we fix that? Is annoying waste inevitable? Can developer performance be tuned? Are productivity measurements helping or hurting us? And how can you persuade management to invest in boredom?

Except... it's not the boss we need to convince. Sometimes, it's ourselves. We're so in the habit of running to meet deadlines, running from one problem to the next, of aiming for 100% efficiency, we're the first ones to say "I don't have time for fun". In this talk, Holly and Trisha will try to convince you that fun isn't a luxury, but a necessity.

Holly is an expert on play at work, unwise automations, and polar bears. Trisha is an expert on performance tuning, tooling and productivity. Come to this talk to find out what these topics have in common.

Holly Cummins

March 20, 2025
Tweet

More Decks by Holly Cummins

Other Decks in Programming

Transcript

  1. @trisha_gee @holly_cummins “The Joys of the Craft” 1. The sheer

    joy of making things 2. The pleasure of making things that are useful to other people.
  2. @trisha_gee @holly_cummins “The Joys of the Craft” 1. The sheer

    joy of making things 2. The pleasure of making things that are useful to other people. 3. The fascination of fashioning complex puzzle-like objects of interlocking moving parts and watching them work
  3. @trisha_gee @holly_cummins “The Joys of the Craft” 1. The sheer

    joy of making things 2. The pleasure of making things that are useful to other people. 3. The fascination of fashioning complex puzzle-like objects of interlocking moving parts and watching them work 4. The joy of always learning
  4. @trisha_gee @holly_cummins “The Joys of the Craft” 1. The sheer

    joy of making things 2. The pleasure of making things that are useful to other people. 3. The fascination of fashioning complex puzzle-like objects of interlocking moving parts and watching them work 4. The joy of always learning 5. The delight of working in such a tractable medium
  5. @trisha_gee @holly_cummins “Your brain at positive is 31% more productive

    than your brain at negative, neutral or stressed. " https:/ /hbr.org/2012/01/positive-intelligence
  6. "Individuals [who just watched a comedy video] have approximately greater

    productivity." https:/ /www2.warwick.ac.uk/fac/soc/economics/staff/eproto/workingpapers/happinessproductivity.pdf
  7. @trisha_gee @holly_cummins “It’s hard to over-emphasize how unusual it is

    that an economic sector as large as knowledge work lacks useful standard de fi nitions of productivity.” – Cal Newport, Slow Productivity
  8. @trisha_gee @holly_cummins true story (from the internet): paying the team

    bonuses for lines of code for (var i = 0; i < 10; i++) { // code }
  9. @trisha_gee @holly_cummins true story (from the internet): paying the team

    bonuses for lines of code for (var i = 0; i < 10; i++) { // code } for ( var i = 0; i < 10; i++ ) { // code }
  10. @trisha_gee @holly_cummins __ .__ .__ .__ __ _/ |_| |__

    |__| ______ |__| ______ _____ ____ ____ _____ _____ ____ _____/ |_ \ __\ | \| |/ ___/ | |/ ___/ \__ \ _/ ___\/ _ \ / \ / \_/ __ \ / \ __\ | | | Y \ |\___ \ | |\___ \ / __ \_ \ \__( <_> ) Y Y \ Y Y \ ___/| | \ | |__| |___| /__/____ > |__/____ > (____ / \___ >____/|__|_| /__|_| /\___ >___| /__| \/ \/ \/ \/ \/ \/ \/ \/ \/ the team made comments prettier
  11. @trisha_gee @holly_cummins tester developer I get a bonus for every

    bug I fix! I get a bonus for every bug I find!
  12. @trisha_gee @holly_cummins tester developer I get a bonus for every

    bug I fix! I get a bonus for every bug I find! … pssst… wanna buy a bug?
  13. @trisha_gee @holly_cummins “visible activity” metrics - lines of code -

    commit counts - pull requests - bugs fi xed - bugs found
  14. @trisha_gee @holly_cummins “visible activity” metrics - lines of code -

    commit counts - pull requests - bugs fi xed - bugs found - releases
  15. @trisha_gee @holly_cummins “In the modern of fi ce context, [knowledge

    workers] tend to rely on stress as a default heuristic” – Cal Newport, Slow Productivity
  16. @holly_cummins #RedHat Guillaume, my CI was red. Is there a

    known failure in the vertx suite? Guillaume, my CI was red. Is there a known failure in the kafka suite?
  17. @holly_cummins #RedHat Guillaume, my CI was red. Is there a

    known failure in the vertx suite? Guillaume, my CI was red. Is there a known failure in the kafka suite? Guillaume, my CI was red. Is there a known failure in the gRPC suite?
  18. @trisha_gee @holly_cummins package com.example; import org.jboss.logging.Logger; public class MyService {

    private static final Logger log = Logger.getLogger(MyService.class); public void doSomething() { log.info("It works!"); } } example: logging
  19. @trisha_gee @holly_cummins package com.example; import org.jboss.logging.Logger; public class MyService {

    private static final Logger log = Logger.getLogger(MyService.class); public void doSomething() { log.info("It works!"); } } example: logging import io.quarkus.logging.Log; Log
  20. @trisha_gee @holly_cummins package org.acme; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public

    class SpringDemo { public static void main(String[] args) { SpringApplication.run(SpringDemo.class, args); } } example: declaring an application
  21. @trisha_gee @holly_cummins what if… you could inherit boilerplate Hibernate queries

    from a superclass, instead of having to write them all? example: hibernate
  22. @trisha_gee @holly_cummins @ApplicationScoped public class GreetingRepository { public Entity findByName(int

    name) { return find("name", name).firstResult(); } void persist(Entity entity) {} void delete(Entity entity) {} Entity findById(Id id) {} List<Entity> list(String query, Sort sort, Object... params) { return null; } Stream<Entity> stream(String query, Object... params) { return null; } long count() { return 0; } long count(String query, Object... params) { return 0; } } example: hibernate with panache
  23. @trisha_gee @holly_cummins example: hibernate with panache @ApplicationScoped public class GreetingRepository

    implements PanacheRepository<Greeting> { public Entity findByName(int name) { return find("name", name).firstResult(); } }
  24. @trisha_gee @holly_cummins @TestConfiguration(proxyBeanMethods = false) public class ContainersConfig { @Bean

    @ServiceConnection public PostgreSQLContainer<?> postgres() { return new PostgreSQLContainer<>(DockerImageName.parse("postgres:14")); } } public class TestApplication { public static void main(String[] args) { SpringApplication .from(MySpringDataApplication::main) .with(ContainersConfig.class) .run(args); } } @Import(ContainersConfig.class) example: testcontainers
  25. @trisha_gee @holly_cummins the only thing you need to do to

    make testcontainers work is not con fi gure a datasource example: testcontainers
  26. @trisha_gee @holly_cummins the only thing you need to do to

    make testcontainers work is not con fi gure a datasource example: testcontainers
  27. @trisha_gee @holly_cummins the only thing you need to do to

    make testcontainers work is not con fi gure a datasource quarkus also auto-invokes fl yway and liquibase example: testcontainers
  28. @trisha_gee @holly_cummins Holly is most productive while • Showering •

    Running Trisha is most productive while • Knitting • Showering
  29. @trisha_gee @holly_cummins Holly is most productive while • Showering •

    Running Trisha is most productive while • Knitting • Showering this slide was written while running
  30. @trisha_gee @holly_cummins tip: use voice memo to capture all the

    work you do while running * the text on this slide was originally a voice memo
  31. Activities to help your DMN - knitting - running -

    walking - showers - gardening - unloading the dishwasher - colouring - laundry
  32. #Gradle #RedHat @trisha_gee @holly_cummins but what if you’re not debugging-

    in-your-head while running? what if you’re feeding chocolate
  33. #Gradle #RedHat @trisha_gee @holly_cummins but what if you’re not debugging-

    in-your-head while running? what if you’re feeding chocolate into the o ff i ce fan, to see what happens?
  34. @trisha_gee @holly_cummins Embrace the dead time Use it well: -

    problem solving - thinking - staring into space
  35. @trisha_gee @holly_cummins Embrace the dead time Use it well: -

    problem solving - thinking - staring into space - play
  36. @trisha_gee @holly_cummins Embrace the dead time Use it well: -

    problem solving - thinking - staring into space - play Do not just move e ffi ciently from task to task
  37. #Gradle #RedHat @trisha_gee @holly_cummins - be careful how you measure

    productivity, because that metric what you will get (do not use LOC!)
  38. #Gradle #RedHat @trisha_gee @holly_cummins - be careful how you measure

    productivity, because that metric what you will get (do not use LOC!) - automate drudgery that stops you being effective at your job
  39. #Gradle #RedHat @trisha_gee @holly_cummins - be careful how you measure

    productivity, because that metric what you will get (do not use LOC!) - automate drudgery that stops you being effective at your job - being happier makes you better at your job
  40. #Gradle #RedHat @trisha_gee @holly_cummins - be careful how you measure

    productivity, because that metric what you will get (do not use LOC!) - automate drudgery that stops you being effective at your job - being happier makes you better at your job - having down time (and showers, or knitting jumpers) makes you better at your job
  41. #Gradle #RedHat @trisha_gee @holly_cummins - be careful how you measure

    productivity, because that metric what you will get (do not use LOC!) - automate drudgery that stops you being effective at your job - being happier makes you better at your job - having down time (and showers, or knitting jumpers) makes you better at your job - this a double-win