Architectural Clash

"How long should your software last?"



How to make a software to last for 20 years?


2007


graph by carnival.io




How to make a software to resist to 20 years of changes?



graph by carnival.io
Can any wall resist to that kind of changes?

We don't need to resist to change, we need to Adapt to it...

We don't need to be Robust, we need to be Antifragile

How can we understand if our software is Antifragile enough?

Architectural Clash

Introducing...
Clash /klæʃ/

- a loud, harsh noise, as of a collision
- a conflict, esp. of views or interests
- a battle, fight, or skirmish
Principles

Start With Why



Learn By Doing



Kaizen


Kai
Zen
Continuous Improvement

With small steps


During an Architectural Clash, a team tries to achieve an impossible goal concerning the software itself.

The purpose is not to achieve the goal, but to learn what parts of your code obstruct the changes

Phase 0: Choose The Goal

Gather all the people in your team to chose the next "wave" that you want

Write why the goal is important on the back of the post-it

Keep your business in mind

Phase 1: The Clash

Split your tech team into small groups

Work with time-boxed (2/3 hours) sprints

Try with different approaches in order to learn faster

During a sprint note down every roadblock

At the end of every sprint the teams should gather in the same room and exchange their progress

Phase 2: The Outcome

Gather all the small teams together

Write down all the roadblocks that you encountered during the Clash

Write an action plan to incrementally refactor your code to remove the Roadblocks

Iterate

Side Effects

Wanna Try?

Thanks!

f.strazzullo@extrategy.net
@TheStrazz86
https://github.com/francesco-strazzullo
https://medium.com/@TheStrazz86

https://slides.com/francescostrazzullo