jeromy carriere chief architect vistaprint arc314
TRANSCRIPT
Using LAAAM to Make Good Architectural Decisions, Fast!
Jeromy CarriereChief ArchitectVistaPrintARC314
You're in The Right Room
Solutions.NET vs. Java at a major insurance companyChoosing among 8 key management vendorsCritical application rearchitecture effort
Business decisionsSelecting a best-fit partner for a new venture
System designFunctional decomposition for a cross-organization service-oriented application
StandardsCompany-wide portal platform at a major financial services companyNaming standards at VistaPrint
Definitions
Sorry, but …Architecture
Architecture represents the set of earliest design decisions
Hardest to changeMost critical to get right
Architectural decision
Quality
There is no universal goodnessCommunicating with the business is the key-ilities are too coarse
Motivation
Architecture is a system blueprintArchitecture is a project blueprintBut most important:
Quality manifests in the architecture
Motivation
We want to make good decisions earlyReduces riskEnsures we don’t build the wrong thing
How do architectural decisions get made?
Motivation
We want to make good decisions earlyReduces riskEnsures we don’t build the wrong thing
How do architectural decisions get made?DebateThe loudest/most patient/most senior voice wins
Some Background
Questioning techniques Questionnaires and checklistsScenario-based methods
Measuring techniquesQuantitative assessmentsMetricsSimulations, prototypes, experimentsAnalyses
LAAAM
Inspired by the Architecture Tradeoff Analysis Method from the SEIThe process is flexible and adaptableSurprise, it’s supposed to be “lightweight”You don’t need to lock everyone in a room to make it work
Method Outline
Simple processBuild a quality treeRank at each nodeFigure out your alternativesAssess each alternative/scenarioLet the tool do some mathThink hard about the results
But flexible!Start with what’s most important - quality
The Quality Tree
A hierarchy of goodnessSeed with commonly-important quality attributes
Common templatesTotally unrelated to the alternatives being consideredThe leaves of the tree are scenarios
An Example Quality Tree (A Silly One)
Not done! Remember: the leaves are scenarios
Quality (i.e. “Good”)
Performance
Response Time Scalability
Maintainability
Flexibility Trainability Extensibility
Scenarios
-ilities make us feel warm and fuzzyThis is an illusion
Be precise! What does it really mean for a system to have “scalability”? Or “flexibility”?
ContextStimulusResponse
Response
Stimulus
Context
Example Scenarios
Under normal operation
perform a transfer transaction
in under 100 milliseconds.For a new release, integrate a new component implementation within two days.The system network is partitioned and restored to normal condition; complete database resynchronization occurs within 30 minutes.
Scenarios in the Quality Tree
Quality (i.e. “Good”)
Performance
Response Time Scalability
Maintainability
Flexibility Trainability Extensibility
In steady state, a mailbox status update takes < 100ms.At peak load, a mailbox status update takes < 500ms.
Knowing What's Important: Ranking
Everything can’t be top priority – tradeoffsRanking a list of scenarios is too hardSo we rank each node in the quality tree
Example Rankings (Also Silly)
Quality (i.e. “Good”)
Performance(1)
Response Time(2)
Scalability(1)
Maintainability(2)
Flexibility(2)
Trainability(3)
Extensibility(1)
(1) In steady state, a mailbox status update takes < 100ms.(2) At peak load, a mailbox status update takes < 500ms.
Scenario Weights
Rankings produce a weight for each scenarioUsing rank order centroidsUsing a linear distributionManually (a last resort!)
Rank Order Centroids
ValuesNumber
of OptionsRank
1 2 3 4 51 1
2 .75 .25
3 .61111 .27778 .11111
4 .52083 .27083 .14583 .0625
5 .45667 .25667 .15667 .09 .04
Rank Order Centroids (Really Silly)
Quality (i.e. “Good”)
Performance(1) - .75
Response Time(2) - .25
Scalability(1) - .75
Maintainability(2) - .25
Flexibility(2) - .2778
Trainability(3) - .1111
Extensibility(1) - .6111
(1) In steady state, a mailbox status update takes < 100ms. W = .75 × .25 × .75(2) At peak load, a mailbox status update takes < 500ms. W = .75 × .25 × .25
Building Consensus
What’s the problem: everyone just agrees, right?Sometimes we need “tricks” to help build consensusFull federation and tricky (i.e. imperfect) mathVoting
Alternatives
What are your choices?Sometimes this is really easy: vendor A or BSometimes this is really hard: design A or B
Evaluating
For each scenario/alternative pair, evaluateKeep it simplePoor, fair, adequate, good, excellent works well
And easy to turn into numeric valuesComparing alternatives is ok, if you don’t cheat
The Result
Assessment MatrixScenario Weight Alternative 1 Alternative 2 Alternative 3
Scenario 1 .140625 Poor Fair Excellent
Scenario 2 .046875 Good Good Poor
Total (scores × weights)
(scores × weights)
(scores × weights)
The Result
Assessment MatrixScenario Weight Alternative 1 Alternative 2 Alternative 3
Scenario 1 .140625 0 1 4
Scenario 2 .046875 3 2 1
Total .140625 .234375 .609375
We have a winner!!
Quality-Oriented Decision AssessmentCredits to Gary ChamberlainManager, Platform ArchitectureVistaPrint
demo
Summary
A robust definition of quality is keyArchitecture manifests qualityArchitectural decisions can be made rationallyBut there’s still no silver bullet
www.microsoft.com/teched
Sessions On-Demand & Community
http://microsoft.com/technet
Resources for IT Professionals
http://microsoft.com/msdn
Resources for Developers
www.microsoft.com/learningMicrosoft Certification and Training Resources
www.microsoft.com/learning
Microsoft Certification & Training Resources
Resources
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS,
IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.