Lean Architecture
Adopting our Tools to Fit new Requirements, as we go.
Nico Rehwaldt
It starts with Refactoring.
Refactoring
Refactoring consists of improving the internal structure of an existing program’s source code, while preserving its external behavior. [...]
➡️ Agile Aliance
Architecture
- Structure to support capabilities in a reusable, recognizable, and safe manner
- ➡️ Good practices baked into the core of your application
Lean Architecture
- Evolve high level structure of your app, as you go
- Support new, emerging capabilities
- Do what's necessary when it fits
- 💡 Get a sense of what's necessary (and when)
Case Study: Sections
- Identify we are miss-using existing
Overlay
component
- Find a common denominator: A
Section
component that easily combines with Overlay
- Fix what is necessary 🔧
- Consider the future: Unbuild legacy
Overlay
structure
The Rules of Refactoring Apply
0️⃣ Know what you want to do and why
1️⃣ Separate refactoring from feature development
2️⃣ Get buy in and improve substantially
3️⃣ Clean up after you
How to Identify when to Refactor / Re-Architect?