Slide 1

Slide 1 text

is efficiency a good thing? holly cummins 7 december, 2023 tech.rocks

Slide 2

Slide 2 text

@holly_cummins #RedHat now senior principal software engineer helping to build Quarkus

Slide 3

Slide 3 text

@holly_cummins #RedHat now senior principal software engineer helping to build Quarkus 2007 let’s make garbage collection more efficient!

Slide 4

Slide 4 text

@holly_cummins #RedHat now senior principal software engineer helping to build Quarkus 2007 let’s make garbage collection more efficient! 2015 lean and xp makes your team more efficient!

Slide 5

Slide 5 text

@holly_cummins #RedHat now senior principal software engineer helping to build Quarkus 2007 let’s make garbage collection more efficient! 2015 lean and xp makes your team more efficient! 2022 quarkus is wonderfully efficient!

Slide 6

Slide 6 text

@holly_cummins #RedHat “j’aimerais bien être inefficace”

Slide 7

Slide 7 text

@holly_cummins #RedHat “j’aimerais bien être inefficace” none us of us say this

Slide 8

Slide 8 text

@holly_cummins #RedHat

Slide 9

Slide 9 text

@holly_cummins #RedHat

Slide 10

Slide 10 text

@holly_cummins #RedHat machine 1700s

Slide 11

Slide 11 text

@holly_cummins #RedHat machine 1700s energy

Slide 12

Slide 12 text

@holly_cummins #RedHat machine 1700s energy energy

Slide 13

Slide 13 text

@holly_cummins #RedHat machine 1700s energy energy useful

Slide 14

Slide 14 text

@holly_cummins #RedHat processes 1890s

Slide 15

Slide 15 text

@holly_cummins #RedHat processes time money 1890s

Slide 16

Slide 16 text

@holly_cummins #RedHat processes time money 1890s value

Slide 17

Slide 17 text

@holly_cummins #RedHat processes time money 1890s “interaction at scale” value

Slide 18

Slide 18 text

@holly_cummins #RedHat manufacturing 1900s

Slide 19

Slide 19 text

@holly_cummins #RedHat manufacturing 1900s value value

Slide 20

Slide 20 text

@holly_cummins #RedHat manufacturing 1900s value value value lean

Slide 21

Slide 21 text

@holly_cummins #RedHat software 1960s

Slide 22

Slide 22 text

@holly_cummins #RedHat software time electricity hardware 1960s

Slide 23

Slide 23 text

@holly_cummins #RedHat software time electricity hardware answers 1960s

Slide 24

Slide 24 text

@holly_cummins #RedHat takeaway consider all kinds of efficiency -processes -production -software

Slide 25

Slide 25 text

@holly_cummins #RedHat after 200 years, we’re getting good at efficiency

Slide 26

Slide 26 text

@holly_cummins #RedHat source: http://geosci.uchicago.edu/~moyer/GEOS24705/2016/Assignments/PS7.pdf steam engine efficiency

Slide 27

Slide 27 text

@holly_cummins #RedHat koomey’s law: the energy efficiency of computers doubles roughly every 18 months computer efficiency

Slide 28

Slide 28 text

@holly_cummins #RedHat koomey’s law: the energy efficiency of computers doubles roughly every 18 months computer efficiency

Slide 29

Slide 29 text

software efficiency

Slide 30

Slide 30 text

starting a java application in 2010

Slide 31

Slide 31 text

starting a java application in 2010 slower than making tea

Slide 32

Slide 32 text

starting a java application in 2023

Slide 33

Slide 33 text

starting a java application in 2023 faster than a lightbulb

Slide 34

Slide 34 text

starting a java application in 2023 faster than a lightbulb quarkus

Slide 35

Slide 35 text

#Quarkus @[email protected] memory + CPU == €€ cloud

Slide 36

Slide 36 text

@holly_cummins #RedHat we have automated all the things

Slide 37

Slide 37 text

@holly_cummins #RedHat infrastructure as code

Slide 38

Slide 38 text

@holly_cummins #RedHat … us as code

Slide 39

Slide 39 text

@holly_cummins #RedHat

Slide 40

Slide 40 text

@holly_cummins #RedHat

Slide 41

Slide 41 text

@holly_cummins #RedHat

Slide 42

Slide 42 text

@holly_cummins #RedHat @holly_cummins

Slide 43

Slide 43 text

@holly_cummins #RedHat @holly_cummins

Slide 44

Slide 44 text

@holly_cummins #RedHat @holly_cummins all my cool ideas were apparently not very original!

Slide 45

Slide 45 text

@holly_cummins #RedHat even after 200 years, we are not always very good at efficiency but.

Slide 46

Slide 46 text

@holly_cummins #RedHat process inefficiency

Slide 47

Slide 47 text

@holly_cummins #RedHat “this provisioning software is broken”

Slide 48

Slide 48 text

@holly_cummins #RedHat what we sold “this provisioning software is broken” 10 minute provision-time

Slide 49

Slide 49 text

@holly_cummins #RedHat what we sold “this provisioning software is broken” 10 minute provision-time 3 month provision- time what the client thought they’d got

Slide 50

Slide 50 text

@holly_cummins #RedHat what we sold “this provisioning software is broken” 10 minute provision-time 3 month provision- time what the client thought they’d got the reason 84-step pre-approval process

Slide 51

Slide 51 text

@holly_cummins #RedHat software inefficiency

Slide 52

Slide 52 text

@holly_cummins #RedHat https://blog.linkedin.com/2017/august/3/making-linkedin-more-accessible-via-linkedin-lite

Slide 53

Slide 53 text

@holly_cummins #RedHat https://blog.linkedin.com/2017/august/3/making-linkedin-more-accessible-via-linkedin-lite “my heart sank … our new feature failed to load because of poor internet connectivity”

Slide 54

Slide 54 text

@holly_cummins #RedHat https://blog.linkedin.com/2017/august/3/making-linkedin-more-accessible-via-linkedin-lite modern web is so inefficient it is useless for part of its audience “my heart sank … our new feature failed to load because of poor internet connectivity”

Slide 55

Slide 55 text

#RedHat @[email protected] waste everywhere

Slide 56

Slide 56 text

#RedHat @[email protected] 25% of 16,000 servers doing no useful work https://www.anthesisgroup.com/wp-content/uploads/2019/11/Comatose-Servers-Redux-2017.pdf zombie servers

Slide 57

Slide 57 text

#RedHat @[email protected] zombie “they haven't delivered any information or computing services for six months or more”

Slide 58

Slide 58 text

#RedHat @[email protected] 29% of 4,000 active less than 5% of the time https://www.anthesisgroup.com/wp-content/uploads/2019/11/Comatose-Servers-Redux-2017.pdf under-utilised servers

Slide 59

Slide 59 text

#RedHat @[email protected] the average server: 12 - 18% of capacity 30 - 60 % of maximum power https://www.nrdc.org/sites/default/files/data-center-efficiency-assessment-IB.pdf

Slide 60

Slide 60 text

@holly_cummins #RedHat it’s not just money

Slide 61

Slide 61 text

@holly_cummins #RedHat it’s not just electricity it’s not just money

Slide 62

Slide 62 text

@holly_cummins #RedHat it’s not just electricity it’s water it’s not just money

Slide 63

Slide 63 text

@holly_cummins #RedHat it’s not just electricity it’s water it’s e-waste it’s not just money

Slide 64

Slide 64 text

@holly_cummins #RedHat it’s not just electricity it’s water it’s e-waste it’s not just money it’s embodied carbon

Slide 65

Slide 65 text

@holly_cummins #RedHat we cling on to inefficiency

Slide 66

Slide 66 text

@holly_cummins #RedHat true story from the software marketing trenches

Slide 67

Slide 67 text

@holly_cummins #RedHat our amazing product makes your team more efficient true story from the software marketing trenches

Slide 68

Slide 68 text

@holly_cummins #RedHat our amazing product makes your team more efficient ooh, no, definitely don’t want that true story from the software marketing trenches

Slide 69

Slide 69 text

@holly_cummins #RedHat our amazing product makes your team more efficient ooh, no, definitely don’t want that and it’s yours for only – wait, what? true story from the software marketing trenches

Slide 70

Slide 70 text

@holly_cummins #RedHat our amazing product makes your team more efficient ooh, no, definitely don’t want that and it’s yours for only – wait, what? if we became more efficient our headcount would be reduced true story from the software marketing trenches

Slide 71

Slide 71 text

@holly_cummins #RedHat our amazing product makes your team more efficient ooh, no, definitely don’t want that and it’s yours for only – wait, what? if we became more efficient our headcount would be reduced my status would be lower true story from the software marketing trenches

Slide 72

Slide 72 text

@holly_cummins #RedHat our amazing product makes your team more efficient ooh, no, definitely don’t want that and it’s yours for only – wait, what? if we became more efficient our headcount would be reduced my status would be lower true story from the software marketing trenches …

Slide 73

Slide 73 text

@holly_cummins #RedHat if I tell my boss about an inefficiency, what if my friends get laid off because less staff are needed after it’s fixed?

Slide 74

Slide 74 text

@holly_cummins #RedHat takeaway drive out inefficiency

Slide 75

Slide 75 text

@holly_cummins #RedHat takeaway drive out inefficiency ⁃ stupid processes ⁃ bloated software ⁃ terrible resource utilisation

Slide 76

Slide 76 text

@holly_cummins #RedHat takeaway drive out inefficiency ⁃ stupid processes ⁃ bloated software ⁃ terrible resource utilisation make sure incentive structures do not reward inefficiency

Slide 77

Slide 77 text

@holly_cummins #RedHat once you’ve eliminated the obvious waste … go further

Slide 78

Slide 78 text

@holly_cummins #RedHat “There is nothing so useless as doing efficiently that which should not be done at all." Peter Drucker

Slide 79

Slide 79 text

@holly_cummins #RedHat defect triage team

Slide 80

Slide 80 text

@holly_cummins #RedHat defect triage team

Slide 81

Slide 81 text

@holly_cummins #RedHat let’s … set the priority to ‘medium’! defect triage team

Slide 82

Slide 82 text

@holly_cummins #RedHat let’s … set the priority to ‘medium’! defect triage team could we turn this whole meeting into a small shell script?

Slide 83

Slide 83 text

@holly_cummins #RedHat let’s … set the priority to ‘medium’! defect triage team could we turn this whole meeting into a small shell script? what if … we just got rid of the priority field?

Slide 84

Slide 84 text

@holly_cummins #RedHat instead of using ai to fill in boilerplate, could we just … get rid of the boilerplate?

Slide 85

Slide 85 text

@holly_cummins #RedHat example: logging without quarkus 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!"); } }

Slide 86

Slide 86 text

@holly_cummins #RedHat example: logging without quarkus 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!"); } } import io.quarkus.logging.Log; Log with quarkus

Slide 87

Slide 87 text

@holly_cummins #RedHat takeaway - think different - go for radical waste reduction

Slide 88

Slide 88 text

@holly_cummins #RedHat can you try too hard for efficiency?

Slide 89

Slide 89 text

@holly_cummins #RedHat 1700 1900 2000

Slide 90

Slide 90 text

@holly_cummins #RedHat 1700 1900 2000

Slide 91

Slide 91 text

@holly_cummins #RedHat 1700 1900 2000

Slide 92

Slide 92 text

@holly_cummins #RedHat 1700 1900 2000

Slide 93

Slide 93 text

@holly_cummins #RedHat 1700 1900 2000

Slide 94

Slide 94 text

@holly_cummins #RedHat 1700 1900 2000

Slide 95

Slide 95 text

@holly_cummins #RedHat taylorism

Slide 96

Slide 96 text

@holly_cummins #RedHat taylorism

Slide 97

Slide 97 text

@holly_cummins #RedHat taylorism ≃

Slide 98

Slide 98 text

@holly_cummins #RedHat taylorism ≃

Slide 99

Slide 99 text

@holly_cummins #RedHat

Slide 100

Slide 100 text

@holly_cummins #RedHat

Slide 101

Slide 101 text

@holly_cummins #RedHat “data-driven”

Slide 102

Slide 102 text

@holly_cummins #RedHat measuring the efficiency of people

Slide 103

Slide 103 text

@holly_cummins #RedHat

Slide 104

Slide 104 text

@holly_cummins #RedHat

Slide 105

Slide 105 text

@holly_cummins #RedHat

Slide 106

Slide 106 text

@holly_cummins #RedHat it’s easy to measure wrong

Slide 107

Slide 107 text

@holly_cummins #RedHat you get what you measure are you measuring what you actually want?

Slide 108

Slide 108 text

@holly_cummins #RedHat when efficiency isn’t efficient trade-offs

Slide 109

Slide 109 text

@holly_cummins #RedHat automation may not save as much time as you think

Slide 110

Slide 110 text

@holly_cummins #RedHat https://www.sify.com/ai-analytics/the-hilarious-and-horrifying-hallucinations-of-ai/

Slide 111

Slide 111 text

@holly_cummins #RedHat “What is the world record for crossing the English channel entirely on foot?” https://www.sify.com/ai-analytics/the-hilarious-and-horrifying-hallucinations-of-ai/

Slide 112

Slide 112 text

@holly_cummins #RedHat “What is the world record for crossing the English channel entirely on foot?” “The world record for crossing the English Channel entirely on foot is held by Christof Wandratsch of Germany, who completed the crossing in 14 hours and 51 minutes on August 14, 2020.” https://www.sify.com/ai-analytics/the-hilarious-and-horrifying-hallucinations-of-ai/

Slide 113

Slide 113 text

@holly_cummins #RedHat “What is the world record for crossing the English channel entirely on foot?” “The world record for crossing the English Channel entirely on foot is held by Christof Wandratsch of Germany, who completed the crossing in 14 hours and 51 minutes on August 14, 2020.” https://www.sify.com/ai-analytics/the-hilarious-and-horrifying-hallucinations-of-ai/ bullshit as a service

Slide 114

Slide 114 text

@holly_cummins #RedHat

Slide 115

Slide 115 text

@holly_cummins #RedHat “The submission accused firms of involvement in scandals that either didn’t exist or that they had nothing to do with. It referenced partners being dismissed by firms that had never employed them.”

Slide 116

Slide 116 text

@holly_cummins #RedHat

Slide 117

Slide 117 text

@holly_cummins #RedHat “illusion of efficiency”

Slide 118

Slide 118 text

@holly_cummins #RedHat can we afford efficiency?

Slide 119

Slide 119 text

No content

Slide 120

Slide 120 text

energy efficiency of programming languages

Slide 121

Slide 121 text

@holly_cummins #RedHat “Rust is the hardest programming language up to that time I’ve met.” -Vorner https://vorner.github.io/difficult.html

Slide 122

Slide 122 text

@holly_cummins #RedHat language design trade-offs

Slide 123

Slide 123 text

@holly_cummins #RedHat language design trade-offs low-level control

Slide 124

Slide 124 text

@holly_cummins #RedHat language design trade-offs low-level control higher-level abstractions

Slide 125

Slide 125 text

@holly_cummins #RedHat language design trade-offs low-level control higher-level abstractions “zero overhead”, performant

Slide 126

Slide 126 text

@holly_cummins #RedHat language design trade-offs low-level control higher-level abstractions “zero overhead”, performant developer productivity

Slide 127

Slide 127 text

@holly_cummins #RedHat language design trade-offs low-level control higher-level abstractions “zero overhead”, performant developer productivity raw performance may not actually matter, but all developers pay the cost of the extra cognitive burden

Slide 128

Slide 128 text

@holly_cummins #RedHat it is not sensible to rewrite all our business apps in rust, no matter how efficient it is

Slide 129

Slide 129 text

@holly_cummins #RedHat super-optimised code is less maintainable

Slide 130

Slide 130 text

@holly_cummins #RedHat super-optimised code is less maintainable software efficiency

Slide 131

Slide 131 text

@holly_cummins #RedHat super-optimised code is less maintainable software efficiency developer efficiency

Slide 132

Slide 132 text

@holly_cummins #RedHat super-optimised code is less maintainable software efficiency developer efficiency trade-off

Slide 133

Slide 133 text

#Quarkus @[email protected] focus on making the bottleneck efficient

Slide 134

Slide 134 text

@holly_cummins #RedHat make sure you consider all requirements

Slide 135

Slide 135 text

@holly_cummins #RedHat #RedHat

Slide 136

Slide 136 text

@holly_cummins #RedHat highly efficient (optimum number of legs) #RedHat

Slide 137

Slide 137 text

@holly_cummins #RedHat less efficient (more legs than needed) highly efficient (optimum number of legs) #RedHat

Slide 138

Slide 138 text

@holly_cummins #RedHat less efficient (more legs than needed) highly efficient (optimum number of legs) resilient #RedHat

Slide 139

Slide 139 text

@holly_cummins #RedHat less efficient (more legs than needed) highly efficient (optimum number of legs) resilient #RedHat

Slide 140

Slide 140 text

@holly_cummins #RedHat less efficient (more legs than needed) highly efficient (optimum number of legs) no resiliency resilient #RedHat

Slide 141

Slide 141 text

@holly_cummins #RedHat less efficient (more legs than needed) highly efficient (optimum number of legs) resiliency is inefficient no resiliency resilient #RedHat

Slide 142

Slide 142 text

@holly_cummins #RedHat it’s the same for people

Slide 143

Slide 143 text

@holly_cummins #RedHat ‘le blurring’ can be harmful to health

Slide 144

Slide 144 text

@holly_cummins #RedHat le fun-at-work can help productivity

Slide 145

Slide 145 text

job satisfaction is the no. 1 predictor of organizational performance

Slide 146

Slide 146 text

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

Slide 147

Slide 147 text

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

Slide 148

Slide 148 text

@holly_cummins #RedHat studies show…

Slide 149

Slide 149 text

@holly_cummins #RedHat studies show… employee fun

Slide 150

Slide 150 text

@holly_cummins #RedHat studies show… employee fun

Slide 151

Slide 151 text

@holly_cummins #RedHat studies show… employee fun harder working

Slide 152

Slide 152 text

@holly_cummins #RedHat studies show… employee fun harder working more productivity

Slide 153

Slide 153 text

@holly_cummins #RedHat studies show… employee fun harder working more productivity less sick leave

Slide 154

Slide 154 text

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

Slide 155

Slide 155 text

@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

Slide 156

Slide 156 text

@holly_cummins #RedHat

Slide 157

Slide 157 text

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

Slide 158

Slide 158 text

@holly_cummins #RedHat "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

Slide 159

Slide 159 text

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

Slide 160

Slide 160 text

@holly_cummins #RedHat doing nothing helps creativity

Slide 161

Slide 161 text

@holly_cummins #RedHat the default mode network idle minds can solve hard problems

Slide 162

Slide 162 text

@holly_cummins #RedHat psychology says we need idle time; maths agrees

Slide 163

Slide 163 text

@holly_cummins #RedHat queueing theory says systems need to run under-capacity to cope psychology says we need idle time; maths agrees

Slide 164

Slide 164 text

@holly_cummins #RedHat queuing theory basics

Slide 165

Slide 165 text

@holly_cummins #RedHat queuing theory basics arrival process

Slide 166

Slide 166 text

@holly_cummins #RedHat queuing theory basics arrival process Poisson distribution

Slide 167

Slide 167 text

@holly_cummins #RedHat queuing theory basics queue arrival process Poisson distribution

Slide 168

Slide 168 text

@holly_cummins #RedHat queuing theory basics queue arrival process Poisson distribution

Slide 169

Slide 169 text

@holly_cummins #RedHat queuing theory basics queue arrival process servers Poisson distribution

Slide 170

Slide 170 text

@holly_cummins #RedHat queuing theory basics queue arrival process servers Poisson distribution

Slide 171

Slide 171 text

@holly_cummins #RedHat queuing theory basics queue arrival process servers completed work Poisson distribution

Slide 172

Slide 172 text

@holly_cummins #RedHat queue arrival process servers completed work if server capacity is too low, wait times are high

Slide 173

Slide 173 text

@holly_cummins #RedHat if arrival rates are low, servers will be idle queue arrival process servers completed work

Slide 174

Slide 174 text

@holly_cummins #RedHat utilisation lead time http://brodzinski.com/2015/01/slack-time-value.html assuming Poisson distribution of arrivals

Slide 175

Slide 175 text

@holly_cummins #RedHat utilisation lead time http://brodzinski.com/2015/01/slack-time-value.html assuming Poisson distribution of arrivals 80% utilisation → 90% utilisation: wait times double

Slide 176

Slide 176 text

@holly_cummins #RedHat utilisation http://brodzinski.com/2015/01/slack-time-value.html cost delay cost assuming Poisson distribution of arrivals 80% utilisation → 90% utilisation: wait times double

Slide 177

Slide 177 text

@holly_cummins #RedHat utilisation http://brodzinski.com/2015/01/slack-time-value.html cost delay cost cost of idle capacity assuming Poisson distribution of arrivals 80% utilisation → 90% utilisation: wait times double

Slide 178

Slide 178 text

@holly_cummins #RedHat trains could go faster than the schedule needs them to

Slide 179

Slide 179 text

@holly_cummins #RedHat speed trains could go faster than the schedule needs them to

Slide 180

Slide 180 text

@holly_cummins #RedHat speed vs predictability trains could go faster than the schedule needs them to but then any minor delay is irrecoverable

Slide 181

Slide 181 text

@holly_cummins #RedHat this is great

Slide 182

Slide 182 text

@holly_cummins #RedHat this is great relaxing has business value

Slide 183

Slide 183 text

@holly_cummins #RedHat takeaway - measure thoughtfully; you will get what you measure - remember the paradoxes: - efficiency is not always efficient - fun and idleness improves efficiency

Slide 184

Slide 184 text

@holly_cummins #RedHat are you optimising the right thing? efficiency can take unexpected forms

Slide 185

Slide 185 text

@holly_cummins #RedHat what problem are we trying to solve?

Slide 186

Slide 186 text

@holly_cummins #RedHat what problem are we trying to solve? efficient cool and bouncy

Slide 187

Slide 187 text

@holly_cummins #RedHat what problem are we trying to solve? efficient cool and bouncy more efficient squashy and blobby

Slide 188

Slide 188 text

@holly_cummins #RedHat tl;dpa ⁃ our processes, development, and software can all be more efficient ⁃ do look for waste, and get rid of it ⁃ don’t treat people like machines ⁃ beware the illusion of efficiency ⁃ remember that people and systems function better with some idle time (too long; didn’t pay attention)

Slide 189

Slide 189 text

thank you @[email protected] slides thank you #RedHat @holly_cummins