Slide 1

Slide 1 text

Architectural Clash

Slide 2

Slide 2 text

Francesco Strazzullo (AKA Strazz) - [email protected] - - - - Ego Slide

Slide 3

Slide 3 text

Slide 4

Slide 4 text


Slide 5

Slide 5 text

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


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


Slide 23

Slide 23 text

Majo statt Senf [CC 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?

Slide 59

Slide 59 text

Thanks! Francesco Strazzullo [email protected]