Markdown Editor

Proof of Concept Plan and Report Template

PoC or PoV plan and report: outcomes, hypotheses, success criteria, environment, scenarios, RACI, stop rules, results, evidence, findings, sign-off

ArchitectureFullISO/IEC 25040:2024 (evaluation process); ISO/IEC 25010:2023proofconcept

How to use: Use it before a time-boxed proof of concept or proof of value that must inform a decision. Fill the decision outcomes, hypotheses and frozen success criteria with thresholds and a decision rule first, and get Part A approved before testing. The main pitfall is criteria written after the results, or a PoC build that drifts into production.

Preview

Proof of Concept Plan and Report: [Subject of the proof of concept]

One document for a time-boxed proof of concept (PoC) or proof of value (PoV): Part A is the plan (decision supported, hypotheses, success criteria and measures, environment and data, scenarios, roles, timeline, risks and stop rules), agreed before any test runs; Part B is the report (execution log, deviations, results per criterion, evidence, findings and limits, recommendation, sign-off and disposal). The evaluation steps follow the quality evaluation process reference model of ISO/IEC 25040:2024 (define, design, plan, execute, conclude) and the measures follow the product quality characteristics of ISO/IEC 25010:2023. Replace every [bracketed] value and every row marked Example; the worked example tests an order event stream with change data capture, a condition of the option chosen in Solution Options Analysis (architecture/solution-options-analysis).

Document control

FieldValue
Document ID[POC-001]
Type[Proof of concept / Proof of value / Pilot / Technical spike]
Decision supported[Decision and document ID, for example SOA-001 condition CND-002]
Time boxYYYY-MM-DD to YYYY-MM-DD ([n] weeks)
Budget[Amount and what it covers]
Vendor or partner involved[Name and role, or none]
Version[0.1]
Status[Plan draft / Plan approved / Executing / Report draft / Closed]
Owner[@solution-architect]
Approvers/reviewers[@decision-owner], [@engineering-lead], [@security-architect], [@product-owner]
Last updatedYYYY-MM-DD
Classification[Internal / Confidential]

Approvals

StageRoleNameDecisionDate
Plan (Part A)Decision owner[@name][Approve / Approve with changes / Reject]YYYY-MM-DD
Plan (Part A)Security[@name][Environment and data approved]YYYY-MM-DD
Report (Part B)Decision owner[@name][Accept findings / Request more evidence]YYYY-MM-DD
Report (Part B)Architecture board[@name][Noted / Decision taken]YYYY-MM-DD

Revision history

VersionDateAuthorChange summary
0.1YYYY-MM-DD[@name]Plan drafted
1.0YYYY-MM-DD[@name]Example: Plan approved; criteria frozen
1.1YYYY-MM-DD[@name]Example: Deviation DV-001 recorded (load generator replaced)
2.0YYYY-MM-DD[@name]Example: Report completed and signed off

Contents

Part A: Plan

Part B: Report

1. Purpose, type and decision supported

1.1 Decision and possible outcomes

[State the decision, who takes it, by when, and the action for each outcome.] Example: The architecture board will confirm or reject the incremental replacement option for order management. If the event stream meets the criteria, the board confirms the option; if it fails, the board re-scores the options with the PoC evidence; if it is inconclusive, the PoC is extended once by at most one week.

OutcomeAction
Pass: every must criterion metExample: Confirm OPT-2; move to design of the order capture service
Conditional pass: a must criterion partly met with a credible fixExample: Confirm OPT-2 with a condition and an owner for the fix
FailExample: Re-score C2 in the options analysis; consider OPT-3 for orchestration
InconclusiveExample: One extension of at most one week, then decide on the evidence available

1.2 Type of exercise

TypeAnswers the questionTypical lengthWho runs it
Technical spikeCan we do this at all, and how?DaysOne or two engineers
Proof of conceptDoes this approach meet our technical criteria in our context?2 to 6 weeksArchitecture and engineering, with vendor support if needed
Proof of valueDoes it deliver measurable business value for our users and data?4 to 12 weeksBusiness and IT together, often with the vendor
PilotDoes it work in production for a limited group?MonthsDelivery team under production controls

This document is a [type]. Example: Proof of concept.

1.3 Evaluation purpose

ISO/IEC 25040:2024 describes evaluations carried out for different purposes, for example judging suitability for a specific use, checking conformity to stated requirements, or comparing candidate products; check the standard for its own list. State which purpose applies, because it decides how strict the criteria and the evidence must be. Example: Suitability for a specific use (our order volumes, our database, our cloud account).

2. Objectives, hypotheses and scope

2.1 Hypotheses

IDHypothesisAssumption it testsCriteria
HYP-001 (Example)A managed event stream with change data capture carries order events from the monolith to new services within 2 seconds at ten times the production target rateEvent latency is acceptable for order capture (SOA-001 criterion C2)SC-001, SC-002
HYP-002 (Example)No order event is lost or applied twice through restarts and failoverConsistency across monolith and new servicesSC-003, SC-004
HYP-003 (Example)Change data capture works without changing monolith codeLow risk to the legacy systemSC-005
HYP-004 (Example)The running cost at production volume fits the TCOSOA-001 OPT-2 cost lineSC-008
[HYP-NNN][Hypothesis][Assumption][SC IDs]

2.2 Scope

In scopeOut of scope
Example: Change data capture from the order database, managed event stream, one consumer serviceOrder capture user interface and business logic
Example: Load, failover and schema change testsProduction data and production network paths
Example: Cost projection from measured usageCommercial negotiation with the provider
[Item][Item]

2.3 Stakeholders and their concerns

StakeholderConcern the PoC must answer
Example: Architecture boardIs the chosen option technically sound?
Example: Order operationsWill any order be lost or duplicated?
Example: Database administratorsDoes change data capture load the production database?
[Stakeholder][Concern]

3. Success criteria and measures

IDCharacteristicMeasureThreshold (Example)MethodPriority
SC-001Performance efficiencyEnd-to-end latency, database commit to consumer acknowledgement, 95th percentileAt most 2 s at 300 events/s sustained for 60 minLoad generator plus timestamps in each eventMust
SC-002Performance efficiencyConsumer lag recovery after a burstLag under 5 s within 2 min after 600 events/s for 5 minLag metric from the stream serviceMust
SC-003ReliabilityLost or duplicated orders after consumer restarts and broker failoverZero lost, zero applied twice, over 1,080,000 eventsReconciliation by order ID and event sequenceMust
SC-004ReliabilityRecovery time after loss of one availability zoneConsumer processing again within 5 minFault injectionShould
SC-005CompatibilityChange types captured without monolith code changeAll 14 change types on the order tablesChange catalogue replayMust
SC-006MaintainabilityAdding an optional field to the event schemaNo consumer downtime; old consumers keep workingSchema registry compatibility testShould
SC-007SecurityEncryption, access control and audit loggingEvery item of the security checklist metConfiguration review by securityMust
SC-008Cost (TCO input)Projected monthly run cost at production volumeAt most USD 9,000 per monthProvider bill for the test, scaled to forecast volumeShould
[SC-NNN][Characteristic][Measure][Threshold][Method][Must / Should]

Derived values: today's peak is 120 orders per minute; the target is three times that, 360 orders per minute; each order creates about 5 events, so the production target is 1,800 events per minute or 30 events/s. The PoC tests at ten times the production target (300 events/s) to leave headroom for growth and replays. SC-003 covers 300 events/s for 3,600 s, which is 1,080,000 events.

Decision rule: pass when every must criterion is met and at least two of the three should criteria are met. A must criterion that is partly met, with a fix that is understood, costed and owned, gives a conditional pass. Anything else is a fail.

4. Environment, data and tooling

4.1 Representativeness

ElementPoC environmentProductionGap and its effect on validity
Example: DatabaseCopy of the order database schema, same engine and version, 1 TB synthetic dataSame engine and version, 3 TBSmaller data; CDC log volume scaled by the event rate, not by size
Example: Event streamManaged service, 3 brokers across 3 zonesSame service, sized by the PoC resultNone for latency; cost scaled
Example: NetworkSame cloud region, private endpointsSameNone
Example: ConsumerOne reference consumer with idempotent writesSeveral domain servicesResults apply per consumer
[Element][PoC][Production][Gap]

4.2 Data

ItemDecision
Data sourceExample: Synthetic orders generated from production statistics; no production records
Personal dataExample: None; names and addresses generated
ApprovalExample: Security approved the data plan on YYYY-MM-DD
Retention and deletionExample: All data deleted at closure (section 13)

4.3 Tools and instrumentation

ToolPurposeOwner
Example: Load generatorInserts and updates orders at a set rate[@engineer]
Example: Tracing timestamps in event headersLatency per event from commit to acknowledgement[@engineer]
Example: Reconciliation scriptCompares source changes with consumer writes by order ID and sequence[@engineer]
Example: Cost explorer tagsIsolates the PoC spend[@finops]
[Tool][Purpose][Owner]

5. Test scenarios

IDScenarioStepsExpected resultCriteria
SCN-001 (Example)Steady peakRun 300 events/s for 60 minp95 latency at most 2 s; no lag growthSC-001, SC-003
SCN-002 (Example)BurstRaise to 600 events/s for 5 min, then back to 300Lag under 5 s within 2 min after the burstSC-002
SCN-003 (Example)Consumer restartKill the consumer three times during SCN-001Reconciliation shows no loss or duplicateSC-003
SCN-004 (Example)Zone failureRemove one zone's broker and consumerProcessing resumes within 5 min; no lossSC-003, SC-004
SCN-005 (Example)Change catalogueReplay each of the 14 change types, including bulk updates by stored procedureEvery change appears as an eventSC-005
SCN-006 (Example)Schema evolutionAdd an optional field; deploy the new producer firstOld consumer keeps processingSC-006
SCN-007 (Example)Security reviewReview encryption, roles, network paths and audit logsChecklist completeSC-007
[SCN-NNN][Scenario][Steps][Expected][SC IDs]

Traceability check: every SC from SC-001 to SC-007 has at least one scenario; SC-008 is computed from the bill for the whole PoC, so it needs no scenario of its own.

6. Roles, timeline and budget

6.1 Roles (RACI)

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

ActivitySolution architectEngineers (2)SecurityDatabase administratorVendor supportDecision owner
Example: Approve plan and criteriaRCCCIA
Example: Build environment and toolingARCCCI
Example: Execute scenariosARICCI
Example: Independent observation of SCN-003 and SCN-004RCICIA
Example: Write the reportRCCCIA
[Activity][ ][ ][ ][ ][ ][ ]

6.2 Timeline

The four blocks of five working days fill the four-week time box exactly; there is no slack, so a lost day is recovered by the stop rules in section 7, not by extending the box.

6.3 Budget

ItemEstimate (Example)Basis
Cloud servicesUSD 6,000Brokers, database copy and load generators for 4 weeks
Engineering time2 engineers x 4 weeksInternal cost centre [code]
Architect and reviewers0.5 FTE x 4 weeksInternal
Vendor supportIncluded in the existing support planNo extra charge agreed in writing
Total external spendUSD 6,000
[Item][Estimate][Basis]

7. Risks, constraints and stop rules

IDRisk or constraintEffectMitigation
PR-001 (Example)Synthetic data does not reflect real change patternsLatency or CDC results too optimisticGenerate from production statistics; include the bulk update procedure
PR-002 (Example)Vendor tunes the service beyond what we would runResults not reproducibleUse only settings documented for general use; record every setting
PR-003 (Example)Load generator becomes the bottleneckFalse latency readingsMonitor generator CPU; scale out before SCN-001
PR-004 (Example)Confirmation bias in the team that proposed the optionResults read generouslyCriteria frozen in Part A; independent observer for failure tests
[PR-NNN][Risk][Effect][Mitigation]

Stop rules (Example):

  • Stop and report fail if a must criterion is missed by more than 50% after two tuning attempts.
  • Stop and report inconclusive if the environment is not ready by day 7.
  • Never extend the time box more than once, and never by more than one week.
  • Stop at once if any production system or real personal data is touched by mistake.

8. Execution log and deviations

8.1 Execution log

RunDateScenarioConfigurationOutcomeEvidence
R-01 (Example)YYYY-MM-DDSCN-0013 brokers, 12 partitionsAborted after 10 min: generator saturatedEV-001
R-02 (Example)YYYY-MM-DDSCN-001Same, 3 generatorsCompletedEV-002
R-03 (Example)YYYY-MM-DDSCN-003Same2 duplicates foundEV-004
R-04 (Example)YYYY-MM-DDSCN-003Idempotency key on order ID and sequenceCompleted, no duplicatesEV-005
[R-NN][Date][SCN ID][Configuration][Outcome][EV ID]

8.2 Deviations from the plan

IDDeviationReasonEffect on validityApproved by
DV-001 (Example)Load generated by three instances instead of oneSingle generator saturated (R-01)None; latency measured inside events[@decision-owner]
DV-002 (Example)Consumer changed to idempotent writes after R-03Duplicates on restartDesign change recorded as finding F-002[@decision-owner]
[DV-NNN][Deviation][Reason][Effect][Approver]

9. Results per criterion

IDThresholdMeasured (Example)VerdictEvidence
SC-001p95 at most 2 s at 300 events/sp95 1.4 s, p99 2.3 s (R-02)PassEV-002
SC-002Lag under 5 s within 2 min after burstUnder 5 s after 95 sPassEV-003
SC-003Zero lost, zero duplicatesZero lost; 2 duplicates in R-03 (planned run); zero in R-04 after fixPass with design change (DV-002, F-002); carried as a design rule (PG-005)EV-004, EV-005
SC-004Processing again within 5 min3 min 40 sPassEV-006
SC-005All 14 change types captured13 of 14: bulk update by stored procedure bypasses the captured log pathPartly metEV-007
SC-006No consumer downtime on optional fieldNo downtimePassEV-008
SC-007Security checklist completeCompletePassEV-009
SC-008At most USD 9,000 per monthUSD 7,800 per month projectedPassEV-010

Decision rule applied: must criteria SC-001, SC-002 and SC-007 met; SC-003 met only after design change DV-002, so the planned run R-03 is reported and the fix is carried as PG-005; SC-005 partly met; should criteria SC-004, SC-006 and SC-008 all met (three of three). Verdict: conditional pass, provided the SC-005 gap and the SC-003 design rule have owned, costed actions (section 12).

Cost projection check (Example): the four-week bill for the stream service was USD 2,600 at an average of 300 events/s, ten times the production rate. Brokers are billed mostly by capacity, not by event, so the projection uses the production broker size quoted by the provider, USD 7,200 per month. That quote is higher than the PoC bill (about USD 2,800 per month) because it covers production plus a staging cluster, 30-day retention and the provider's multi-zone production tier, none of which the PoC used. Add storage and transfer measured in the PoC, USD 600 per month, to give USD 7,800 per month.

10. Evidence register

IDEvidenceRunLocation
EV-001 (Example)Generator CPU graph showing saturationR-01[Repository path or document store link]
EV-002 (Example)Latency histogram and raw percentiles exportR-02[Location]
EV-003 (Example)Consumer lag graph during burstSCN-002 run[Location]
EV-004 (Example)Reconciliation output listing two duplicate order IDsR-03[Location]
EV-005 (Example)Reconciliation output with zero differencesR-04[Location]
EV-006 (Example)Fault injection log and recovery timelineSCN-004 run[Location]
EV-007 (Example)Change catalogue results per change typeSCN-005 run[Location]
EV-008 (Example)Schema compatibility test outputSCN-006 run[Location]
EV-009 (Example)Signed security checklistSCN-007[Location]
EV-010 (Example)Tagged cost report and projection sheetWhole PoC[Location]
[EV-NNN][Evidence][Run][Location]

11. Findings, limitations and validity

11.1 Findings

IDFindingConsequence for the design
F-001 (Example)p99 latency (2.3 s) is above the p95 target, driven by broker leader electionsOrder capture must not wait synchronously on the stream
F-002 (Example)Consumers must be idempotent on order ID and sequenceMake idempotency a design rule for every consumer
F-003 (Example)Bulk updates by one stored procedure are not capturedRewrite the procedure to row-level updates, or publish those changes through an outbox table
[F-NNN][Finding][Consequence]

11.2 Limitations and validity

LimitationEffect on how far the results apply
Example: Synthetic data, one third of production sizeLatency and CDC behaviour valid; storage cost scaled, not measured
Example: One reference consumerEach new consumer needs its own idempotency test
Example: Four-week runLong-term effects such as log retention growth not observed
[Limitation][Effect]

12. Recommendation and conclusion

Verdict: [Pass / Conditional pass / Fail / Inconclusive]. Example: Conditional pass.

Recommendation: [What the decision owner should decide.] Example: Confirm OPT-2 in SOA-001, with condition CND-002 recorded as met subject to the fix for F-003 and the idempotency rule (PG-005) below.

IDCondition or production gapOwnerDueEstimate (Example)
PG-001 (Example)Fix F-003: outbox table for the bulk update procedure[@engineering-lead]Before order capture go-live8 person-days
PG-002 (Example)Replace PoC credentials and broad roles with least-privilege roles from the security design[@security-architect]Design phase3 person-days
PG-003 (Example)Add monitoring and alerts for consumer lag and end-to-end latency[@sre-lead]Before go-live5 person-days
PG-004 (Example)Size brokers for production from the PoC result and the forecast[@solution-architect]Design phase1 person-day
PG-005 (Example)Idempotency test per consumer (F-002, SC-003 design rule) in each service's test suite[@engineering-lead]Before each consumer goes live2 person-days per consumer
[PG-NNN][Gap][Owner][Date][Estimate]

Update the decision record (ADR, architecture/adr-full) and the options analysis scores with the evidence, and carry the production gaps into the delivery backlog.

13. Sign-off, handover and disposal

ItemDecision (Example)Done
Report acceptedDecision owner and architecture board[ ]
Code keptReconciliation script and load generator kept in the platform repository; consumer code discarded[ ]
Knowledge transferOne-hour walkthrough for the order capture team[ ]
Environment deletedWithin five working days of sign-off[ ]
Data deletedSynthetic data deleted with the environment; deletion confirmed by the cost report[ ]
Vendor informedOutcome and next steps shared under the existing agreement[ ]

14. Glossary and references

14.1 Glossary

TermMeaning
Proof of conceptTime-boxed test of whether an approach meets stated technical criteria in the organisation's context
Proof of valueTime-boxed test of whether a solution delivers measurable business value with real users or data
HypothesisA statement the PoC can prove false
Success criterionA measure, threshold and method agreed before testing
Must and should criteriaCriteria that decide the verdict, and criteria that inform it
Stop ruleA condition, agreed in advance, that ends the PoC
Change data captureReading changes from a database's log and publishing them as events
Production gapSomething the PoC skipped or simplified that production must have
[Term][Meaning]

14.2 References

IDReferenceVersion / date
REF-01ISO/IEC 25040:2024, SQuaRE: Quality evaluation framework (clause 5, quality evaluation process reference model)Edition 2, 2024-09
REF-02ISO/IEC 25010:2023, SQuaRE: Product quality modelEdition 2, 2023-11
REF-03Solution Options Analysis (architecture/solution-options-analysis)[x.y]
REF-04Performance Test Plan (quality/performance-test-plan)[x.y]
REF-05[Vendor documentation and service limits used for the configuration][Date]

Standard and licence note

Structure aligned with ISO/IEC 25040:2024 (Systems and software engineering, SQuaRE, Quality evaluation framework; second edition, September 2024), whose quality evaluation process reference model runs through defining, designing, planning, executing and concluding an evaluation, and with the product quality characteristics of ISO/IEC 25010:2023. These standards are copyrighted: only the clause structure, activity names and characteristic names are used; all text, tables and examples are original, and no definitions, tables or requirements are reproduced. Obtain the standards for their normative content and check the current editions at iso.org. Template licence: MIT.

Related templates