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