Evolutionary architecture in agile environment
Speaker: Xavier Rene-Corail
For more blog posts, see The Oracle Code One table of contents
“Conflicts”
- Not that we don’t have a plan. We have a plan. But it can change
- Emerging design – do have a high level design. Not chaos
- Things change. There’s nothing that will not change. Make easy to change the things that will/might.
- Prototype architecture. Working software over comprehensive documentation. Architects shouldn’t deliver paper docs
Software architecture is
- “the important stuff (whatever that is)” – Ralph Johnson
- finding internal *abiities
- managing conflicting *abilities and determining which is most important
Agility is
- ability to move quickly and easily – Oxford dictionary
Evolution of architectural styles
- Monolith – not scalable, single point of failure
- Layered – defacto standard for JEE apps
- SOA – natively scalable, but cn turn into monolith
- Microservices – now need orchestration
- Severless – abstract more
Beware of
- Dependency hell/service dependencies
- Distributed transactions
General
- Minimize coupling
- Couple fro highly changing to infrequently changing
- Ask users for feedback. Don’t overarchitect
- Feature flags. Make safe to fail
- Eat an elephant one bite at a time. Design that way too
Decide up front – programming languages and frameworks. These are difficult to change.
My take: Good session. My notes are “less good” because I was eating lunch during the design principles. So listening, but not blogging!