Markdown Editor

Architecture Cost-Benefit Analysis Template (SEI CBAM)

CBAM steps 1-9, response levels, utility curves, vote weights, strategies, benefit and ROI, sensitivity, decision, traceability

ArsitekturLengkapSEI CBAM (CMU/SEI-2002-TR-035)cbamanalysis

Cara menggunakan: Use it after an ATAM or QAW when a limited budget must be split between architectural strategies. Fill the scenario response levels, votes and utility curves first, then estimate each strategy's response and cost. The main pitfall is funding the biggest benefit instead of the best feasible set, and skipping the sensitivity check.

Pratinjau

Architecture Cost-Benefit Analysis (CBAM): [System name]

Report of an economic analysis of architectural strategies following the Cost Benefit Analysis Method (CBAM) developed at the Software Engineering Institute (SEI), Carnegie Mellon University, by Rick Kazman, Jai Asundi and Mark Klein (SEI technical reports CMU/SEI-2001-TR-035, December 2001, and CMU/SEI-2002-TR-035, September 2002). It records the scenarios carried over from an architecture evaluation, their response levels and utility curves, stakeholder votes and weights, the candidate architectural strategies with their expected responses, benefit, cost, return on investment (ROI), a sensitivity analysis and the investment decision. Replace every [bracketed] value and every row marked Example.

Document control

FieldValue
Document ID[CBA-001]
System[System name and version]
Preceding evaluation[ATAM report ID or QAW report ID, date]
Budget envelope analysed[USD amount, period]
Planning horizon[Releases or quarters covered]
Version[0.1]
Status[Draft / In review / Approved / Superseded]
Owner[@lead-architect]
Approvers/reviewers[@product-owner], [@engineering-manager], [@finance-partner], [@architecture-board]
Facilitator[@facilitator]
Classification[Internal / Confidential]
Last updatedYYYY-MM-DD

Approvals

RoleNameDecisionDate
Product or business owner[@name][Approve / Approve with conditions / Reject]YYYY-MM-DD
Lead architect[@name][Decision]YYYY-MM-DD
Finance partner[@name][Decision]YYYY-MM-DD
Architecture board[@name][Decision]YYYY-MM-DD

Revision history

VersionDateAuthorChange summary
0.1YYYY-MM-DD[@name]First draft after scenario workshop
1.0YYYY-MM-DD[@name]Example: Approved; three strategies funded for the next two quarters
1.1YYYY-MM-DD[@name]Example: Second iteration after cost estimates for AS-02 were refined

Contents

1. Executive summary

[Two or three paragraphs: the decision being supported, the budget, the recommended strategies in ROI order, what they buy in quality terms and the main caveats.]

Example: The payments platform team had USD 500,000 for architecture work in the next two quarters and five candidate strategies addressing the four highest-priority scenarios from the ATAM held on YYYY-MM-DD. The CBAM recommends funding AS-01 (read cache and asynchronous confirmation), AS-04 (payment provider adapter layer) and AS-02 (warm standby region), in that ROI order. Together they cost exactly the budget and deliver 101.3 weighted utility points. AS-03 (active-active multi-region) delivers the largest single benefit (54.2 points) but costs USD 900,000 and has the lowest ROI; it is rejected for this horizon and recorded as a future option. The ranking is stable under a plus or minus 30 percent cost range for AS-02; it is most sensitive to the latency AS-01 actually achieves, which a two-week spike will test before the full build, and to the weight of the fraud scenario, which will be re-voted at the next quarterly review.

ItemValue
Strategies analysed[n]
Strategies funded[IDs]
Total cost of funded strategies[USD amount]
Total benefit of funded strategies[weighted utility points]
Strategies deferred or rejected[IDs and reason]
Main uncertainty[Input whose change would alter the ranking]

2. Context, scope and participants

2.1 Decision and scope

FieldValue
Decision supported[Which architectural strategies to fund in the horizon]
Systems in scope[Components, services, platforms]
Out of scope[Feature work, operating budget, unrelated systems]
Cost basis[Engineering effort at blended rate, licences, infrastructure for n months]
Cost unit used in ROI[USD 1,000]
Iteration[1 / 2 / n]

The CBAM can run in more than one iteration. A first iteration narrows the field using rough estimates; a second iteration refines costs, response estimates and utility curves for the remaining strategies. Record which iteration this report covers and what changed since the previous one.

2.2 Participants

NameRoleGroupContribution
[@name]FacilitatorEvaluation teamRuns the steps, keeps time, challenges numbers
[@name]Lead architectArchitectureStrategies, expected responses, side effects
[@name]Product ownerBusinessVotes, utility, business goals
[@name]Engineering managerDeliveryCost and schedule estimates
[@name]Operations leadOperationsOperability side effects, run costs
[@name]Finance partnerFinanceCost basis, budget constraint
[@name]ScribeEvaluation teamRecords rationale for every number

2.3 Inputs

InputReferenceVersion or date
Architecture evaluation report[ATAM or ISO/IEC/IEEE 42030 evaluation ID][Date]
Quality attribute scenarios[requirements/quality-attributes document ID][Version]
Architecture description[Document ID][Version]
Risk themes and technical debt[Tech debt register ID][Date]
Budget and schedule constraints[Finance reference][Period]

3. Step 1: Collate scenarios

Collect the scenarios elicited in the preceding evaluation, invite stakeholders to add scenarios that reflect business goals not yet covered, and shortlist roughly the top third by contribution to those goals. Each scenario keeps its original ID where one exists so it can be traced back. Example: 24 scenarios (19 from the ATAM, 5 new) were reviewed; the eight below form the shortlisted top third.

IDSource IDScenario (stimulus, environment, response)Business goalShortlisted
SCN-01Example: U-03Checkout requests at peak load (400 per second) complete end to endBG-1 conversionYes
SCN-02Example: U-02Primary cloud region becomes unavailable; payment processing resumesBG-2 availability commitmentYes
SCN-03Example: U-04A new payment provider is added to the platformBG-3 market expansionYes
SCN-04Example: NewFraud team changes a detection rule in response to an attack patternBG-4 fraud lossYes
SCN-05Example: S-03Auditor requests a full transaction trail for one merchantBG-5 complianceYes
SCN-06Example: NewReporting queries run during business hoursBG-1 conversionYes
SCN-07Example: NewDeveloper onboards and ships a first changeBG-6 engineering velocityYes
SCN-08Example: S-04Workload is moved to a second cloud providerBG-2 availability commitmentYes
[SCN-nn][ID][Scenario][BG-n][Yes / No]

4. Step 2: Refine scenarios

Each scenario is refined to a single response measure with four response levels. The worst case is the level at which the scenario becomes worthless to the business; the best case is the level beyond which further improvement adds no value.

IDResponse measureWorstCurrentDesiredBest
SCN-01Example: p99 checkout latency (ms)4,0001,800800400
SCN-02Example: Recovery time after region loss (minutes)240120155
SCN-03Example: Effort to add a provider (person-weeks)201242
SCN-04Example: Time to deploy a new fraud rule (days)301010.04 (1 hour)
SCN-05Example: Time to produce a merchant trail (hours)722441
SCN-06Example: Reporting impact on p99 OLTP latency (percent)502050
SCN-07Example: Days from laptop to first production change201031
SCN-08Example: Months to run on a second provider362496
[SCN-nn][Measure and unit][Value][Value][Value][Value]

Check every row: the four levels must be ordered (worst, current, desired, best) in the direction that the business prefers, and the current level must come from measurement or monitoring, not memory. Record the source of each current level in the evidence column of the appendix table in section 13.3.

5. Step 3: Prioritise scenarios

Each of the [n] voting stakeholders received 100 votes. Scenarios were ranked by total votes and the top half retained. Weights are normalised so that the highest-ranked scenario has weight 1.00.

IDVotesRankRetainedWeight (votes / top votes)
SCN-01Example: 3001Yes1.00
SCN-02Example: 2402Yes0.80
SCN-03Example: 1503Yes0.50
SCN-04Example: 904Yes0.30
SCN-05Example: 125Non/a
SCN-06Example: 56Non/a
SCN-07Example: 37Non/a
SCN-08Example: 08Non/a
TotalExample: 800 (8 stakeholders x 100)

Scenarios not retained are not discarded: list them in section 13.2 as candidates for a later iteration or for the technical debt register. Example: SCN-05 (audit trail) received few votes because a manual workaround exists; the compliance lead asked for it to be re-examined if the audit frequency rises.

6. Step 4: Assign utility

Utility expresses how much a response level is worth to the stakeholders on a scale from 0 (worthless) to 100 (no further value). The four points per scenario define a utility-response curve; values between points are obtained by linear interpolation in step 6.

IDU(worst)U(current)U(desired)U(best)Curve shape and rationale
SCN-01Example: 04085100Steep gain to 800 ms (abandonment drops), flat below
SCN-02Example: 03090100Contract penalty clause starts at 30 minutes
SCN-03Example: 03580100Two new markets need providers within the year
SCN-04Example: 05090100Same-day rule change stops most attack waves
[SCN-nn][0][n][n][100][Rationale]

Record, for each curve, who proposed the values and whether the group reached consensus or the product owner decided. Utility values carry more weight than any other input, so they must be defensible.

7. Step 5: Develop architectural strategies

7.1 Strategy catalogue

IDStrategyScenarios affectedCost (USD 1,000)ScheduleMutually exclusive with
AS-01Example: Read-through cache for catalogue and price data plus asynchronous order confirmationSCN-011206 weeksNone
AS-02Example: Warm standby in a second region with asynchronous database replication and scripted failoverSCN-0230012 weeksAS-03
AS-03Example: Active-active deployment across two regions with conflict-free payment partitioningSCN-02, SCN-0190030 weeksAS-02
AS-04Example: Provider adapter layer (port and adapter) with a contract test kitSCN-03805 weeksNone
AS-05Example: Externalised fraud rules engine with a rule deployment pipelineSCN-0415010 weeksNone
[AS-nn][Strategy][SCN IDs][Cost][Duration][IDs]

7.2 Cost basis

Cost elementBasisApplies to
Engineering effortExample: Person-weeks x blended rate of USD 4,000All strategies
InfrastructureExample: Additional run cost for 12 monthsAS-02, AS-03
Licences and servicesExample: Rules engine subscription for 12 monthsAS-05
ContingencyExample: 20 percent on estimates rated low confidenceAS-03
[Element][Basis][AS IDs]

Use one cost basis for every strategy. If one strategy includes twelve months of run cost and another does not, the ROI ranking is meaningless. For lifetime cost comparisons, reference the TCO analysis (architecture/tco-analysis) and bring a single figure into this table.

7.3 Expected response levels

StrategyScenarioCurrent responseExpected responseEstimate confidenceBasis of estimate
AS-01SCN-01Example: 1,800 ms900 msMediumLoad test of cache prototype on 10 percent traffic
AS-02SCN-02Example: 120 min30 minHighFailover rehearsal in staging
AS-03SCN-02Example: 120 min5 minMediumVendor reference architecture and spike
AS-03SCN-01Example: 1,800 ms1,900 msMediumAdded cross-region consistency check on write path
AS-04SCN-03Example: 12 pw5 pwMediumLast two provider integrations re-estimated against adapter
AS-05SCN-04Example: 10 days1 dayHighRules engine pilot in fraud team
[AS-nn][SCN-nn][Value][Value][High / Medium / Low][Evidence]

8. Step 6: Determine expected utility

For an expected response x that lies between two known points (x0, u0) and (x1, u1) on the utility curve, the expected utility is obtained by linear interpolation.

U(x) = u0 + (x0 - x) / (x0 - x1) * (u1 - u0)
StrategyScenarioBracketing pointsCalculationU(expected)U(current)
AS-01SCN-01Example: current (1,800; 40), desired (800; 85)40 + (900 / 1,000) x 4580.540
AS-02SCN-02Example: current (120; 30), desired (15; 90)30 + (90 / 105) x 6081.430
AS-03SCN-02Example: equals best (5; 100)Read directly100.030
AS-03SCN-01Example: worst (4,000; 0), current (1,800; 40)0 + (2,100 / 2,200) x 4038.240
AS-04SCN-03Example: current (12; 35), desired (4; 80)35 + (7 / 8) x 4574.435
AS-05SCN-04Example: equals desired (1; 90)Read directly90.050
[AS-nn][SCN-nn][Points][Formula][Value][Value]

Keep unrounded values in the working spreadsheet and round only when reporting. The worked example rounds to one decimal place in this table but uses the unrounded values in section 9.

9. Step 7: Calculate total benefit

b(i, j) = U_expected(i, j) - U_current(j)
B(i)    = sum over j of b(i, j) x W(j)

Here i is the strategy, j is the scenario and W(j) is the weight from step 3.

StrategyScenarioUtility change bWeight WWeighted benefitTotal benefit B
AS-01SCN-01Example: +40.51.00+40.540.5
AS-02SCN-02Example: +51.40.80+41.141.1
AS-03SCN-02Example: +70.00.80+56.0
AS-03SCN-01Example: -1.81.00-1.854.2
AS-04SCN-03Example: +39.40.50+19.719.7
AS-05SCN-04Example: +40.00.30+12.012.0
[AS-nn][SCN-nn][Value][Value][Value][Sum]

A strategy with a negative total benefit is never funded on CBAM grounds, whatever its cost. If such a strategy is mandatory (for example to meet a regulation), record it as a constraint in section 10.2 and deduct its cost from the budget before ranking the rest.

10. Step 8: Choose strategies by ROI

10.1 ROI ranking

ROI(i) = B(i) / C(i)

ROI in this report is expressed in weighted utility points per USD 1,000. Some presentations multiply the ratio by 100; the ranking is the same either way.

RankStrategyBenefit BCost C (USD 1,000)ROI (B / C)Cumulative costDecision
1AS-01Example: 40.51200.338120Fund
2AS-04Example: 19.7800.246200Fund
3AS-02Example: 41.13000.137500Fund
4AS-05Example: 12.01500.080650Defer: over budget
5AS-03Example: 54.29000.060n/aReject: excluded by AS-02, lowest ROI
[n][AS-nn][B][C][ROI][Sum][Fund / Defer / Reject]

Example: The funded set costs USD 500,000, equal to the budget, and delivers 40.5 + 19.7 + 41.1 = 101.3 weighted utility points (101.33 unrounded). Replacing AS-02 with AS-03 would raise the availability benefit but the set would cost USD 1,100,000, more than twice the budget.

10.2 Constraints applied

ConstraintTypeEffect on selection
Example: Total budget USD 500,000 for two quartersBudgetFunding stops after AS-02
Example: AS-02 and AS-03 cannot both be builtMutual exclusionAS-03 removed once AS-02 is selected
Example: Availability improvement live before the peak season in month 5ScheduleAS-02 (12 weeks) must start in month 1
[Constraint][Budget / Schedule / Exclusion / Mandatory / Dependency][Effect]

10.3 Selection procedure

  1. Remove strategies with negative total benefit.
  2. Fund mandatory strategies first and deduct their cost.
  3. Rank the remaining strategies by ROI, highest first.
  4. Walk down the list. Fund a strategy if it fits the remaining budget and schedule and does not conflict with one already funded.
  5. When a strategy does not fit, check whether a cheaper one further down fits the remainder before stopping.
  6. Record every skipped strategy with its reason.

11. Step 9: Confirm results with intuition

QuestionAnswerAction if no
Do the funded strategies address the business goals stakeholders care most about?[Yes / No, explanation]Revisit votes in step 3
Is any strategy ranked surprisingly high or low?[Strategy and reason]Check its response estimate and cost
Has any strategy a side effect nobody priced?[Yes / No]Add the affected scenario to step 7
Do the costs include run cost and the cost of change to operations?[Yes / No]Correct the cost basis in section 7.2
Would stakeholders accept the risk left by deferred strategies?[Yes / No]Record residual risk in section 13
Is there a strategy nobody proposed that would dominate these?[Yes / No]Add it and run a second iteration

Example: Stakeholders questioned why AS-05 (fraud rules) ranked below AS-02. Tracing the result showed that the fraud scenario's low weight (0.30) came from a vote held before the most recent fraud incident. The product owner chose to keep the weight for this iteration and to rerun the vote at the next quarterly review; the decision is recorded in section 13.

12. Uncertainty and sensitivity analysis

12.1 Input confidence

InputStrategy or scenarioConfidenceRange tested
CostExample: AS-02MediumUSD 210,000 to 390,000 (plus or minus 30 percent)
Expected responseExample: AS-01 on SCN-01Medium900 ms to 1,200 ms
WeightExample: SCN-04Low0.30 to 0.60
UtilityExample: SCN-02 desired levelHigh85 to 95
[Input][ID][High / Medium / Low][Range]

12.2 Sensitivity results

VariationEffect on ROIRanking changes?Conclusion
Example: AS-02 cost at USD 210,000ROI 41.1 / 210 = 0.196NoAS-02 stays third
Example: AS-02 cost at USD 390,000ROI 41.1 / 390 = 0.105No, still above AS-05 (0.080)Funded set would exceed the budget by USD 90,000: cut scope or seek extra funding
Example: AS-01 achieves 1,200 ms, not 900 msU = 40 + (600 / 1,000) x 45 = 67.0; B = 27.0; ROI 27.0 / 120 = 0.225Yes: AS-04 (0.246) moves to firstFunded set unchanged; validate AS-01 with a spike before full build
Example: SCN-04 weight at 0.60B = 40 x 0.60 = 24.0; ROI 24.0 / 150 = 0.160Yes: AS-05 overtakes AS-02 (0.137)Rerun the vote; compare feasible sets (table below) before switching
[Variation][Calculation][Yes / No][Conclusion]

The last row shows why the weights matter, and why a pure ROI walk is not the whole answer. With the fraud weight at 0.60, ranking by ROI funds AS-01, AS-04 and AS-05 (USD 350,000, benefit 40.5 + 19.7 + 24.0 = 84.2 points) and then stops, because AS-02 (USD 300,000) no longer fits the remaining USD 150,000. The original set AS-01, AS-04 and AS-02 still fits the budget exactly and delivers 101.3 points. When the budget is tight, compare the total benefit of every feasible set of strategies, not only the order of the ratios, and present such breakpoints to decision makers explicitly.

Feasible set (weight of SCN-04 = 0.60)Cost (USD 1,000)Total benefitUnspent budget
Example: AS-01, AS-04, AS-02500101.30
Example: AS-01, AS-04, AS-0535084.2150
Example: AS-01, AS-02, AS-05570Over budgetn/a
[Set][Cost][Benefit][Remainder]

12.3 Risk to the decision

IDRiskLikelihoodImpactMitigation
CBR-01Example: AS-01 latency gain lower than estimatedMediumROI ranking changesTwo-week spike with production-like data before committing
CBR-02Example: Replication lag makes AS-02 failover lose recent paymentsLowScenario SCN-02 fails acceptanceMeasure lag in rehearsal; add reconciliation step
CBR-03Example: Fraud weight out of dateMediumWrong strategy fundedRe-vote at the next quarterly review
[CBR-nn][Risk][H / M / L][Impact][Mitigation]

13. Decision, follow-up and traceability

13.1 Decision record

FieldValue
Decision[Fund AS-nn, AS-nn; defer AS-nn; reject AS-nn]
Budget committed[USD amount]
Decision maker[@name, forum]
DateYYYY-MM-DD
ADRs raised[ADR IDs, see architecture/adr-full or architecture/architecture-decision-log]
Next review[Date or trigger, for example after the AS-01 spike]

13.2 Deferred items and residual risk

ItemTypeOwnerWhere tracked
Example: AS-05 fraud rules engineDeferred strategy[@fraud-lead]Architecture runway backlog (architecture/architecture-runway-plan)
Example: AS-03 active-activeRejected option[@lead-architect]Architecture roadmap (architecture/architecture-roadmap-transition)
Example: SCN-05 audit trailScenario not retained[@compliance-lead]Technical debt register (architecture/tech-debt-register)
[Item][Type][@owner][Location]

13.3 Traceability matrix

Business goalScenarioStrategyAcceptance criterionFitness functionEvidence for current level
Example: BG-1 conversionSCN-01AS-01p99 checkout latency at or below 900 ms at 400 requests per secondFF-03 latency budget check in performance pipelineAPM dashboard, last 30 days
Example: BG-2 availabilitySCN-02AS-02Region failover completes in 30 minutes or less in a quarterly rehearsalFF-08 failover drill resultLast DR test report
Example: BG-3 market expansionSCN-03AS-04Next provider integrated in 5 person-weeks or lessFF-04 dependency rule: providers only behind the adapter portEffort records of last two integrations
[BG-n][SCN-nn][AS-nn][Measurable criterion][FF ID in architecture/fitness-functions][Source]

13.4 Benefit realisation

After delivery, measure the actual response level for each funded strategy and compare it with the expected level. Feed the difference back into future estimates: a team that overestimates gains by 30 percent should know it before the next CBAM.

StrategyExpected responseActual responseDate measuredActual utilityLesson
[AS-nn][Value][Value]YYYY-MM-DD[Value][Lesson]

14. Glossary and references

14.1 Glossary

TermMeaning in this report
Architectural strategyA design change or investment that alters one or more quality attribute responses
ScenarioA quality attribute requirement stated as stimulus, environment and measurable response
Response levelA value of the scenario's response measure: worst, current, desired or best
UtilityStakeholder-assigned value of a response level on a 0 to 100 scale
WeightRelative importance of a scenario, derived from votes, with the top scenario at 1.0
BenefitWeighted sum of the utility changes a strategy produces across scenarios
ROIBenefit divided by cost, used to rank strategies
Side effectA change, positive or negative, that a strategy causes in a scenario it does not target
IterationOne pass through the CBAM steps; later iterations refine estimates

14.2 References

ReferenceVersion or date checkedUse
Kazman, R., Asundi, J., Klein, M. Making Architecture Design Decisions: An Economic Approach. CMU/SEI-2002-TR-035, Software Engineering Institute, sei.cmu.eduSeptember 2002, checked YYYY-MM-DDCBAM steps and case study structure
Asundi, J., Kazman, R., Klein, M. Using Economic Considerations to Choose Among Architecture Design Alternatives. CMU/SEI-2001-TR-035, sei.cmu.eduDecember 2001Original CBAM description
Software Engineering Institute. Cost Benefit Analysis Method (CBAM), brochure, sei.cmu.eduFebruary 2018 as listed when written; confirm the date in the SEI digital libraryMethod overview
Bass, L., Clements, P., Kazman, R. Software Architecture in Practice, Addison-WesleyEdition used: [n]Background reading (inspiration only)
Architecture evaluation (ATAM) template (architecture/atam-evaluation)This collectionSource of scenarios
[Internal cost model][Version][Use]

Standard and licence note

Based on the Cost Benefit Analysis Method (CBAM) published by the Software Engineering Institute, Carnegie Mellon University, in technical reports CMU/SEI-2001-TR-035 and CMU/SEI-2002-TR-035: the nine steps (collate, refine and prioritise scenarios, assign utility, develop strategies, determine expected utility, calculate benefit, choose by ROI, confirm with intuition), response levels, utility curves, weights and the benefit-to-cost ratio. This template is original text written for this collection and reproduces no text, tables or figures from SEI publications or from books on the method; the worked example is invented and marked Example. Check the SEI digital library for the current versions of the reports before use. Carnegie Mellon, SEI and ATAM may be trademarks or service marks of Carnegie Mellon University; this template is not affiliated with or endorsed by the SEI. Template licence: MIT.

Templat terkait