Discovery Framework
The guided questions we ask before proposing anything — same framework for every engagement style. Start at the business outcome, work backwards; let the data flow drive the design. The end point is a one-page Engagement Brief, not a tech stack.
The funnel
flowchart LR
O["1 · OUTCOME
what must be true?"] --> U["2 · USERS
who acts on it?"] --> D["3 · DATA
follow the flow"] --> C["4 · CONSTRAINTS
what's fixed?"] --> S["5 · SOLUTION
smallest thing that works"] --> P["6 · PATH
how we engage"]
style O fill:#EDEDFF,stroke:#3B54F7
style D fill:#E4E4FF,stroke:#23233A
style P fill:#E4F7EE,stroke:#34D399
Technology is deliberately stage 5 of 6. If a conversation starts with "we need Kubernetes," we walk it back to stage 1 — the answer might be a queue and a cron job.
0 · People — who to meet, in what order
Each stakeholder unlocks a stage of the funnel. Meet them in this order:
flowchart LR
SP["1 · Sponsor
owns budget + outcome"] --> CH["2 · Champion
owns the pain daily"] --> EU["3 · End users
2–3 real ones"] --> DO["4 · Data owner
knows where data is born"] --> EK["5 · Estate keeper
holds the keys"] --> SC["6 · Security / successor
can veto · will maintain"]
style SP fill:#EDEDFF,stroke:#3B54F7
style EK fill:#FDF0DC,stroke:#F59E0B
| Who | Why this order | You leave with | Unlocks |
|---|---|---|---|
| Sponsor (economic buyer) | Funds it, defines success, unblocks everyone below | The metric + the "why now" | Stage 1 |
| Champion (day-to-day owner) | Feels the pain; becomes your main contact and internal seller | The real workflow + history of failed attempts | Stages 1–2 |
| End users (2–3 real ones) | Truth lives here — watch them work, don't just ask | The actual job-to-be-done vs the reported one | Stage 2 |
| Data owner / domain expert | Knows where data is born, its quirks, its dirty secrets | The honest data-flow sketch | Stage 3 |
| Estate keeper (eng lead / IT) | Holds credentials + integration reality; can quietly kill the project | Constraints with sources; an ally, not a bypassed rival | Stage 4 |
| Security / compliance + the successor | Veto power; and whoever maintains it after us shapes the stack | Compliance scope + skills ceiling | Stages 4–5 |
Who we care about most: the sponsor (no sponsor = no project), the champion (no champion = no adoption), and the veto-holders (estate keeper + security — blockers matter as much as buyers; meet them early, never surprise them at the end).
Red flags: can't get 30 minutes with the sponsor → priority is lower than claimed. Champion and sponsor disagree on the outcome → stop and reconcile before stage 3. Told to skip the estate keeper → that's where the bodies are buried.
One meeting, several stakeholders
The order above is about information dependency, not calendar count — combine when it saves a week:
| Combine | Why it works |
|---|---|
| Sponsor + champion (kickoff) | Outcome and ground truth in one pass — and if they disagree on the outcome, you found the most important fact of discovery |
| Champion + 2–3 end users (working session) | Watch the real workflow live instead of hearing it described |
| Data owner + estate keeper (technical deep-dive) | Data flow and constraints are one conversation — where data lives and who holds the keys |
Don't mix: end users with their boss in the room (you get the official story, not the truth) · security veto debates inside the sponsor kickoff (kills momentum before there's a scope to defend). Rule of thumb: combine within a funnel stage; never combine across a power gradient.
1 · Outcome — the starting point
| Ask | Listening for |
|---|---|
| What business result must be true in 6–12 months? | A sentence a CEO would say — revenue, cost, risk, speed |
| How will you measure that it worked? | A number and a date, not a vibe |
| What happens if you do nothing? | Urgency / real priority |
| Who feels this problem most, and who pays to fix it? | Sponsor + budget reality |
| What's been tried already? Why didn't it stick? | Landmines, politics, failed vendors |
Move on when: you can write "Success = ⟨metric⟩ moves from ⟨X⟩ to ⟨Y⟩ by ⟨date⟩" and the client nods.
2 · Users & actions
| Ask | Listening for |
|---|---|
| Who touches this — roles, count, technical level? | UX + auth + training implications |
| What decision or action does the system enable? | The real job-to-be-done |
| Where are they when they use it? (office / field / offline) | Platform + connectivity constraints |
| Internal only, customers, or both? | Audience → access model, SLAs |
Move on when: you can name each user role and the action the system unlocks for them.
3 · Data — follow the flow (the design spine)
Most architectures fall out of honestly answering where data is born, how it moves, and who consumes it. Walk the pipeline left to right:
flowchart LR
A["ORIGIN
born where?"] --> B["INGEST
how does it arrive?"] --> T["TRANSFORM
what must happen?"] --> ST["STORE
shape · truth"] --> CO["CONSUME
who reads it?"] --> R["RETIRE
retention · exit"]
style A fill:#EDEDFF,stroke:#3B54F7
style ST fill:#E4E4FF,stroke:#23233A
| Stage | Ask |
|---|---|
| Origin | Where is the data born — sensors, uploads, humans, third-party APIs? Who owns it? |
| Ingest | Push or pull? Batch or streaming? Volume/velocity today — and at 10×? |
| Transform | What must happen to it (validate, process, enrich, label)? Compute-heavy? Human-in-the-loop? |
| Store | Structured vs blobs? What's the source of truth? What must be queryable vs archived? |
| Consume | Who/what reads it — dashboards, apps, ML, other systems, auditors? Freshness needs? |
| Retire | Retention rules? PII/PHI sensitivity + residency? What must survive an exit/handover? |
Move on when: you can sketch the data flow end-to-end on one whiteboard — that sketch is usually ~80% of the architecture. (Novamera's GPR pipeline is the worked example: sensor zips → S3 → SQS → processing → Aurora → labelling webhook — the design was the data flow.)
4 · Constraints — what's already fixed
| Ask | Listening for |
|---|---|
| What exists today — cloud, systems, code, contracts? | Takeover vs greenfield; integration surface |
| Who maintains this after us? | Team skills → tech choices + engagement path |
| Compliance/regulatory scope? Data that can't leave? | HIPAA/SOC 2 → residency, BAAs, audit |
| Budget shape — build budget vs run-rate tolerance? | Architecture cost ceiling (managed vs self-host) |
| Hard dates? What breaks if we're late? | Crawl-first scoping, milestone design |
| Uptime expectations — real SLA or business hours? | HA architecture vs a simple box |
Move on when: every constraint is written down with its source (person/contract), not assumed.
5 · Solution — smallest thing that moves the metric
Only now, technology. Work backwards from stage 1 and along the flow from stage 3:
- What's the crawl — the smallest system that moves the success metric? (Ship that first.)
- What does the data flow imply — where's the natural queue, store, compute, interface?
- Which patterns already fit? (Paved road first; invent only at the gaps.)
- What's deliberately deferred, and what signal would justify building it?
Move on when: the proposal fits on one diagram + one cost line, and every box traces back to a stage-1..4 answer.
6 · Path — how we engage (the end point)
The answers select the engagement path almost mechanically: no team/accounts → Incubate · existing estate → Takeover · strong team wanting help → Embed · greenfield → Launch (they run it) or Launch & Manage (we do).
The deliverable — a one-page Engagement Brief:
Outcome: ⟨metric X → Y by date⟩ · Users: ⟨roles + actions⟩ · Data flow: ⟨the sketch⟩ · Constraints: ⟨list w/ sources⟩ · Proposed crawl: ⟨smallest system + cost⟩ · Deferred (+ signals): ⟨list⟩ · Path: ⟨scenario + who owns what⟩ · First milestone: ⟨2–4 weeks, demoable⟩
That brief feeds the SOW, the shared-responsibility matrix, and the first ADR of the engagement.
Anti-patterns
- Tech-first discovery ("what stack do you want?") — walk back to stage 1.
- Solutioning in stage 1–3 — capture ideas in a parking lot, keep asking.
- A metric-free outcome — "modernize" is not measurable; push until there's a number.
- Skipping retire/exit — retention + handover asked at the end of stage 3, not at contract end.