Markdown Editor

Build vs Buy Analysis Template

Capability need, differentiation test, sourcing options, knock-outs, fit, 5-year cost, time to market, lock-in and exit, skills, risk, weighted score, decision

架构完整ISO/IEC/IEEE 41062:2024; ISO/IEC 25010:2023buildbuyanalysismath

使用方法: Use it when a capability could be built, bought, subscribed, assembled from open source, taken from an owned platform or outsourced. Fill the capability need and the differentiation test before naming products, then knock-outs and evidence-based fit. The main pitfall is pricing build as its first release only, ignoring years of run, change and people cost.

预览

Build vs Buy Analysis: [Capability name]

Sourcing analysis for one business capability: whether to build it, buy a commercial product, subscribe to SaaS, adopt open source, extend a platform the organisation already owns, or have a partner deliver it. It records the capability need, a differentiation test, knock-out screening, fit against functional and quality needs, five-year cost, time to market, lock-in and exit, skills and operating model, risks, a weighted evaluation with sensitivity, and the decision with its conditions. Structure aligned with the acquisition planning concerns of ISO/IEC/IEEE 41062:2024 (software acquisition) and the quality model of ISO/IEC 25010:2023. Replace every [bracketed] value and every row marked Example.

Document control

FieldValue
Document ID[BVB-001]
Capability[Capability name and ID from the capability map]
Business owner[@business-owner]
Decision needed byYYYY-MM-DD
Horizon for comparison[Example: 5 years]
Version[0.1]
Status[Draft / In review / Decided / Superseded]
Owner[@solution-architect]
Approvers/reviewers[@cto], [@business-owner], [@procurement], [@security-architect], [@finance-partner]
Last updatedYYYY-MM-DD
Classification[Internal / Confidential]
Related documents[ADR-NNN], [TCO-NNN], [TS-NNN], [VES-NNN]

Approvals

RoleNameDecisionDate
Business owner[@name][Approve / Approve with conditions / Reject]YYYY-MM-DD
Chief technology officer or architecture board[@name][Decision]YYYY-MM-DD
Finance[@name][Decision]YYYY-MM-DD
Procurement[@name][Decision]YYYY-MM-DD

Revision history

VersionDateAuthorChange summary
0.1YYYY-MM-DD[@name]First draft: need, differentiation test, long list
0.2YYYY-MM-DD[@name]Example: Knock-out screening and TCO summary added
1.0YYYY-MM-DD[@name]Example: Decided: hybrid (open-source engine plus custom rules)

Contents

1. Decision context

ItemValue
TriggerExample: The pricing logic inside the legacy e-commerce platform cannot run personalised promotions, and the platform is being replaced by a composable stack over the next 18 months
Current stateExample: Prices and promotions are maintained in spreadsheets and loaded nightly; 3 to 5 pricing errors reach customers each month
Cost of doing nothingExample: Marketing estimates USD 1.2 million a year in promotions it cannot run, plus the manual effort of 2 full-time pricing analysts
Non-negotiable constraintsExample: Live before the peak season of YYYY, 9 months after the decision date; data stays in the EU; must expose APIs to the new storefront and the point-of-sale system
Strategy referencesExample: Architecture principle AP-04 "Buy for parity, build for advantage"; cloud strategy CS-2 (managed services first)
Out of scopeExample: Supplier cost pricing and the ERP price master

2. Capability need

2.1 Outcomes

  1. Example: Merchandisers create and schedule promotions without IT involvement, with approval workflow.
  2. Example: Every price shown on web, app and in store comes from one service, so channels cannot disagree.
  3. Example: Personalised offers can be targeted at customer segments in real time.

2.2 Key requirements

IDRequirementTypeMust or should
CAP-REQ-001 (Example)Evaluate price and applicable promotions for a basket of up to 100 linesFunctionalMust
CAP-REQ-002 (Example)p95 latency below 80 ms at 2,000 requests per second at peakPerformance efficiencyMust
CAP-REQ-003 (Example)99.95% monthly availability for price evaluationReliabilityMust
CAP-REQ-004 (Example)Customer and order data processed and stored in the EUSecurity and complianceMust
CAP-REQ-005 (Example)Promotion rules editable by business users with versioning and approvalFunctional, interaction capabilityMust
CAP-REQ-006 (Example)Simulation of a promotion's margin impact before publishingFunctionalShould
CAP-REQ-007 (Example)Rules and history exportable in an open formatFlexibility, maintainabilityShould

3. Differentiation test

QuestionAnswerEvidence
Do customers choose us because of how this capability works?Example: Partly: promotions drive 30% of revenue, but competitors offer similar mechanicsMarketing analysis MA-17
Does our way of doing it differ from industry practice in ways we want to keep?Example: Yes for personalised bundles; no for standard discountsWorkshop notes WS-3
Would a standard product force us to change a process we consider an advantage?Example: Only for bundle logicFit-gap FG-2
How often does the capability change?Example: Weekly rule changes; quarterly new mechanicsChange log
Is there a mature market of products for it?Example: Yes, several SaaS and packaged productsRFI responses RFI-04
Do we hold, or can we hire, the skills to build and run it?Example: Partly; rule engine skills are scarceSkills review

Classification:

ClassMeaningDefault sourcing stance
DifferentiatingSets the organisation apart and changes oftenBuild or assemble, keep control of the core logic
ParityMust be done well, but the way it is done is not an advantageBuy or subscribe, configure rather than customise
CommodityStandard, stable, widely availableSubscribe or use the platform already owned

Result: [Example: Mixed. Standard price and discount evaluation is parity; personalised bundle logic is differentiating. Options that combine a standard engine with custom rules are therefore in scope.]

4. Sourcing options and knock-out screening

4.1 Options

IDOptionDescription
O1 (Example)BuildCustom pricing service developed and run by the in-house platform team
O2 (Example)Subscribe (SaaS)Commercial pricing and promotions SaaS, configured and integrated
O3 (Example)Buy (packaged, self-hosted)Commercial product licensed and run in our cloud account
O4 (Example)Open source plus custom (hybrid)Open-source rule engine, custom bundle logic and business UI built in house
O5 (Example)Extend existing platformPricing module of the ERP already licensed
O6 (Example)Partner delivers and runsSystems integrator builds and operates a custom service under a managed service contract

4.2 Knock-out criteria

Knock-outO1O2O3O4O5O6
KO-1 Meets CAP-REQ-002 latency at peak (evidence: benchmark or reference)PassPassPassPassFailPass
KO-2 Data stays in the EU (CAP-REQ-004)PassPassPassPassPassPass
KO-3 Live before peak seasonPassPassFailPassPassFail
KO-4 Within budget ceiling over the horizonPassPassPassPassPassPass
ResultContinueContinueExcludedContinueExcludedExcluded

Example notes: O5 failed KO-1 because the ERP module evaluates prices in batch and its synchronous API was measured at p95 410 ms. O3 and O6 failed KO-3: the vendor's earliest installation slot and the partner's mobilisation plan both end after the peak season start. O1 passes KO-3 on plan only (9 months against a 9-month window, zero float); that residual exposure is carried as BVB-RSK-001 and scored in C4 and C6, not hidden by the pass.

5. Fit assessment

5.1 Functional fit

RequirementO1 BuildO2 SaaSO4 HybridEvidence
CAP-REQ-001 Basket evaluationFull (to be built)FullFullSaaS demo D-2; engine PoC P-1
CAP-REQ-005 Business rule editingFull (to be built)FullPartial: UI to be builtDemo D-2
CAP-REQ-006 Margin simulationFull (to be built)Partial: no bundle simulationFull (to be built)Demo D-2
Personalised bundles (differentiating)FullPartial: fixed bundle typesFullFit-gap FG-2
Fit summaryAll needs met, all to be built2 partial1 partial, closed by planned build

5.2 Quality fit

CharacteristicKey concernO1 BuildO2 SaaSO4 Hybrid
Performance efficiencyp95 below 80 ms at 2,000 rpsUnproven until built45 ms at 3,000 rps in vendor test, verified at reference38 ms at 2,500 rps in PoC P-1
Reliability99.95% availabilityDepends on our operationsContractual 99.9% onlyDepends on our operations
SecurityEU data, access control, auditUnder our controlCertified; EU hosting and EU-based support confirmed in the draft contractUnder our control
FlexibilityAdd new mechanics quicklyHighLimited to vendor roadmapHigh
MaintainabilityLong-term change costWhole codebase oursVendor maintainsEngine maintained by community; custom code ours

Example finding: O2's contractual availability (99.9%) is below CAP-REQ-003 (99.95%). It is not a knock-out because the vendor offers a premium tier at extra cost, which is included in section 6.

5.3 Integration and data fit

[Describe how each option connects to the storefront, point of sale, customer data platform and ERP, and who owns the price data.] Example: all three options expose REST APIs. O2 needs a nightly product catalogue export to the vendor and holds a copy of promotion history; O1 and O4 read the catalogue from the existing event stream.

6. Cost over the horizon

All figures in USD thousand, undiscounted, Example values from TCO-007.

Cost lineO1 BuildO2 SaaSO4 Hybrid
Year 1 implementation (build or configure, integrate, migrate)1,400250800
Year 1 run (licences or subscription, cloud, people)10050080
Years 2 to 5 run, per year380500300
Years 2 to 5 run, total1,5202,0001,200
5-year total3,0202,7502,080
Exit cost at year 5 (estimate, not in total)5030080

Example arithmetic: O1 = 1,400 + 100 + 4 x 380 = 3,020. O2 = 250 + 5 x 500 = 2,750, where 500 per year is a subscription of 380 (premium availability tier) plus an internal team of 120. O4 = 800 + 80 + 4 x 300 = 2,080. For the net present value of each stream, use the TCO analysis; ranking by undiscounted total is enough here only when the spend profiles are similar.

7. Time to market and delivery capacity

ItemO1 BuildO2 SaaSO4 Hybrid
First release (standard pricing and promotions)Example: 9 monthsExample: 4 monthsExample: 6 months
Differentiating bundle logicExample: 12 monthsExample: Not available; depends on vendor roadmapExample: 9 months
Team neededExample: 8 engineers, 1 product ownerExample: 2 integration engineers, 1 configuration specialistExample: 5 engineers, 1 product owner
Capacity availableExample: Platform team fully booked until Q2; hiring neededExample: AvailableExample: 3 engineers available, 2 to hire
Fits the peak season date?Example: Only with no slippageExample: Yes, with marginExample: Yes, with 3 months float

8. Lock-in, exit and portability

ConcernO1 BuildO2 SaaSO4 Hybrid
What is locked inExample: Nothing external; knowledge locked in the teamExample: Rule definitions in a proprietary format, promotion historyExample: Engine-specific rule syntax for standard rules
Data exportFullExample: CSV export of promotions; history via API only, rate limitedFull
Exit routeRewrite or replaceMigrate rules to a new product; 6 months parallel runSwap engine behind the service interface
Contract protections neededNot applicableExample: Data return in an agreed format, 12-month exit assistance, price cap on renewalNot applicable
Open-source licenceNot applicableNot applicableExample: Apache-2.0 engine; no copyleft obligations; licence review LR-12
Project health (open source)Not applicableNot applicableExample: OpenSSF Scorecard checks reviewed; 3 active maintainers from 2 organisations

9. Skills and operating model

ActivityO1 BuildO2 SaaSO4 Hybrid
Product ownershipInternalInternalInternal
Engineering of core logicInternal teamVendorInternal team on top of community engine
Configuration of rulesBusiness users through custom UIBusiness users through vendor UIBusiness users through custom UI
24x7 operationsInternal SRE rotaVendor, with internal on-call for integrationInternal SRE rota
Vendor managementNot applicableRequired: 0.2 full-time equivalentNot required
Skills gapRule engine design, high-throughput servicesVendor configuration certificationEngine internals, 2 engineers to hire

10. Risk comparison

IDRiskOptionLikelihoodImpactResponse
BVB-RSK-001 (Example)Build overruns and misses the peak seasonO1HighHighPhase the scope; fall back to manual pricing for one season
BVB-RSK-002 (Example)Vendor roadmap never delivers bundle typesO2MediumHighContractual roadmap commitment, or accept the gap
BVB-RSK-003 (Example)Vendor price rises sharply at renewalO2MediumMediumRenewal cap in the contract
BVB-RSK-004 (Example)Open-source engine loses maintainersO4LowMediumEngine isolated behind an internal interface; budget for a fork if needed
BVB-RSK-005 (Example)Hiring the 2 engine engineers takes longer than plannedO4MediumMediumShort-term contractors from a specialist partner
[BVB-RSK-NNN][Risk][Option][L / M / H][L / M / H][Response]

11. Weighted evaluation and sensitivity

The weighted score of option jj is Sj=∑iwisijS_j = \sum_i w_i s_{ij}, with the weights wiw_i summing to 1 and scores sijs_{ij} from 1 (poor) to 5 (excellent).

CriterionWeightO1 BuildO2 SaaSO4 HybridEvidence
C1 Functional fit0.25544Section 5.1; O4 partial closed by its own planned build, O2 partials depend on the vendor roadmap (BVB-RSK-002), and its bundle gap is scored again under C2, so C1 is not lowered twice
C2 Control of differentiating logic0.15524Sections 3, 5.2
C3 5-year cost0.20234Section 6
C4 Time to market0.15253Section 7
C5 Lock-in and exit0.10524Section 8
C6 Delivery and skills risk0.15243Sections 9, 10
Weighted score1.003.503.453.70

Example arithmetic, criterion by criterion from C1 to C6:

SO4=0.25(4)+0.15(4)+0.20(4)+0.15(3)+0.10(4)+0.15(3)=3.70SO1=1.25+0.75+0.40+0.30+0.50+0.30=3.50SO2=1.00+0.30+0.60+0.75+0.20+0.60=3.45\begin{aligned} S_{O4} &= 0.25(4) + 0.15(4) + 0.20(4) + 0.15(3) + 0.10(4) + 0.15(3) = 3.70 \\ S_{O1} &= 1.25 + 0.75 + 0.40 + 0.30 + 0.50 + 0.30 = 3.50 \\ S_{O2} &= 1.00 + 0.30 + 0.60 + 0.75 + 0.20 + 0.60 = 3.45 \end{aligned}
ScenarioWeight changeO1O2O4Leader
BaselineAs above3.503.453.70O4
Example: Urgency dominatesC4 0.25, C2 0.053.203.753.60O2
Example: Cost pressureC3 0.30, C1 0.153.203.353.70O4
[Scenario][Change][ ][ ][ ][ ]

Example reading: moving 0.10 of weight from C2 to C4 changes O2 by −0.10(2)+0.10(5)=+0.30-0.10(2) + 0.10(5) = +0.30 and O4 by −0.10(4)+0.10(3)=−0.10-0.10(4) + 0.10(3) = -0.10, so the leader changes. The baseline lead of O4 over O1 (0.20) is also inside the rule-of-thumb noise band, so the score alone does not decide. Two facts do: O4 has the lowest 5-year cost by USD 0.67 million (section 6) and meets the peak season date with float (section 7). The business owner confirmed that the date is firm but that a one-season fallback to manual pricing is acceptable, which keeps the baseline weights.

12. Recommendation and decision

ItemValue
RecommendationExample: O4 Hybrid: open-source rule engine behind an internal pricing service, with custom bundle logic and business UI
Main reasonsExample: Lowest 5-year cost (USD 2.08 million), keeps control of the differentiating bundle logic, meets the peak date with 3 months float
Runner-up and why it lostExample: O1 Build: highest cost and the peak date only without slippage. O2 SaaS leads only if time to market is weighted above control
ConditionsExample: Two engine engineers hired or contracted by YYYY-MM-DD; PoC P-1 load test repeated at 3,000 rps; licence review LR-12 closed
Next stepsExample: Technology selection of the engine version and hosting (TS-021); ADR-045; update the capability map sourcing column
Review triggerExample: Revisit if hiring fails by YYYY-MM-DD, if a SaaS vendor adds bundle simulation, or at the 2-year architecture review
Decision[Approved / Approved with conditions / Rejected], [@decision-maker], YYYY-MM-DD
ADR[ADR-NNN]

12.1 Decision roles

ActivitySolution architectBusiness ownerCTO or boardFinanceProcurement
Capability need and differentiation testRACII
Options and knock-outsRCAIC
Cost summaryRIIAC
Weighted evaluationRCACC
DecisionCRACI

R = responsible, A = accountable, C = consulted, I = informed.

13. Glossary and references

13.1 Glossary

TermMeaning in this template
BuildThe organisation designs, develops and runs the capability itself
BuyThe organisation licenses a commercial product and runs it
Subscribe (SaaS)The organisation uses a product the vendor runs as a service
HybridA standard component, commercial or open source, extended with custom parts
Differentiating capabilityOne that sets the organisation apart from competitors and changes often
Parity capabilityOne that must be done well but is not a source of advantage
Knock-out criterionMust-have condition; an option that fails it is excluded before scoring
Lock-inCost and effort of moving away from an option once adopted
Exit planAgreed route, time and cost to leave an option, including data return

13.2 References

ReferenceVersion or date checkedUse
ISO/IEC/IEEE 41062:2024, Software engineering, Life cycle processes, Software acquisition, iso.org and standards.ieee.orgEdition 2, published October 2024Acquisition planning concerns (structure only)
ISO/IEC 25010:2023, Product quality model, iso.orgEdition 2, November 2023Quality characteristics in section 5.2
ISO/IEC/IEEE 12207:2026, Software life cycle processes, iso.orgEdition 2, 2026Acquisition and supply processes as context
OpenSSF Scorecard, scorecard.devChecked at date of analysisOpen-source project health signals
[TCO analysis TCO-NNN][Version]Section 6
[PoC report, demo notes, RFI responses][IDs]Evidence for scores

Standard and licence note

Structure aligned with the acquisition planning concerns of ISO/IEC/IEEE 41062:2024 and the product quality model of ISO/IEC 25010:2023. These are copyrighted standards: only their numbers, titles and the names of quality characteristics are used, and no clause text, tables or definitions are reproduced. The differentiation test, scoring method and all other text are original and follow common industry practice; figures in the worked example are illustrative. Check the current editions at iso.org and obtain the standards for their normative content. Template licence: MIT.

相关模板