Part IX. Company and Investing · Chapter 75
Software and Developer-Platform Diligence
Quantum software companies sell picks without owning mines: SDKs, transpilers, benchmarking harnesses, workflow platforms. This chapter shows how to tell a durable workflow owner from a wrapper around someone else's SDK with good documentation.
In this chapter 9 sections
Reproduce a real workflow across backends, inspect the platform’s owned compiler, orchestration, observability, or verification capability, measure switching and failure-recovery costs, and verify that the buyer pays for that owned improvement.
A quantum software business must own a failure that a buyer pays to remove. Submitting a circuit through a friendlier interface can be useful, but the durable layer may belong to the upstream SDK or hardware provider. Diligence should reproduce a painful workflow, inject a failure, and trace which component diagnoses and repairs it.
Diligence starts from a failing workflow
The acceptance suite fixes one task and result tolerance across two backend interfaces. It records language and dependency versions, intermediate representation, compilation options, calibration context, queue and execution identifiers, raw results, provenance, and recovery behavior. Portability means the contract survives; it does not require identical physical noise.
- Pin SDK, compiler, runtime, and backend versions.
- Test portable semantics separately from provider extensions.
- Inject timeout, quota, schema, and partial-result failures.
- Retain raw jobs and recomputable post-processing.
Portability and operations test matrix
| No. | Claim | Evidence |
|---|---|---|
| 1 | OpenQASM defines inspectable program semantics but does not guarantee backend-equivalent results. | OpenQASM Technical Steering Committee, OpenQASM 3 specification (2026) |
| 2 | Official Qiskit and Cirq documentation establish supported interfaces at the cited review date. | IBM Quantum, Qiskit documentation (2026) Google Quantum AI, Cirq documentation (2026) |
| 3 | Artifact review distinguishes availability, functionality, reproducibility, and reuse properties. | Association for Computing Machinery, Artifact Review and Badging (2026) |
| 4 | Hybrid workflows such as VQE cross quantum and classical software boundaries; full-stack benchmarks must evaluate the layer the platform actually owns. | Alberto Peruzzo et al., A variational eigenvalue solver on a photonic quantum processor (2014) Lieven M. K. Vandersypen et al., A look at the full stack (2021) Timothy Proctor et al., Benchmarking quantum computers (2025) U.S. Government Accountability Office, Quantum Computing and Communications: Status and Prospects (2021) |
OpenQASM establishes program semantics; Qiskit and Cirq documentation establish dated SDK surfaces. ACM’s artifact policy distinguishes runnable from reproducible and reusable. The full-stack and benchmarking sources delimit where a platform can claim an owned result. VQE supplies a representative hybrid workflow, not platform differentiation.
A reproducibility service earns or loses its layer
RUN_FIELDS = {"interface": str, "task_hash": str, "version": str, "provenance": str,
"submitted": bool, "diagnosed": bool, "deviation": dict, "source_id": str}
def run_suite(card, tolerance):
errors = []
normal = []
injected_ok = False
for name, run in card.get("runs", {}).items():
missing = [field for field, kind in RUN_FIELDS.items()
if field not in run or type(run[field]) is not kind or run[field] in ("", None)]
deviation = run.get("deviation", {})
if type(deviation.get("value")) not in (int, float) or deviation.get("unit") != "probability points":
missing.append("deviation_schema")
if missing:
errors.append(name + ":" + ",".join(sorted(set(missing))))
continue
if name == "injected":
injected_ok = not run["submitted"] and run["diagnosed"]
else:
normal.append(run)
portable = len(normal) == 2 and all(run["submitted"] for run in normal) and len({run["task_hash"] for run in normal}) == 1
reproducible = portable and all(run["deviation"]["value"] <= tolerance for run in normal)
decision = "invalid" if errors else ("reproducible-platform" if reproducible and injected_ok else "portable-tooling")
return {"decision": decision, "errors": errors, "portable": portable,
"reproducible": reproducible, "injected_diagnosed": injected_ok}
card = {"scenario": "two-adapter Bell workflow", "runs": {
"a": {"interface": "adapter-a", "task_hash": "bell:91ac", "version": "1.4.2",
"provenance": "job+calibration", "submitted": True, "diagnosed": False,
"deviation": {"value": 0.01, "unit": "probability points"}, "source_id": "scenario:run-a"},
"b": {"interface": "adapter-b", "task_hash": "bell:91ac", "version": "2.0.1",
"provenance": "job+calibration", "submitted": True, "diagnosed": False,
"deviation": {"value": 0.03, "unit": "probability points"}, "source_id": "scenario:run-b"},
"injected": {"interface": "adapter-a", "task_hash": "bell:91ac", "version": "1.4.2",
"provenance": "typed error trace", "submitted": False, "diagnosed": True,
"deviation": {"value": 0.0, "unit": "probability points"}, "source_id": "scenario:failure-injection"}}}
base_result = run_suite(card, 0.02)
bad_runs = {**card["runs"], "a": {key: value for key, value in card["runs"]["a"].items() if key != "provenance"}}
bad_result = run_suite({**card, "runs": bad_runs}, 0.02)
improved_runs = {**card["runs"], "b": {**card["runs"]["b"], "deviation": {"value": 0.015, "unit": "probability points"}}}
improved_result = run_suite({**card, "runs": improved_runs}, 0.02)
assert base_result["portable"] and not base_result["reproducible"] and base_result["injected_diagnosed"]
assert bad_result["decision"] == "invalid" and "provenance" in bad_result["errors"][0]
assert improved_result["decision"] == "reproducible-platform"
print(f"PASS: 75 platform suite base={base_result['decision']} invalid={bad_result['errors']} deviation1.5pp={improved_result['decision']}")
The illustrative platform submits the same Bell task to two adapters. Both preserve program and job provenance. One result falls outside the scientific tolerance because its backend record carries a different noise condition. The platform therefore passes submission portability and failure diagnosis while failing a stronger scientific-reproducibility claim. That distinction reveals actual product value without exaggerating it.
Artifact contract. A dated API/IR/backend matrix with executable portability and recovery checks. The same task and validation rule run through two declared interfaces; failures preserve provenance; a wrapper-only result is distinguished from owned technical capability.
| Run | Interface | Provenance | Result tolerance |
|---|---|---|---|
| A-normal | adapter-a | complete | pass |
| B-normal | adapter-b | complete | fail: noise condition |
| A-injected | adapter-a | complete error trace | diagnosed |
| Recovery | adapter-a | same task ID | pass |
Exact validation command: python3 tools/validate_briefs.py --briefs data/editorial_briefs_64_87.json --from 64 --through 87 --check-rewritten-sources --execute-artifacts
Dependency churn reveals who owns the outcome
The buyer may pay for versioned provenance, queue recovery, cross-backend policy, and audit exports even when results differ. Test renewal evidence for that owned outcome. Then remove the preferred backend or change an SDK version. If the product cannot preserve the task and diagnosis contract, switching cost belongs to the dependency rather than the platform.
Run the platform through a backend failure
Prompt. Test a platform claim against one workflow, two backends, and one injected backend failure.
Deliverable. Versioned environment, task fixture, backend records, expected result tolerance, failure trace, recovery behavior, and buyer-owned metric.
Pass condition. Both normal runs satisfy the same task contract, the injected failure is diagnosable, versions and calibration context survive, and the owned improvement is separated from upstream capability.
Model answer: useful tooling, weak standalone moat
Format. Portability record showing reproducible submission but backend-specific result variance.
The model answer calls the tooling useful and the moat unproved. It credits the platform for stable job records and an actionable injected-error trace. It withholds scientific reproducibility because the result tolerance fails, and it withholds standalone defensibility until a buyer renews for the owned operational outcome. The conclusion can improve without rewriting history when the next acceptance run and renewal record arrive.
Verification. The suite passes interface portability, catches the injected failure, and withholds a scientific reproducibility claim because the declared result tolerance is exceeded.
Companion work
Artifacts for this chapter
These entries resolve to checked-in local source. Commands are reproduced exactly from the chapter manifest, and source-embedded fixtures are exported as direct downloads.
diligence dossier
Cross-backend platform acceptance suite
Reproduce or test
python3 tools/validate_briefs.py --briefs data/editorial_briefs_64_87.json --from 64 --through 87 --check-rewritten-sources --execute-artifacts
Provenance
Sources and review
- OpenQASM Technical Steering Committee. OpenQASM 3 specification. Linux Foundation Joint Development Foundation. 2026official technical specification
- IBM Quantum. Qiskit documentation. IBM. 2026official documentation
- Google Quantum AI. Cirq documentation. Google. 2026official documentation
- Association for Computing Machinery. Artifact Review and Badging. ACM Publications. 2026official reproducibility policy
- U.S. Government Accountability Office. Quantum Computing and Communications: Status and Prospects. GAO. 2021government technology assessment
- Alberto Peruzzo et al.. A variational eigenvalue solver on a photonic quantum processor. Nature Communications. 2014primary paper
- Lieven M. K. Vandersypen et al.. A look at the full stack. Nature Reviews Physics. 2021peer-reviewed perspective
- Timothy Proctor et al.. Benchmarking quantum computers. Nature Reviews Physics. 2025peer-reviewed perspective
The load-bearing claims in the chapter are mapped inline to this registered source set. A citation supports only the bounded claim beside it.