Which project do you prefer?
Photo by Loren Gu on Unsplash Photo by Valeriy Kryukov on Unsplash
Slide 6
Slide 6 text
Legacy Code
Slide 7
Slide 7 text
Valuable Code that
everyone Hates
Slide 8
Slide 8 text
How do we try to tackle
legacy code?
Slide 9
Slide 9 text
No content
Slide 10
Slide 10 text
Photo by Levi Guzman on Unsplash
Slide 11
Slide 11 text
Photo by George Bonev on Unsplash
Slide 12
Slide 12 text
Who do we blame when
a refactoring process
fails?
Slide 13
Slide 13 text
No content
Slide 14
Slide 14 text
No content
Slide 15
Slide 15 text
“Programming is a
social activity”
Robert C. Martin
Slide 16
Slide 16 text
Introducing
Architectural Clash
Slide 17
Slide 17 text
Architectural Clash is a
two day workshop that
helps team to define a
Roadmap
Slide 18
Slide 18 text
Principles
Slide 19
Slide 19 text
Start with why
Slide 20
Slide 20 text
No content
Slide 21
Slide 21 text
Learn By Doing
Slide 22
Slide 22 text
Kaizen
Slide 23
Slide 23 text
Majo statt Senf [CC BY-SA 4.0 (https://creativecommons.org/licenses/by-sa/4.0)]
Kai Zen
Slide 24
Slide 24 text
Continuous
Improvement with
small steps
Slide 25
Slide 25 text
No content
Slide 26
Slide 26 text
Vestibulum congue
tempus
Sense Making Clash Decide
Slide 27
Slide 27 text
Phase 1: Sense Making
Slide 28
Slide 28 text
Duration: ~4 hours
People Involved: Management, Tech
Team and Stakeholders
Slide 29
Slide 29 text
Explore the context of
your software
Slide 30
Slide 30 text
Try to write a list of
business needs and
prioritize it
Slide 31
Slide 31 text
➔ Less bugs in production
➔ Increase Velocity for new features
➔ Easy Onboarding
➔ Easier Recruitment
➔ Don’t miss the deadline
Examples of Business Needs
Slide 32
Slide 32 text
Yes, but how to write
this list?
Slide 33
Slide 33 text
➔ Retrospective
➔ Lean Value Tree
➔ Impact Mapping
➔ SWOT Analysis
➔ Tradeoff Slider
➔ Lego Serious Play
Exercises
Slide 34
Slide 34 text
From the business
needs try to extract a
list of experiments that
will increase the code
quality
Slide 35
Slide 35 text
➔ Extract the core domain to a separate micro service
➔ Automate the build with CI
➔ Remove AngularJS and use Web Components for the frontend
➔ Remove Tomcat and use Spring Boot for our JVM application
Example of Experiments
Slide 36
Slide 36 text
Business needs should
be the Why behind
technical decisions
Slide 37
Slide 37 text
Phase 2: Clash
Slide 38
Slide 38 text
No content
Slide 39
Slide 39 text
Duration: ~8 hours
People Involved: Tech Team
Slide 40
Slide 40 text
Learn from Code
Slide 41
Slide 41 text
Bring all your tech team
together and bring
someone that doesn’t
know the code at all
Slide 42
Slide 42 text
Split the group in very small
teams (two or three people)
and work on different
experiments for 45 minutes
Slide 43
Slide 43 text
At the end of the 45 minutes
bring all the team together to
exchange the results for 15
minutes
Slide 44
Slide 44 text
Every team should write an outcome
answering these questions and put it on
the wall
● What did we do?
● What did we learned?
● Did we encounter any roadblock?
Slide 45
Slide 45 text
Repeat until the time
ends
Slide 46
Slide 46 text
Remember that the purpose of
the experiment is to learn, not
to solve the problem
Slide 47
Slide 47 text
Phase 3: Decide
Slide 48
Slide 48 text
Duration: ~4 hours
People Involved: Management and
Tech Team
Slide 49
Slide 49 text
From every outcome, try to
extract an action and put them
on an Change Options Canvas
Slide 50
Slide 50 text
No content
Slide 51
Slide 51 text
Create your refactoring
roadmap
Slide 52
Slide 52 text
Repeat the Architectural Clash
after six months
Slide 53
Slide 53 text
Vestibulum congue
tempus
Why How What
Slide 54
Slide 54 text
Frequently Asked
Questions
Slide 55
Slide 55 text
What happens if in 45 minutes
I’m not able to learn anything
on the problem?
Slide 56
Slide 56 text
I can’t convince the
management to be part of this
workshop. Is this a problem?
Slide 57
Slide 57 text
How do people feel after this
kind of workshop?
Slide 58
Slide 58 text
Is there any material if I want to
prepare this workshop for my
company?