Slide 1

Slide 1 text

1

Slide 2

Slide 2 text

2 Senior Engineer: You know, I've figured out a way to improve our database performance by 75%.

Slide 3

Slide 3 text

3 Senior Engineer: You know, I've figured out a way to improve our database performance by 75%. me: Yeah? Wow, that sounds amazing.

Slide 4

Slide 4 text

4 Senior Engineer: You know, I've figured out a way to improve our database performance by 75%. me: Yeah? Wow, that sounds amazing. "Yeah, except it’s not going to happen."

Slide 5

Slide 5 text

5 Senior Engineer: You know, I've figured out a way to improve our database performance by 75%. me: Yeah? Wow, that sounds amazing. "Yeah, except it’s not going to happen." Weird. Is it because it’s a lot of work?

Slide 6

Slide 6 text

6 Senior Engineer: You know, I've figured out a way to improve our database performance by 75%. me: Yeah? Wow, that sounds amazing. "Yeah, except it’s not going to happen." Weird. Is it because it’s a lot of work? No, it’d take maybe two weeks to complete.

Slide 7

Slide 7 text

7 Uh... then why not do it? Seems like an obvious win. What gives?

Slide 8

Slide 8 text

8 Uh... then why not do it? Seems like an obvious win. What gives? Yeah, I emailed the head of that team. Shared my idea with proof that it'd work. But they're in the middle of an 18 month project and I didn't get a response. I guess my idea just isn't important enough.

Slide 9

Slide 9 text

9 Wait, what? Your idea improves database performance by 75% across the entire product, takes two weeks, and is tabled for working on an 18 month project?

Slide 10

Slide 10 text

10 Wait, what? Your idea improves database performance by 75% across the entire product, takes two weeks, and is tabled for working on an 18 month project? Yeah, I'm frustrated.

Slide 11

Slide 11 text

11 Did you ever follow up outside of sending an email?

Slide 12

Slide 12 text

12 Did you ever follow up outside of sending an email? Look man, I did my part. I looked into a hard problem and found a solution and offered it to the relevant team. And at the end of the day nobody cared. So I'm frustrated.

Slide 13

Slide 13 text

Outcomes ● A senior engineer at a company developed a brilliant idea to dramatically increase product performance at minimal engineering cost. 13

Slide 14

Slide 14 text

Outcomes ● A senior engineer at a company developed a brilliant idea to dramatically increase product performance at minimal engineering cost. ● That idea will not be executed, and as a result, customers will suffer. 14

Slide 15

Slide 15 text

Outcomes ● A senior engineer at a company developed a brilliant idea to dramatically increase product performance at minimal engineering cost. ● That idea will not be executed, and as a result, customers will suffer. ● That senior engineer feels like their ideas, no matter how brilliant, do not have an impact. 15

Slide 16

Slide 16 text

Dan Na Staff Engineer, Squarespace Internationalization Platform

Slide 17

Slide 17 text

17

Slide 18

Slide 18 text

18

Slide 19

Slide 19 text

talks.danielna.com @dxna 19

Slide 20

Slide 20 text

Dan Na, Squarespace Web Unleashed 2019 | September 14, 2019 | Toronto, Canada Pushing Through Friction

Slide 21

Slide 21 text

21

Slide 22

Slide 22 text

22

Slide 23

Slide 23 text

23

Slide 24

Slide 24 text

24

Slide 25

Slide 25 text

25

Slide 26

Slide 26 text

Agenda 1. What causes friction? 2. How can organizations and individuals overcome friction? 26

Slide 27

Slide 27 text

What is friction?

Slide 28

Slide 28 text

28

Slide 29

Slide 29 text

29

Slide 30

Slide 30 text

30

Slide 31

Slide 31 text

31

Slide 32

Slide 32 text

32

Slide 33

Slide 33 text

33

Slide 34

Slide 34 text

34

Slide 35

Slide 35 text

35

Slide 36

Slide 36 text

More friction ● You git blame a file that's used everywhere but nobody understands it and the person who wrote it left the company five years ago. ● You begin work to update an old, untouched but critical part of the codebase, only to realize there are no tests. 36

Slide 37

Slide 37 text

More friction ● You git blame a file that's used everywhere but nobody understands it and the person who wrote it left the company five years ago. ● You begin work to update an old, untouched but critical part of the codebase, only to realize there are no tests. 37

Slide 38

Slide 38 text

Organizational friction ● New hires often feel lost, disengaged and unhappy. 38

Slide 39

Slide 39 text

Organizational friction ● New hires often feel lost, disengaged and unhappy. ● Teams are building redundant or non-complementary features. 39

Slide 40

Slide 40 text

Organizational friction ● New hires often feel lost, disengaged and unhappy. ● Teams are building redundant or non-complementary features. ● You look around the lunch room and everyone looks the same. 40

Slide 41

Slide 41 text

Friction lies within the gap between how things are and how they should be; your reality and your ideal. Friction is all the work it’s going to take to get there. 41

Slide 42

Slide 42 text

You've promised to ship a thing on a deadline and you unexpectedly discover that the underlying system is wildly inaccurate. 42

Slide 43

Slide 43 text

A single point of failure gives her two weeks notice. 43

Slide 44

Slide 44 text

Why does friction occur?

Slide 45

Slide 45 text

45

Slide 46

Slide 46 text

“ When I started at Uber, we were almost 1,000 employees and were doubling the headcount every six months. An old-timer summarized their experience as: "We're growing so quickly that every six months we're a new company." A bystander quickly added a corollary: "Which means our process is always six months behind our head count." 46 “An Elegant Puzzle: Systems of Engineering Management” Will Larson, then Senior Engineering Manager, Uber

Slide 47

Slide 47 text

Tech company categories by headcount Category # of employees Startups < 100 Mid-sized 100 - 2,000 Large 2,000 - Google (100,000+) 47

Slide 48

Slide 48 text

Tech company categories by headcount Category # of employees Startups < 100 Mid-sized 100 - 2,000 Large 2,000 - Google (100,000+) 48

Slide 49

Slide 49 text

49

Slide 50

Slide 50 text

Startup Priorities ● Ship fast ● Figure out the product ● Find customers 50

Slide 51

Slide 51 text

Startup Priorities ● Ship fast ● Figure out the product ● Find customers 51 Mid-sized Priorities ● Scale the product ● Scale the organization ● Don’t implode

Slide 52

Slide 52 text

52

Slide 53

Slide 53 text

The success criteria moves from individuals shipping code out the door as fast as they can to teams executing, in concert, with operational excellence. 53

Slide 54

Slide 54 text

Aviation Safety

Slide 55

Slide 55 text

55

Slide 56

Slide 56 text

1. There are five checklists and mandatory control checks that are required to be run prior to flying. The pilots never ran any of them. 56

Slide 57

Slide 57 text

1. There are five checklists and mandatory control checks that are required to be run prior to flying. The pilots never ran any of them. 2. Pilot interviews and voice recordings also showed that mandatory flight control checks were not performed on this flight, nor were they ever performed. 57

Slide 58

Slide 58 text

1. There are five checklists and mandatory control checks that are required to be run prior to flying. The pilots never ran any of them. 2. Pilot interviews and voice recordings also showed that mandatory flight control checks were not performed on this flight, nor were they ever performed. 3. The crew received an alert message indicating that the rudder’s load limiter had activated. This is abnormal. The crew saw the alert. We know this because it was verbalized. Action taken? None. 58

Slide 59

Slide 59 text

4. The pilot was unable to push the power levers far enough forward to achieve takeoff thrust. Worse, he actually verbalized that he wasn’t able to get full power, yet continued the takeoff anyway. 59

Slide 60

Slide 60 text

4. The pilot was unable to push the power levers far enough forward to achieve takeoff thrust. Worse, he actually verbalized that he wasn’t able to get full power, yet continued the takeoff anyway. 5. The pilot realized the gust lock was engaged, and said so verbally several times. At this point, the aircraft had about 5,000 feet of runway remaining, which afforded plenty of time to abort the takeoff. They chose to continue anyway. 60

Slide 61

Slide 61 text

The Normalization of Deviance http:/ /danluu.com/wat/

Slide 62

Slide 62 text

The normalization of deviance is when deviant behavior becomes the norm. To anyone outside of your organization it's obvious that what you're doing doesn't make sense, but to those inside the organization it's normal and standard procedure. 62

Slide 63

Slide 63 text

63

Slide 64

Slide 64 text

64

Slide 65

Slide 65 text

Real Onboarding WTFs ● We don't have a staging environment? 65

Slide 66

Slide 66 text

Real Onboarding WTFs ● We don't have a staging environment? ● How do we deploy to prod? Ask the CTO to do it. 66

Slide 67

Slide 67 text

Real Onboarding WTFs ● We don't have a staging environment? ● How do we deploy to prod? Ask the CTO to do it. ● I didn’t have a 1-on-1 with my manager until a year after my start date. 67

Slide 68

Slide 68 text

Real Onboarding WTFs ● We don't have a staging environment? ● How do we deploy to prod? Ask the CTO to do it. ● I didn’t have a 1-on-1 with my manager until a year after my start date. ● There was a hard limit on how much code we could deploy, so we switched our indentation from spaces to tabs and bought ourselves a few more months. 68

Slide 69

Slide 69 text

Organizations and processes incur friction slowly. 69

Slide 70

Slide 70 text

Summary so far ● Friction is an inevitable outcome of company growth, which we can’t control. ● But friction is often made worse by the normalization of deviance, which we can control. 70

Slide 71

Slide 71 text

How do we fix it?

Slide 72

Slide 72 text

Organizations

Slide 73

Slide 73 text

Organizations Short-term: Discrete Fixes 73

Slide 74

Slide 74 text

74 ORGANIZATIONS: SHORT-TERM DISCRETE FIX #1 Document single sources of truth and keep them updated

Slide 75

Slide 75 text

75

Slide 76

Slide 76 text

76

Slide 77

Slide 77 text

Single points of failure ● Leads to burn-out ● When those individuals leave the company is screwed 77

Slide 78

Slide 78 text

Effective docs criteria ● Single source of truth ● Updating docs is part of the acceptance criteria for shipping new work. 78

Slide 79

Slide 79 text

ORGANIZATIONS: SHORT-TERM DISCRETE FIX #2 Adopt processes to vet technology decisions 79

Slide 80

Slide 80 text

Goal: Major bump a dependency 80

Slide 81

Slide 81 text

● ES5 ● ES6 ● CoffeeScript ● IcedCoffeeScript Goal: Major bump a dependency 81

Slide 82

Slide 82 text

● ES5 ● ES6 ● CoffeeScript ● IcedCoffeeScript Goal: Major bump a dependency 82 ● Semi-colons ● No semi-colons

Slide 83

Slide 83 text

● ES5 ● ES6 ● CoffeeScript ● IcedCoffeeScript Goal: Major bump a dependency 83 ● Semi-colons ● No semi-colons ● Prettier ● eslint

Slide 84

Slide 84 text

● ES5 ● ES6 ● CoffeeScript ● IcedCoffeeScript Goal: Major bump a dependency 84 ● Semi-colons ● No semi-colons ● Prettier ● eslint ● Jest ● Jasmine ● Mocha ● No-tests

Slide 85

Slide 85 text

85

Slide 86

Slide 86 text

86

Slide 87

Slide 87 text

ORGANIZATIONS: SHORT-TERM DISCRETE FIX #3 Solicit the WTF of new hires 87

Slide 88

Slide 88 text

88

Slide 89

Slide 89 text

89

Slide 90

Slide 90 text

90

Slide 91

Slide 91 text

Organizations Long-term cultural behaviors 91

Slide 92

Slide 92 text

ORGANIZATIONS: LONG-TERM CULTURAL BEHAVIOR #1 Address hard truths -- kindly 92

Slide 93

Slide 93 text

93

Slide 94

Slide 94 text

“ Dr. Smith’s penmanship is frequently illegible, but he becomes very testy and sometimes downright insulting when a nurse asks him to clarify what he’s written down. So, rather than ask him, the annoyed nurse will proceed to the nurse’s station, consult with another nurse or two, and collectively try to decipher Dr. Smith’s scrawl. 94 “The normalization of deviance in healthcare delivery.” Banja, 2011

Slide 95

Slide 95 text

95 Photo by Oskar Yildiz on Unsplash

Slide 96

Slide 96 text

96 1. Continue towards a failed launch OR 2. Stop the project.

Slide 97

Slide 97 text

97 1. Continue towards a failed launch OR 2. Stop the project.

Slide 98

Slide 98 text

98 Manager: Hey Dan, I wanted to let you know — we've decided to stop the project.

Slide 99

Slide 99 text

99 Manager: Hey Dan, I wanted to let you know — we've decided to stop the project. me: What?! Why? Do you know how hard we've worked on this?

Slide 100

Slide 100 text

M: Yeah, we do. I want to make a few things clear. Number one: we recognize your team’s effort on this. We think you've done amazing work in response to a really hard ask. We also think you've learned a ton and we know that everything you've learned will only help you ship harder and more visible projects moving forward. We are super proud of all of the work you've done. 100

Slide 101

Slide 101 text

But the data on the project isn't lining up. We miscalculated and it's our fault, not yours. We've received new data that proves our original forecasts were wrong, and instead of having you spend the next four months working on something we don't think will work, we'd rather put you on a project that we think is better positioned for success. 101

Slide 102

Slide 102 text

But the data on the project isn't lining up. We miscalculated and it's our fault, not yours. We've received new data that proves our original forecasts were wrong, and instead of having you spend the next four months working on something we don't think will work, we'd rather put you on a project that we think is better positioned for success. 102 Oh; okay. Well that... is a bummer. Can I take some time to process this? I can't say I'm not disappointed.

Slide 103

Slide 103 text

Yeah, absolutely. Take some PTO and get your mind right. We just want to make sure we're honest with you because we value your trust. 103

Slide 104

Slide 104 text

Okay. Well, thanks for letting me know. Yeah, absolutely. Take some PTO and get your mind right. We just want to make sure we're honest with you because we value your trust. 104

Slide 105

Slide 105 text

ORGANIZATIONS: LONG-TERM CULTURAL BEHAVIOR #2 Celebrate the glue work 105 https:/ /noidea.dog/glue

Slide 106

Slide 106 text

“ Of course coding is an important skill in a software engineering team. But there are a ton of other skills that we need to bring to work every day. Skills that can mean the difference between a project that succeeds and one that fails. 106

Slide 107

Slide 107 text

“ 107 Like noticing when other people in the team are blocked and helping them out. Or reviewing design documents and noticing what's being handwaved or what's inconsistent. Or onboarding the new people and making them productive faster. Or improving processes to make customers happy. I call all of this glue work. “Being Glue”, Tanya Reilly

Slide 108

Slide 108 text

Make glue work promotable work. In fact, make glue work mandatory for promotion. 108

Slide 109

Slide 109 text

ORGANIZATIONS: LONG-TERM CULTURAL BEHAVIOR #3 Make psychological safety paramount 109

Slide 110

Slide 110 text

110

Slide 111

Slide 111 text

“ Psychological safety is ‘‘a sense of confidence that the team will not embarrass, reject or punish someone for speaking up... It describes a team climate characterized by interpersonal trust and mutual respect in which people are comfortable being themselves.’’ 111 “What Google Learned From Its Quest to Build the Perfect Team” NYTimes, 2016.

Slide 112

Slide 112 text

Individuals

Slide 113

Slide 113 text

INDIVIDUALS Develop and own your sense of agency 113

Slide 114

Slide 114 text

114 Autonomy Mastery Purpose Intrinsic Motivation via “Drive”, Daniel Pink

Slide 115

Slide 115 text

115 npm install billing-components

Slide 116

Slide 116 text

116 “Oh, originally we thought we were building a suite of billing components. Over time it became only checkout.”

Slide 117

Slide 117 text

117

Slide 118

Slide 118 text

118 npm install billing-components npm install checkout-ui

Slide 119

Slide 119 text

Pragmatic optimism to see what realistically could be made better; Courage to acknowledge what needs to be fixed and be accountable; Persistence to stick to it. 119

Slide 120

Slide 120 text

Making the best engineering decision will often have friction. There’s often the correct path and the easy path. Take the correct path, even if it’s hard, because it ultimately leads to better outcomes. 120

Slide 121

Slide 121 text

MAJOR CAVEAT Being a hero, or an asshole, doesn’t scale. 121

Slide 122

Slide 122 text

INDIVIDUALS Strategies 122

Slide 123

Slide 123 text

INDIVIDUALS STRATEGY #1 Have important discussions face to face 123

Slide 124

Slide 124 text

INDIVIDUALS STRATEGY #2 Get to know other people on other teams and in other orgs 124

Slide 125

Slide 125 text

INDIVIDUALS STRATEGY #3 New idea? Try it once. 125

Slide 126

Slide 126 text

This is the job.

Slide 127

Slide 127 text

127 Look man, I did my part. I looked into a hard problem and found a solution and offered it to the relevant team. And at the end of the day nobody cared. So I'm frustrated.

Slide 128

Slide 128 text

128 Hmm, it doesn’t make logical sense to block this work. The improvement is massive and quick! Look man, I did my part. I looked into a hard problem and found a solution and offered it to the relevant team. And at the end of the day nobody cared. So I'm frustrated.

Slide 129

Slide 129 text

129 Hmm, it doesn’t make logical sense to block this work. The improvement is massive and quick! Look man, I did my part. I looked into a hard problem and found a solution and offered it to the relevant team. And at the end of the day nobody cared. So I'm frustrated. I know!

Slide 130

Slide 130 text

130 Are you sure that team understands what you’re proposing? It doesn’t make sense that they wouldn’t care.

Slide 131

Slide 131 text

131 Are you sure that team understands what you’re proposing? It doesn’t make sense that they wouldn’t care. Well I sent the email didn’t I?

Slide 132

Slide 132 text

132 Are you sure that team understands what you’re proposing? It doesn’t make sense that they wouldn’t care. Well I sent the email didn’t I? How many emails do you get per day?

Slide 133

Slide 133 text

133 Are you sure that team understands what you’re proposing? It doesn’t make sense that they wouldn’t care. Well I sent the email didn’t I? Like… a hundred... How many emails do you get per day?

Slide 134

Slide 134 text

134 Did you try talking to them in person? Did you try writing up a formal RFC that outlines your findings and circulating it for advocates?

Slide 135

Slide 135 text

135 No... Did you try talking to them in person? Did you try writing up a formal RFC that outlines your findings and circulating it for advocates?

Slide 136

Slide 136 text

136 No... That could be the best way to get this done. That team is probably swamped too. Did you try talking to them in person? Did you try writing up a formal RFC that outlines your findings and circulating it for advocates?

Slide 137

Slide 137 text

137 No... Okay, I’ll give it a shot. That could be the best way to get this done. That team is probably swamped too. Did you try talking to them in person? Did you try writing up a formal RFC that outlines your findings and circulating it for advocates?

Slide 138

Slide 138 text

@dxna talks.danielna.com squarespace.com/careers Thank you.