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

What is the happy path, for developers? It’s less boredom, and more play.

Developer satisfaction, developer joy, and business results are strongly correlated. And yet - many of our jobs are frustrating, filled with friction, and free of joy. What’s going on? How do we fix that? Is annoying waste inevitable? Can developer performance be tuned? Are productivity measurements helping or hurting us? How do we deal with fear at work? Will AI take our jobs? Finally, how can you persuade management to invest in boredom?

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

October 10, 2024
Tweet

More Decks by Holly Cummins

Other Decks in Programming

Transcript

  1. hi!

  2. #Gradle #RedHat @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. #Gradle #RedHat @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. #Gradle #RedHat @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. #Gradle #RedHat @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
  6. @trisha_gee @holly_cummins #Gradle #RedHat “Your brain at positive is 31%

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

    productivity." https:/ /www2.warwick.ac.uk/fac/soc/economics/staff/eproto/workingpapers/happinessproductivity.pdf
  8. #Gradle #RedHat @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. #Gradle #RedHat @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. #Gradle #RedHat @trisha_gee @holly_cummins __ .__ .__ .__ __ _/

    |_| |__ |__| ______ |__| ______ _____ ____ ____ _____ _____ ____ _____/ |_ \ __\ | \| |/ ___/ | |/ ___/ \__ \ _/ ___\/ _ \ / \ / \_/ __ \ / \ __\ | | | Y \ |\___ \ | |\___ \ / __ \_ \ \__( <_> ) Y Y \ Y Y \ ___/| | \ | |__| |___| /__/____ > |__/____ > (____ / \___ >____/|__|_| /__|_| /\___ >___| /__| \/ \/ \/ \/ \/ \/ \/ \/ \/ the team made comments prettier
  11. #Gradle #RedHat @trisha_gee @holly_cummins “lines of code” is not a

    good productivity metric for people. or machines.
  12. #Gradle #RedHat @trisha_gee @holly_cummins if code is so boring a

    machine can predict it, maybe it shouldn’t be there?
  13. @trisha_gee @holly_cummins #Gradle #RedHat 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
  14. @trisha_gee @holly_cummins #Gradle #RedHat 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
  15. @trisha_gee @holly_cummins #Gradle #RedHat 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
  16. @trisha_gee @holly_cummins #Gradle #RedHat what if… you could inherit boilerplate

    Hibernate queries from a superclass, instead of having to write them all? example: hibernate
  17. @trisha_gee @holly_cummins #Gradle #RedHat @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
  18. @trisha_gee @holly_cummins #Gradle #RedHat example: hibernate with panache @ApplicationScoped public

    class GreetingRepository implements PanacheRepository<Greeting> { public Entity findByName(int name) { return find("name", name).firstResult(); } }
  19. @trisha_gee @holly_cummins #Gradle #RedHat @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
  20. @trisha_gee @holly_cummins #Gradle #RedHat the only thing you need to

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

    do to make testcontainers work is not con fi gure a datasource example: testcontainers
  22. @trisha_gee @holly_cummins #Gradle #RedHat 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
  23. @trisha_gee @holly_cummins #Gradle #RedHat but … … the reason Fred

    Brooks’s developers wrote 10 lines of code a day wasn’t because they were busy writing boilerplate
  24. @trisha_gee @holly_cummins #Gradle #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 gRPC suite?
  25. @trisha_gee @holly_cummins #Gradle #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?
  26. @trisha_gee @holly_cummins #Gradle #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? Guillaume
  27. #Gradle #RedHat @trisha_gee @holly_cummins what gets measured is what gets

    optimised, make sure to measure the right thing
  28. #Gradle #RedHat @trisha_gee @holly_cummins Holly is most productive while •

    Showering • Running Trisha is most productive while • Knitting • Showering
  29. #Gradle #RedHat @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. #Gradle #RedHat @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. #Gradle #RedHat @trisha_gee @holly_cummins Embrace the dead time Use it

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

    well: - problem solving - thinking - staring into space - play
  36. #Gradle #RedHat @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 zero-sum is not enough “The only

    initiatives that will positively impact performance are ones which increase throughput while simultaneously decreasing cost.” Elijahu M. Goldratt - The Goal
  38. #Gradle #RedHat @trisha_gee @holly_cummins - be careful how you measure

    productivity (not LOC!) - automate drugdery that stops you being effective at your job
  39. #Gradle #RedHat @trisha_gee @holly_cummins - be careful how you measure

    productivity (not LOC!) - automate drugdery 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 (not LOC!) - automate drugdery 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. @trisha_gee @holly_cummins #Gradle #RedHat thank you hollycummins.com/productivity- messing-around-devoxx/ slides +

    resources Win a copy of Getting to Know IntelliJ IDEA! and we have stickers