Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Pragmatic Architecture for Agile Teams - GeeCON 2014
1. "All Hands on Deck"
Pragmatic
Architecture
for Agile Teams
Janne Sinivirta / @v3rtti
geecon prague 2014
2. Outline
Where are we now and why?
How can we be better?
1. Balance
2. "All Hands on Deck"
3. Team vs. Organization
4. Domain Modeling
5. Documentation
8. BDUF vs. YAGNI
Big Design Up Front vs. You Aren't Gonna Need It
* see "Balancing Agility and Discipline" by Barry Boehm and Richard Turner
9. MVP and Architecture
Agile is all about emergent design
Architecture gives the code a place to grow
Designing architecture only for MVP is short-sighted
Architecture from tests only .. is horse shit!
- Uncle Bob Martin
10. The Dilemma of
Last Responsible
Moment
Recognize hard problems
Start early and prototype
21. Domain Dictionary
Aim for common language in team
Reduce misunderstandings
Don't conquer all with single dictionary
Create with stakeholders
Aliases that combine multiple terms/concepts
22. What the system..
IS vs DOES
Data vs Algorithm
Plan for change
Traits?
23. Languages, paradigms
and patterns
Modeling variance
Language features > libraries > design patterns
24. Role of DSL's
Modern languages support DSL creation
DSL often end up restrictive or fragile
"Nothing says screw you like a DSL"
- Stuart Halloway
25. Users and Domain
Experts
Genchi Genbutsu (x˜x) Go and see for yourselves!
Matching users mental model
Future proofing with crazy ideas
31. Must-have documents
Internal component diagram
External integration diagram
Domain model as code
Domain dictionary
Decision log
32. Summary
Design enough, early enough
Architecture is a team responsibility
See for yourself! is essential in good design
Document things that are not visible from code