jeromy carriere chief architect vistaprint arc314
Embed Size (px)
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


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



It’s lam, it’s not lām

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





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

Better Example (But Harder to Read)

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!!

The Final Assessment
Sensitivity analysisPersistent value in the artifacts

Caveats
Cost is hardWe’re reasoning about potential, not promise

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

question & answer

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

Complete an evaluation on CommNet and enter to win!

© 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.