Moving Fast & Staying Aligned: How Automation Powers Progress - Rick Ossendrijver
RickOssendrijver1
10 views
50 slides
Feb 27, 2025
Slide 1 of 50
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
About This Presentation
A presentation about moving fast and staying aligned. A focus from Picnic - the online supermarket - that allows us to build many new things and bringing them to the market quickly.
Size: 5.76 MB
Language: en
Added: Feb 27, 2025
Slides: 50 pages
Slide Content
Rick Ossendrijver
Moving Fast and Staying Aligned
How Automation Powers Progress
2 • February-25
Understanding and reading code
“developers on average spend as
much as 58% of their time
comprehending existing source code”
- Felienne Hermans
3 • February-25
Bikeshedding discussion on GitHub
4 • February-25
Migrate!
5 • February-25
TestNG -> JUnit
6 • February-25
Your Product Owner…
7 • February-25
Automation is key
8 • February-25
Platform team1
Centralized Maven configuration2
Agenda
Shared libraries3
Static analysis tools4
Automation tools5
Alignment across the company6
9 • February-25
Picnic Tech
30
0
Engineers
35
Teams
5M
Lines of code
Moving fast and staying aligned
Building blocks for
developers
11 • February-25
Our toolbox
40 modules
Shared libraries Developer tooling
CI / CD
Monitoring
12 • February-25
13 • February-25
Platform team1
Centralized Maven configuration2
Agenda
Shared libraries3
Static analysis tools4
Automation tools5
Alignment across the company6
14 • February-25
Maven Parent POM
Shared Libraries
Tools
Picnic Java support modules
15 • February-25
Plugins
16 • February-25
Maven license plugin
[WARNING] License: 'Affero General Public License (AGPL)'
used by 1 dependencies:
- Example dependency that uses AGPL.
(com.example.dependency:example:12.1.3 -
https://github.com/example/dependency)
[...]
[ERROR] Failed to execute goal
org.codehaus.mojo:license-maven-plugin:2.3.0:add-third-pa
rty (check-third-party-licenses) on project picnic-meta:
There are some forbidden licenses used, please check your
dependencies.
[...]
17 • February-25
Profiles
18 • February-25
Maven dependency management
Renovatebot / renovate
Universal dependency update tool that
fits into your workflows.
19 • February-25
Maven enforcer plugin
[ERROR] Rule 1: DependencyConvergence failed with message:
[ERROR] Failed while enforcing releasability.
[ERROR] Dependency convergence error for
com.google.guava:guava:jar:31.1-jre paths to dependency are:
[...]
[ERROR] +-tech.picnic.example:example-api:jar:0.0.0-SNAPSHOT
[ERROR] +-com.google.guava:guava:jar: 31.1-jre:compile
[ERROR] and
[ERROR] +-tech.picnic.example:example-api:jar:0.0.0-SNAPSHOT
[ERROR] +-com.google.truth:truth:jar:1.1.3:compile
[ERROR] +-com.google.guava:guava:jar: 32.1.3-jre:compile
37 • February-25
OpenRewrite
Large scale refactoring
Recipes
Migrations
38 • February-25
OpenRewrite
https://docs.openrewrite.org/recipes/java/spring/boot3/upgradespringboot_3_0
To migrate to Spring
Boot 3.4, it can take
2,599 steps.
39 • February-25
Spring Boot 2 -> 3 migration
We migrated over 3M lines of code in 70+ repositories!
40 • February-25
Picnic x Moderne
+
41 • February-25
Platform team1
Centralized Maven configuration2
Agenda
Shared libraries3
Static analysis tools4
Automation tools5
Alignment across the company6
42 • February-25
Upgrades
Support 2 major versions
Smooth upgrades
43 • February-25
Error Prone Support @ Picnic
-Applying all rules
-Aligning
https://error-prone.picnic.tech
44 • February-25
45 • February-25
46 • February-25
47 • February-25
Moving fast and staying aligned
Building blocks for
developers