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æʃ/

  1. a loud, harsh noise, as of a collision
  2. a conflict, esp. of views or interests
  3. 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