Clean Code redefined: sonar and dpe. What? Yes.

A presentation at SonarSouce Brown Bag in October 2023 in Geneva, Switzerland by Baruch Sadogursky

Slide 1

Slide 1

Slide 2

Slide 2

2

Slide 3

Slide 3

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

Slide 4

Slide 4

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

Slide 5

Slide 5

Security + quality + maintenance = better code.

Slide 6

Slide 6

Slide 7

Slide 7

Slide 8

Slide 8

Slide 9

Slide 9

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 10

Slide 10

Slide 11

Slide 11

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 12

Slide 12

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

Slide 13

Slide 13

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

Slide 14

Slide 14

Slide 15

Slide 15

Slide 16

Slide 16

Slide 17

Slide 17

Don’t ruin the flow

Slide 18

Slide 18

“The build takes forever, I am distracted to do other things and the context switch is terrible”

Slide 19

Slide 19

Slide 20

Slide 20

Don’t frustrate the developers

Slide 21

Slide 21

“we have a flanky test, it is irrelevant 99.5% of the time , but it always runs and it is last in the suite”

Slide 22

Slide 22

Slide 23

Slide 23

Don’t boil the frog

Slide 24

Slide 24

“I have a feeling that everything is slower somehow…”

Slide 25

Slide 25

Slide 26

Slide 26

Developer Productivity == A/M Autonomy /P == motivation Tools and people aren’t in my way Mastery Tools and processes help me to excel Purpose I want to be productive, i.e. create the product

Slide 27

Slide 27

Slide 28

Slide 28

Developer productivity Enginee ring!

Slide 29

Slide 29

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 30

Slide 30

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

Slide 31

Slide 31

The gains are real!

Slide 32

Slide 32

Slide 33

Slide 33

Slide 34

Slide 34

But DPE is not my job!

Slide 35

Slide 35

Slide 36

Slide 36

But Devops is not my job!

Slide 37

Slide 37

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

Slide 38

Slide 38

The best DPE organizations build focused teams

Slide 39

Slide 39

Slide 40

Slide 40

Sonar’s mission is DPE missio n × Better code by happier developers == better product × Shift left the quality gates × Improve developer productivity through engineering

Slide 41

Slide 41

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 42

Slide 42