Slide 1

Slide 1 text

Productivity is Messing Around and Having Fun Trisha Gee, Gradle Holly Cummins, Red Hat

Slide 2

Slide 2 text

hi!

Slide 3

Slide 3 text

@trisha_gee @holly_cummins #Gradle #RedHat developer productivity engineering developer joy

Slide 4

Slide 4 text

@trisha_gee @holly_cummins #Gradle #RedHat are these opposites, or the same?

Slide 5

Slide 5 text

@trisha_gee @holly_cummins #Gradle #RedHat are these opposites, or the same? is development supposed to be fun?

Slide 6

Slide 6 text

#Gradle #RedHat @trisha_gee @holly_cummins

Slide 7

Slide 7 text

#Gradle #RedHat @trisha_gee @holly_cummins why are you smiling?

Slide 8

Slide 8 text

#Gradle #RedHat @trisha_gee @holly_cummins why are you smiling? work is not a place to be happy!

Slide 9

Slide 9 text

@trisha_gee @holly_cummins #Gradle #RedHat As usual, Fred Brooks has the answer.

Slide 10

Slide 10 text

#Gradle #RedHat @trisha_gee @holly_cummins “The Joys of the Craft”

Slide 11

Slide 11 text

#Gradle #RedHat @trisha_gee @holly_cummins “The Joys of the Craft” 1. The sheer joy of making things

Slide 12

Slide 12 text

#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.

Slide 13

Slide 13 text

#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

Slide 14

Slide 14 text

#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

Slide 15

Slide 15 text

#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

Slide 16

Slide 16 text

@trisha_gee @holly_cummins #Gradle #RedHat joy has business value.

Slide 17

Slide 17 text

@trisha_gee @holly_cummins #Gradle #RedHat ΑΡΙΣΤΟΤΈΛΗΣ

Slide 18

Slide 18 text

@trisha_gee @holly_cummins #Gradle #RedHat «τελειοῖ δὲ τὴν ἐνέργειαν ἡἡδονή» ΑΡΙΣΤΟΤΈΛΗΣ

Slide 19

Slide 19 text

@trisha_gee @holly_cummins #Gradle #RedHat «Η ευχαρίστηση στην δουλειά βάζει την τελειότητα στην εργασία» ΑΡΙΣΤΟΤΈΛΗΣ

Slide 20

Slide 20 text

@trisha_gee @holly_cummins #Gradle #RedHat “Pleasure in the job puts perfection in the work.” Aristotle

Slide 21

Slide 21 text

@trisha_gee @holly_cummins #Gradle #RedHat the science bit

Slide 22

Slide 22 text

@trisha_gee @holly_cummins #Gradle #RedHat piglet litters grow https://www.flickr.com/photos/tambako/8746156155

Slide 23

Slide 23 text

@trisha_gee @holly_cummins #Gradle #RedHat job satisfaction is the no. 1 predictor of organizational performance

Slide 24

Slide 24 text

#Gradle #RedHat @trisha_gee @holly_cummins research shows: fun is good for business.

Slide 25

Slide 25 text

#Gradle #RedHat @trisha_gee @holly_cummins research shows: fun is good for business.

Slide 26

Slide 26 text

@trisha_gee @holly_cummins #Gradle #RedHat https:/ /hbr.org/2012/01/positive-intelligence

Slide 27

Slide 27 text

@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

Slide 28

Slide 28 text

@trisha_gee @holly_cummins #Gradle #RedHat

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

@trisha_gee @holly_cummins #Gradle #RedHat ok, so why aren't our jobs fun?

Slide 32

Slide 32 text

@trisha_gee @holly_cummins #Gradle #RedHat toil

Slide 33

Slide 33 text

#Gradle #RedHat @trisha_gee @holly_cummins lack of joy creeps up on us productivity

Slide 34

Slide 34 text

#Gradle #RedHat @trisha_gee @holly_cummins lack of joy creeps up on us

Slide 35

Slide 35 text

#Gradle #RedHat @trisha_gee @holly_cummins

Slide 36

Slide 36 text

#Gradle #RedHat @trisha_gee @holly_cummins repetitive

Slide 37

Slide 37 text

#Gradle #RedHat @trisha_gee @holly_cummins meaningless repetitive

Slide 38

Slide 38 text

#Gradle #RedHat @trisha_gee @holly_cummins meaningless repetitive

Slide 39

Slide 39 text

#Gradle #RedHat @trisha_gee @holly_cummins low-value meaningless repetitive

Slide 40

Slide 40 text

#Gradle #RedHat @trisha_gee @holly_cummins low-value meaningless repetitive repetitive

Slide 41

Slide 41 text

#Gradle #RedHat @trisha_gee @holly_cummins low-value meaningless repetitive repetitive repetitive

Slide 42

Slide 42 text

#Gradle #RedHat @trisha_gee @holly_cummins low-value meaningless repetitive repetitive repetitive

Slide 43

Slide 43 text

#Gradle #RedHat @trisha_gee @holly_cummins low-value meaningless repetitive repetitive repetitive redundant

Slide 44

Slide 44 text

#Gradle #RedHat @trisha_gee @holly_cummins low-value meaningless repetitive repetitive repetitive repetitive redundant

Slide 45

Slide 45 text

#Gradle #RedHat @trisha_gee @holly_cummins repetitive low-value meaningless repetitive repetitive repetitive repetitive redundant

Slide 46

Slide 46 text

#Gradle #RedHat @trisha_gee @holly_cummins repetitive low-value meaningless repetitive repetitive repetitive repetitive redundant

Slide 47

Slide 47 text

#Gradle #RedHat @trisha_gee @holly_cummins so how do developers become productive?

Slide 48

Slide 48 text

#Gradle #RedHat @trisha_gee @holly_cummins so how do developers become productive? joyful?

Slide 49

Slide 49 text

@trisha_gee @holly_cummins #Gradle #RedHat Make computers do the boring stuff solution

Slide 50

Slide 50 text

#Gradle #RedHat @trisha_gee @holly_cummins (yet) Computers don’t expect to have fun

Slide 51

Slide 51 text

#Gradle #RedHat @trisha_gee @holly_cummins automation revenge! (yet) Computers don’t expect to have fun happy, lazy developer

Slide 52

Slide 52 text

#Gradle #RedHat @trisha_gee @holly_cummins solution

Slide 53

Slide 53 text

#Gradle #RedHat @trisha_gee @holly_cummins Let's Write More Code solution

Slide 54

Slide 54 text

No content

Slide 55

Slide 55 text

double win

Slide 56

Slide 56 text

#Gradle #RedHat @trisha_gee @holly_cummins “a developer writes 10 lines of code per day”

Slide 57

Slide 57 text

#Gradle #RedHat @trisha_gee @holly_cummins 10 lines per day …really?

Slide 58

Slide 58 text

#Gradle #RedHat @trisha_gee @holly_cummins

Slide 59

Slide 59 text

#Gradle #RedHat @trisha_gee @holly_cummins 12 lines per day

Slide 60

Slide 60 text

#Gradle #RedHat @trisha_gee @holly_cummins

Slide 61

Slide 61 text

#Gradle #RedHat @trisha_gee @holly_cummins 29 lines per day

Slide 62

Slide 62 text

#Gradle #RedHat @trisha_gee @holly_cummins can we fi x that?

Slide 63

Slide 63 text

#Gradle #RedHat @trisha_gee @holly_cummins incentives? solution

Slide 64

Slide 64 text

#Gradle #RedHat @trisha_gee @holly_cummins true story (from the internet): paying the team bonuses for lines of code

Slide 65

Slide 65 text

#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 }

Slide 66

Slide 66 text

#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 }

Slide 67

Slide 67 text

#Gradle #RedHat @trisha_gee @holly_cummins the team made comments prettier

Slide 68

Slide 68 text

#Gradle #RedHat @trisha_gee @holly_cummins __ .__ .__ .__ __ _/ |_| |__ |__| ______ |__| ______ _____ ____ ____ _____ _____ ____ _____/ |_ \ __\ | \| |/ ___/ | |/ ___/ \__ \ _/ ___\/ _ \ / \ / \_/ __ \ / \ __\ | | | Y \ |\___ \ | |\___ \ / __ \_ \ \__( <_> ) Y Y \ Y Y \ ___/| | \ | |__| |___| /__/____ > |__/____ > (____ / \___ >____/|__|_| /__|_| /\___ >___| /__| \/ \/ \/ \/ \/ \/ \/ \/ \/ the team made comments prettier

Slide 69

Slide 69 text

#Gradle #RedHat @trisha_gee @holly_cummins the experiment lasted one day

Slide 70

Slide 70 text

#Gradle #RedHat @trisha_gee @holly_cummins Can AI help us write more code? solution

Slide 71

Slide 71 text

#Gradle #RedHat @trisha_gee @holly_cummins

Slide 72

Slide 72 text

#Gradle #RedHat @trisha_gee @holly_cummins

Slide 73

Slide 73 text

#Gradle #RedHat @trisha_gee @holly_cummins

Slide 74

Slide 74 text

#Gradle #RedHat @trisha_gee @holly_cummins

Slide 75

Slide 75 text

#Gradle #RedHat @trisha_gee @holly_cummins

Slide 76

Slide 76 text

#Gradle #RedHat @trisha_gee @holly_cummins 70% unnecessary code

Slide 77

Slide 77 text

#Gradle #RedHat @trisha_gee @holly_cummins LLMs are much better at writing code than deleting it.

Slide 78

Slide 78 text

#Gradle #RedHat @trisha_gee @holly_cummins is this the equivalent of ascii art comments?

Slide 79

Slide 79 text

#Gradle #RedHat @trisha_gee @holly_cummins

Slide 80

Slide 80 text

hang on

Slide 81

Slide 81 text

#Gradle #RedHat @trisha_gee @holly_cummins “lines of code” is not a good productivity metric for people. or machines.

Slide 82

Slide 82 text

#Gradle #RedHat @trisha_gee @holly_cummins if code is so boring a machine can predict it, maybe it shouldn’t be there?

Slide 83

Slide 83 text

No content

Slide 84

Slide 84 text

enter … developer joy

Slide 85

Slide 85 text

@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

Slide 86

Slide 86 text

@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

Slide 87

Slide 87 text

@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

Slide 88

Slide 88 text

@trisha_gee @holly_cummins #Gradle #RedHat example: declaring an application

Slide 89

Slide 89 text

@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

Slide 90

Slide 90 text

@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 list(String query, Sort sort, Object... params) { return null; } Stream stream(String query, Object... params) { return null; } long count() { return 0; } long count(String query, Object... params) { return 0; } } example: hibernate with panache

Slide 91

Slide 91 text

@trisha_gee @holly_cummins #Gradle #RedHat example: hibernate with panache @ApplicationScoped public class GreetingRepository implements PanacheRepository { public Entity findByName(int name) { return find("name", name).firstResult(); } }

Slide 92

Slide 92 text

@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

Slide 93

Slide 93 text

@trisha_gee @holly_cummins #Gradle #RedHat example: testcontainers

Slide 94

Slide 94 text

@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

Slide 95

Slide 95 text

@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

Slide 96

Slide 96 text

@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

Slide 97

Slide 97 text

@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

Slide 98

Slide 98 text

#Gradle #RedHat @trisha_gee @holly_cummins What else are developers doing?

Slide 99

Slide 99 text

No content

Slide 100

Slide 100 text

No content

Slide 101

Slide 101 text

solution: Build Cache

Slide 102

Slide 102 text

No content

Slide 103

Slide 103 text

No content

Slide 104

Slide 104 text

solution: Predictive Test Selection

Slide 105

Slide 105 text

solution: Predictive Test Selection

Slide 106

Slide 106 text

solution: Predictive Test Selection

Slide 107

Slide 107 text

solution: Test Distribution

Slide 108

Slide 108 text

Flaky Tests

Slide 109

Slide 109 text

Flaky Tests

Slide 110

Slide 110 text

No content

Slide 111

Slide 111 text

@trisha_gee @holly_cummins #Gradle #RedHat

Slide 112

Slide 112 text

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

Slide 113

Slide 113 text

@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?

Slide 114

Slide 114 text

@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?

Slide 115

Slide 115 text

@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

Slide 116

Slide 116 text

solution: “auto-Guillaume” with Develocity

Slide 117

Slide 117 text

solution: “auto-Guillaume” with Develocity

Slide 118

Slide 118 text

solution: “auto-Guillaume” with Develocity

Slide 119

Slide 119 text

solution: “auto-Guillaume” with Develocity

Slide 120

Slide 120 text

No content

Slide 121

Slide 121 text

State “Strong reliability practices predict better operational performance, team performance, and organisational performance.”

Slide 122

Slide 122 text

hang on

Slide 123

Slide 123 text

#Gradle #RedHat @trisha_gee @holly_cummins What else do developers spend time on?

Slide 124

Slide 124 text

The 2019 Tidelift survey
 https://bit.ly/3MOEpK3

Slide 125

Slide 125 text

The 2019 Tidelift survey
 https://bit.ly/3MOEpK3

Slide 126

Slide 126 text

No content

Slide 127

Slide 127 text

#Gradle #RedHat @trisha_gee @holly_cummins what gets measured is what gets optimised, make sure to measure the right thing

Slide 128

Slide 128 text

@trisha_gee @holly_cummins #Gradle #RedHat Satisfaction & Well-being Performance Activity Communication & Collaboration E ffi ciency & Flow SPACE

Slide 129

Slide 129 text

@trisha_gee @holly_cummins #Gradle #RedHat Satisfaction & Well-being Performance Activity Communication & Collaboration E ffi ciency & Flow SPACE

Slide 130

Slide 130 text

@trisha_gee @holly_cummins #Gradle #RedHat Satisfaction & Well-being Performance Activity Communication & Collaboration E ffi ciency & Flow SPACE

Slide 131

Slide 131 text

#Gradle #RedHat @trisha_gee @holly_cummins Dave Farley Trisha

Slide 132

Slide 132 text

#Gradle #RedHat @trisha_gee @holly_cummins Dave Farley Trisha

Slide 133

Slide 133 text

#Gradle #RedHat @trisha_gee @holly_cummins Dave Farley Trisha

Slide 134

Slide 134 text

#Gradle #RedHat @trisha_gee @holly_cummins Creating boredom

Slide 135

Slide 135 text

#Gradle #RedHat @trisha_gee @holly_cummins “Creating space”

Slide 136

Slide 136 text

#Gradle #RedHat @trisha_gee @holly_cummins

Slide 137

Slide 137 text

#Gradle #RedHat @trisha_gee @holly_cummins toil is bad idleness is … good?

Slide 138

Slide 138 text

#Gradle #RedHat @trisha_gee @holly_cummins Default Mode Network science con fi rms it:

Slide 139

Slide 139 text

#Gradle #RedHat @trisha_gee @holly_cummins

Slide 140

Slide 140 text

#Gradle #RedHat @trisha_gee @holly_cummins 14% took showers speci fi cally for the purpose of coming up with ideas

Slide 141

Slide 141 text

#Gradle #RedHat @trisha_gee @holly_cummins Holly is most productive while • Showering • Running Trisha is most productive while • Knitting • Showering

Slide 142

Slide 142 text

#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

Slide 143

Slide 143 text

#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

Slide 144

Slide 144 text

Activities to help your DMN - knitting - running - walking - showers - gardening - unloading the dishwasher - colouring - laundry

Slide 145

Slide 145 text

#Gradle #RedHat @trisha_gee @holly_cummins

Slide 146

Slide 146 text

#Gradle #RedHat @trisha_gee @holly_cummins double-win knitting makes you productive … and you get new clothes

Slide 147

Slide 147 text

#Gradle #RedHat @trisha_gee @holly_cummins

Slide 148

Slide 148 text

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

Slide 149

Slide 149 text

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

Slide 150

Slide 150 text

#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?

Slide 151

Slide 151 text

#Gradle #RedHat @trisha_gee @holly_cummins

Slide 152

Slide 152 text

#Gradle #RedHat @trisha_gee @holly_cummins we work in a creative industry

Slide 153

Slide 153 text

#Gradle #RedHat @trisha_gee @holly_cummins we work in a creative industry play helps creativity

Slide 154

Slide 154 text

@trisha_gee @holly_cummins #Gradle #RedHat creativity brings us joy

Slide 155

Slide 155 text

#Gradle #RedHat @trisha_gee @holly_cummins

Slide 156

Slide 156 text

#Gradle #RedHat @trisha_gee @holly_cummins Embrace the dead time

Slide 157

Slide 157 text

#Gradle #RedHat @trisha_gee @holly_cummins Embrace the dead time Use it well:

Slide 158

Slide 158 text

#Gradle #RedHat @trisha_gee @holly_cummins Embrace the dead time Use it well: - problem solving

Slide 159

Slide 159 text

#Gradle #RedHat @trisha_gee @holly_cummins Embrace the dead time Use it well: - problem solving - thinking

Slide 160

Slide 160 text

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

Slide 161

Slide 161 text

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

Slide 162

Slide 162 text

#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

Slide 163

Slide 163 text

No content

Slide 164

Slide 164 text

50%?

Slide 165

Slide 165 text

#Gradle #RedHat @trisha_gee @holly_cummins Make time for boredom Also make time for play

Slide 166

Slide 166 text

#Gradle #RedHat @trisha_gee @holly_cummins remember SPACE? S is developer Satisfaction an important metric in SPACE

Slide 167

Slide 167 text

@holly_cummins #RedHat

Slide 168

Slide 168 text

@holly_cummins #RedHat the double win

Slide 169

Slide 169 text

@holly_cummins #RedHat the double win co-benefits

Slide 170

Slide 170 text

@holly_cummins #RedHat the double win co-benefits win-win

Slide 171

Slide 171 text

@holly_cummins #RedHat the double win co-benefits win-win twofer

Slide 172

Slide 172 text

@holly_cummins #RedHat the double win co-benefits win-win twofer überwinden

Slide 173

Slide 173 text

@holly_cummins #RedHat the double win co-benefits win-win twofer überwinden

Slide 174

Slide 174 text

@trisha_gee @holly_cummins #Gradle #RedHat productivity happiness

Slide 175

Slide 175 text

@trisha_gee @holly_cummins #Gradle #RedHat it’s not a trade-off. productivity happiness

Slide 176

Slide 176 text

@trisha_gee @holly_cummins #Gradle #RedHat productivity happiness it’s a double-win.

Slide 177

Slide 177 text

#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

Slide 178

Slide 178 text

#Gradle #RedHat @trisha_gee @holly_cummins

Slide 179

Slide 179 text

#Gradle #RedHat @trisha_gee @holly_cummins - be careful how you measure productivity (not LOC!)

Slide 180

Slide 180 text

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

Slide 181

Slide 181 text

#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

Slide 182

Slide 182 text

#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

Slide 183

Slide 183 text

@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