DevOps Reframed: Embracing the Path to Developer Productivity Engineering

A presentation at Dev2Next 2024 in October 2024 in Denver, CO, USA by Baruch Sadogursky

Slide 1

Slide 1

Devops… reframed Embracing the Path to Developer Productivity Engineering

Slide 2

Slide 2

Slide 3

Slide 3

Slide 4

Slide 4

Baruch Sadogursky - @jbaru ch × Developer Productivity Advocate × Gradle Inc × Development -> DevOps -> #DPE

Slide 5

Slide 5

shownotes × × × × speaking.jbaru.ch Slides Video All the links!

Slide 6

Slide 6

6

Slide 7

Slide 7

7

Slide 8

Slide 8

Not a single developer!

Slide 9

Slide 9

Slide 10

Slide 10

Slide 11

Slide 11

Slide 12

Slide 12

Slide 13

Slide 13

Slide 14

Slide 14

Slide 15

Slide 15

Next thing you know…

Slide 16

Slide 16

And this:

Slide 17

Slide 17

Slide 18

Slide 18

Slide 19

Slide 19

Parrot learns how to ask “Why?” repeatedly and is promoted to Engineering Manager

Slide 20

Slide 20

Slide 21

Slide 21

Slide 22

Slide 22

TE S T CO D E AN PL BU ILD

Slide 23

Slide 23

TE S T CO D E AN PL BU ILD

Slide 24

Slide 24

Slide 25

Slide 25

Slide 26

Slide 26

Types of work according to d evops Planned Work Business projects or new features Internal Projects Server migrations, software updates and so on Changes Driven by feedback on completed work Unplanned Work Support escalations and emergency outages

Slide 27

Slide 27

Slide 28

Slide 28

Types of work according to d New Features Writing code Refactoring Writing code Bug Fixes Writing code evelopers

Slide 29

Slide 29

Slide 30

Slide 30

Slide 31

Slide 31

Slide 32

Slide 32

Software craft-person definit ion of done × We got what they × Tests - ✔ want × QA are happy × Clear code × Team lead is happy × Easy to deploy × Product owner is × Non-func reqs – ✔ happy – (i.e. customer is happy) × No new tech dept

Slide 33

Slide 33

Slide 34

Slide 34

Slide 35

Slide 35

Slide 36

Slide 36

Slide 37

Slide 37

Slide 38

Slide 38

Slide 39

Slide 39

Slide 40

Slide 40

Slide 41

Slide 41

Slide 42

Slide 42

Slide 43

Slide 43

Slide 44

Slide 44

Software craft-person definit ion of done × We got what they × Tests - ✔ want × QA are happy × Clear code × Team lead is happy × Easy to deploy × Product owner is × Non-func reqs – ✔ happy – (i.e. customer is happy) × No new tech dept × DevOps are happy

Slide 45

Slide 45

Slide 46

Slide 46

Hello! I am Baruch and I have an obsession

Slide 47

Slide 47

“DeVops engineer” is not a thing

Slide 48

Slide 48

Slide 49

Slide 49

Slide 50

Slide 50

Slide 51

Slide 51

Let’s The rise of the devdevops!

Slide 52

Slide 52

Engineering aspect of devops Jokes Aside

Slide 53

Slide 53

Slide 54

Slide 54

Slide 55

Slide 55

Welcome to our new lord and savior: “Platform engineering”!

Slide 56

Slide 56

Scott Shaw Chief Technology Officer, APAC, Thoughtworks

Slide 57

Slide 57

Slide 58

Slide 58

Slide 59

Slide 59

Slide 60

Slide 60

Slide 61

Slide 61

Software craft-person definit ion of done × We got what they × Tests - ✔ want × QA are happy × Clear code × Team lead is happy × Easy to deploy × Product owner is × Non-func reqs – ✔ happy – (i.e. customer is happy) × No new tech dept × PEs are happy

Slide 62

Slide 62

What makes platform enginee rs × × × × × × Modular Deployable Observable Scalable Upgradable Downgradable h a ppy

Slide 63

Slide 63

Slide 64

Slide 64

Slide 65

Slide 65

Slide 66

Slide 66

We figured the “devops” shit out. Done.

Slide 67

Slide 67

Slide 68

Slide 68

Slide 69

Slide 69

😕 😁

Slide 70

Slide 70

Dev Ops DevOps QA

Slide 71

Slide 71

Process People DevOps Tools

Slide 72

Slide 72

Productive Process Productive People DevOps Productive Tools

Slide 73

Slide 73

Empowered Teams ?!?! DevOps Kubernetes

Slide 74

Slide 74

The pain is real

Slide 75

Slide 75

Slide 76

Slide 76

Production system of your production systems

Slide 77

Slide 77

Developer Productivity Engineering DevOps Kubernetes Empowered Teams

Slide 78

Slide 78

Developer Productivity Enginee Foster Faster Feedback Collaborate through Effective Tooling Eliminate Toil for Developers Dedicated Organizational Mindset ring Embrace Rigorous Observability for Proactive Improvement Prioritize Automation and Eliminate Bottlenecks Outcomes Over Output

Slide 79

Slide 79

Talk is cheap, show me the goods!

Slide 80

Slide 80

Small DPE improvements make a × × × × × huge difference Generate code faster: Better IDE Test better: Testcontainers Enforce better code: Sonar Test more reliably: Flaky test detection Foster Faster Feedback:

Slide 81

Slide 81

feedback efficiency × × × × IDE: Sub-seconds (I type, it marks it red) Build: Seconds CI: Minutes Production: Hours/Days

Slide 82

Slide 82

Reverse dependency on distance from developers IDE Build CI Production Feedback Time Faster Slower Distance from Developers Expected Real

Slide 83

Slide 83

Slide 84

Slide 84

It is slow!

Slide 85

Slide 85

Slide 86

Slide 86

It is slow and the developers h ave no idea why!

Slide 87

Slide 87

What is build? × × × × × Project setup Downloading the Internet Artifact generation: Compilation, packaging, etc Tests Artifact deployment

Slide 88

Slide 88

What can go wrong? × × × × × Project setup Downloading the Internet Artifact generation: Compilation, packaging, etc Tests Artifact deployment

Slide 89

Slide 89

When can it go wrong? At any time.

Slide 90

Slide 90

The Build frustrates the developers

Slide 91

Slide 91

Let’s ask Chatgpt

Slide 92

Slide 92

What the actual f*ck?! × Skipping tests defeats the purpose of the build! × How about skipping compilation? × We want faster feedback, not less feedback

Slide 93

Slide 93

What feedback do we want?

Slide 94

Slide 94

Ci/cd pipeline quality gates It compiles Basic Integration tests Basic Unit tests Basic Quality Linting Quality Code coverage Dependency scanning SAST/DAST Quality Sec Static code analysis Sec Sec Secrets scanning Resource Utilization Nonfunc Nonfunc Load Testing Nonfunc Compliance

Slide 95

Slide 95

Slide 96

Slide 96

Two types of feedback x e.g., CI/CD x we never wait for it x results are distracting x e.g., build x we’ll wait for it in the flow x we’ll be pissed off when it’s slow

Slide 97

Slide 97

Reverse dependency on distance from developers Faster IDE Build CI Feedback Time Commit time synchronous asynchronous Slower Distance from Developers Production

Slide 98

Slide 98

Ideal build time feedback It compiles Basic Integration tests Basic Unit tests Basic Quality Linting Quality Code coverage Dependency scanning SAST/DAST Quality Sec Static code analysis Sec Sec Secrets scanning Resource Utilization Nonfunc Nonfunc Load Testing Nonfunc Compliance

Slide 99

Slide 99

Slide 100

Slide 100

Delightful build (pick two): ☑ provides max feedback ☑ fast

Slide 101

Slide 101

Skip what can be skipped (but no more!)

Slide 102

Slide 102

Avoidance: Incremental build × Don’t build what didn’t changed × Don’t build what isn’t affected

Slide 103

Slide 103

Avoidance: Incremental build s hortcomings × Relies on produced artifacts × Relies on architectural decisions

Slide 104

Slide 104

Avoidance: Caching × × × × Makes the build faster Makes the build faster for everybody Makes the build faster always Makes all parts of the build faster

Slide 105

Slide 105

Slide 106

Slide 106

Avoidance: Predictive test selec tion × Learns de-facto code change effects × Skips tests with high degree of confidence

Slide 107

Slide 107

Predictive Test prediction What changed Where it changed Correlate with observed test failures Predictions which changes will fail which tests

Slide 108

Slide 108

Black magic in action × The more tests a project has, the less they break × Refactorings in Java break tests less than in JavaScript

Slide 109

Slide 109

Slide 110

Slide 110

Speed up what can’t be skipped

Slide 111

Slide 111

Test parallelization × Use max power of local machine × (Yes, your boss should buy you the bleeding edge)

Slide 112

Slide 112

Slide 113

Slide 113

Test distribution × × × × CI uses fan-out to speed-up tests Shouldn’t you enjoy it for local tests? Use the cloud to distribute test load RUN ALL THE NEEDED TESTS!

Slide 114

Slide 114

Don’t let it slide

Slide 115

Slide 115

Observe and improve × Measure local build times across time and environments × Detect downfacing trends × Find root causes and improve

Slide 116

Slide 116

Slide 117

Slide 117

Slide 118

Slide 118

Slide 119

Slide 119

But DPE is not my job!

Slide 120

Slide 120

Slide 121

Slide 121

But Devops is not my job!

Slide 122

Slide 122

Devops vs DPE The product More productive work On everybody’s minds Slips away Organizational culture Specialized team

Slide 123

Slide 123

The best DPE organizations build focused teams

Slide 124

Slide 124

Slide 125

Slide 125

Slide 126

Slide 126

DevOps? Sre? PE? DPE? × × × × × × DevOps mainly solves Ops’ concerns It is is a collaborative methodology It needs engineering implementation Call it SRE or call it PE, someone has to write all those YAML files But what about People Productivity? DPE has the answer and it’s another pillar of DevOps Engineering implementation

Slide 127

Slide 127

Learn more and try it today! × × × × Take the Gradle/Maven Speed Challenge Be DPE Agent of Change! Read the DPE Handbook Watch the DPE Summit videos x speaking.jbaru.ch

Slide 128

Slide 128

Slide 129

Slide 129