4/11/2012 1
Creating an Architecture Oral History
Michael Keeling Vivísimo @michaelkeeling Minimalist Techniques for Describing Systems
2
Software Architecture Descriptions have some major drawbacks. Documentation is Important…
Architecture Oral History Minimalist Techniques for Describing - - PDF document
4/11/2012 Creating an Architecture Oral History Minimalist Techniques for Describing Systems Michael Keeling Vivsimo @michaelkeeling Documentation is Important Software Architecture Descriptions have some major drawbacks. 2 1
4/11/2012 1
Creating an Architecture Oral History
Michael Keeling Vivísimo @michaelkeeling Minimalist Techniques for Describing Systems
2
Software Architecture Descriptions have some major drawbacks. Documentation is Important…
4/11/2012 2
3 4
4/11/2012 3
SAD without Purpose?
5
6
4/11/2012 4
7 8
Architecture Documentation Loans
4/11/2012 5
9
Your Documentation Loan
10
Documenting Software Architecture
4/11/2012 6
11
12
4/11/2012 7
13
“The easiest time to document the software architecture is at the end
All the hard decisions have already been made!”
– Me, just now
14
Variability in Estimation of Project Scope Time
0.25x 4x Steven McConnell, “Software Estimation: Demystifying the Black Art” Anthony Lattanze, “Architecting Software Systems: A Practitioner's guide”
“Period of Uncertainty” Software Shipped
4/11/2012 8
15
Architecture Description Document
Architecture Written in Stone…
16
4/11/2012 9
17 18
4/11/2012 10
19 20
Promoted in Ideal Representations
4/11/2012 11
21
22
4/11/2012 12
23
“What did we decide last week about this part of the system?”
– My team, a week after our amazing whiteboard discussion
24
Variability in Estimation of Project Scope Time
0.25x 4x Steven McConnell, “Software Estimation: Demystifying the Black Art” Anthony Lattanze, “Architecting Software Systems: A Practitioner's guide”
“Period of Uncertainty” “Period of Certainty”
4/11/2012 13
25
Cusp of Uncertainty/Certainty
26
4/11/2012 14
27
Promoted in Ideal Representations
28
Two Example Techniques
4/11/2012 15
29
Michael Keeling, “Making Metaphors that Matter,” Agile2011 Experience Report Michael Keeling, “Guidelines for the System Metaphor” http://neverletdown.net/2011/08/guidelines-for-the-system-metaphor/
30
4/11/2012 16
A Good Metaphor…
decisions.
31
Corollary: Even a good metaphor still requires explanation.
4/11/2012 17
UI Business Layer Services Layer Server Layer Utility Layer
34
4/11/2012 18
“Noodles” Layer Web Client Overview (Static Perspective) “Bento Box”
Layer A
B A is allowed to use elements in B Legend Service Layer Server Layer Utility Layer
36
4/11/2012 19
37
George Fairbanks, “Architecture Haiku,” http://rhinoresearch.com/content/speaking-boulder-java-user-group-7-sept-2010- architecture-haiku
Architecture Haiku includes
38
4/11/2012 20
A Recent Haiku at Vivísimo…
39
Vivísimo’s Architecture Haiku Rules
– Velocity Patterns Catalog
– Customer communication, planning
40
4/11/2012 21
Haiku + System Metaphor…
41
Architecture Styles/Patterns
3-tier (data, crawl, query) Source-Selector – promotes reliability Double Redundancy – promotes availability Virtual Documents – all data crawled Document Enqueue – for website data Collection Farm – promotes crawl-ability Geolocation Lookup – promotes maintainability/modifiability
Architecture Styles/Patterns
3-tier (data, crawl, query) Source-Selector – promotes reliability Double Redundancy – promotes availability Virtual Documents – all data crawled Document Enqueue – for website data Collection Farm – promotes crawl-ability Geolocation Lookup – promotes maintainability/modifiability
42
4/11/2012 22
43
“The easiest time to document the software architecture is at the end
All the hard decisions have already been made!”
– Me, about 11 minutes ago
44
Change Becomes Expensive
4/11/2012 23
45
Now is the Time to Document
46
4/11/2012 24
47
48
Architecture oral history requires that the team is both willing and able to retell the stories and keep the oral history alive.
Core Assumption
4/11/2012 25
Essential Knowledge
49 50
Size of Project Size of Team Collocated vs. Distributed Team Experience
Mileage May Vary - Adjust Accordingly
4/11/2012 26
Evolution is not Simple…
51 51
Knowledge
Time
Elements or Subsystems
To Review…
52
Variability in Estimation of Project Scope Time
0.25x 4x
Stay Light! Codify Decisions as Oral History Delay Formality!
4/11/2012 27
We’re Already Doing This…
53
Thank you!
Michael Keeling @michaelkeeling mkeeling@neverletdown.net http://neverletdown.net
54