shownotes
× × × ×
speaking.jbaru.ch Slides Video All the links!
Slide 15
Human resources Attrition - I quit - That’s a bummer!
”The leadership takes full responsibility” 🤡
– I quit - Good riddance
You’re fired
Slide 16
16
Slide 17
17
Slide 18
Slide 19
Layoff Survivor Sickness
Slide 20
Slide 21
21
Slide 22
22
Slide 23
Slide 24
Slide 25
25
Slide 26
Slide 27
Slide 28
Slide 29
Don’t ruin the flow
Slide 30
“The build takes forever, I am distracted to do other things and the context switch is terrible”
Slide 31
Slide 32
Don’t frustrate the developers
Slide 33
“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 34
Slide 35
Don’t boil the frog
Slide 36
“I have a feeling that everything is slower somehow…”
Slide 37
Slide 38
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 39
Developer productivity Enginee
ring!
Slide 40
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 41
Talk is cheap, show me the goods! 41
Slide 42
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 43
feedback efficiency × × × ×
IDE: Sub-seconds (I type, it marks it red) Build: Seconds CI: Minutes Production: Hours/Days
Slide 44
Reverse dependency on distance from developers IDE
Build
CI
Production
Feedback Time
Faster
Slower Distance from Developers Expected
Real
Slide 45
Slide 46
It is slow!
Slide 47
Slide 48
It is slow and the developers h
ave no idea why!
Slide 49
What is build? × × × × ×
Project setup Downloading the Internet Artifact generation: Compilation, packaging, etc Tests Artifact deployment
Slide 50
What can go wrong? × × × × ×
Project setup Downloading the Internet Artifact generation: Compilation, packaging, etc Tests Artifact deployment
Slide 51
When can it go wrong?
At any time.
Slide 52
The Build frustrates the developers
Slide 53
Let’s ask Chatgpt
Slide 54
What the actual f*ck?!
× Skipping tests defeats the purpose of the build! × How about skipping compilation? × We want faster feedback, not less feedback
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 59
Reverse dependency on distance from developers Faster
IDE
Build
CI
Feedback Time
Commit time synchronous asynchronous
Slower
Distance from Developers
Production
Delightful build (pick two): ☑ provides max feedback ☑ fast
Slide 63
Skip what can be skipped (but no more!)
Slide 64
Avoidance: Incremental build
× Don’t build what didn’t changed × Don’t build what isn’t affected
Slide 65
Avoidance: Incremental build s hortcomings × Relies on produced artifacts × Relies on architectural decisions
Slide 66
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 67
Slide 68
Avoidance: Predictive test selec tion × Learns code changes effects de-facto × Skips tests with high degree of confidence
Slide 69
How test prediction works × Code changes and test results are thrown into learning model × After a while, the model predicts which changes fail which tests
Slide 70
Test prediction
What changed Where it changed
Correlate with observed test failures
Predictions which changes will fail which tests
Slide 71
Black magic in action × The more tests a project has, the less they break × Refactorings in Java break tests less than in JavaScript
Slide 72
Slide 73
Speed up what can’t be skipped
Slide 74
Test parallelization
× Use max power of local machine × (Yes, your boss should buy you the bleeding edge)
Slide 75
Slide 76
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 TESTS!
Slide 77
Why not just using ci fan-out?
× Relying on shared CI infrastructure × CI infrastructure is not optimized for real-time feedback! × Are the agents as fast as they can be?
Slide 78
Don’t let it slide
Slide 79
Observe and improve
× Measure local build times across time and environments × Detect downfacing trends × Find root causes and improve
Slide 80
Slide 81
The gains are real!
Slide 82
Slide 83
Slide 84
But DPE is not my job!
Slide 85
Slide 86
But Devops is not my job!
Slide 87
Devops vs DPE
The product
More productive work
On everybody’s minds
Slips away
Organizational culture
Specialized team
Slide 88
The best DPE organizations build focused teams
Slide 89
Slide 90
Fight downsizing survivor gu ilt with DPE × It improves morale × It covers productivity gaps × It’s the right thing to do for both the employees and the business × But it requires an organizational mindset and a dedicated effort!
Slide 91
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