jeromy carriere chief architect vistaprint arc314

48

Upload: reese-cambridge

Post on 16-Dec-2015

222 views

Category:

Documents


1 download

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.