Forward Deployed Engineering Tutorial · Discovery and Scoping · Lesson 4 of 24
Customer Discovery
Understand the customer's workflow, data, constraints and goals before building, using structured discovery questions.
Start from the workflow, not the feature
Customers describe solutions ("we need an export to Excel"); your job is to find the problem and the workflow around it ("finance reconciles invoices every Monday and can't see which ones failed").
Discovery questions
| Area | Ask |
|---|---|
| Goal | What decision or task gets better? How will we know (a metric)? |
| Workflow | Who does what today, with which tools, how often? Where does it hurt? |
| Data | Where does the data live? Who owns it? How clean is it? How much? How fresh must it be? |
| Constraints | Security reviews, network access, compliance, change windows, budget |
| People | Who decides, who uses it daily, who must approve, who could block it? |
| Timeline | What's driving the date? What happens if it slips? |
notes = [
"finance team exports invoices from ERP every monday",
"takes 4 hours to find failed payments manually",
"payment provider has an API, ERP has nightly CSV exports",
"CFO wants failed payments chased within 24 hours",
"security review required for any new vendor access",
"data contains customer bank details",
]
tags = {"goal": ["wants", "within"], "pain": ["takes", "manually"], "data": ["api", "csv", "export"],
"constraint": ["security", "review", "bank details"]}
for line in notes:
found = [t for t, words in tags.items() if any(w in line.lower() for w in words)] or ["other"]
print(f"[{', '.join(found):15}] {line}")
Output
[data ] finance team exports invoices from ERP every monday [pain ] takes 4 hours to find failed payments manually [data ] payment provider has an API, ERP has nightly CSV exports [goal ] CFO wants failed payments chased within 24 hours [constraint ] security review required for any new vendor access [constraint ] data contains customer bank details
Techniques
- Shadow a user doing the task; watch rather than ask.
- Ask for real examples: last week's file, a real ticket, an actual email.
- Draw the current and future workflow and confirm it with the customer.
- Write it down and send a summary after every workshop.
Test yourself
Which question best uncovers the real goal behind a feature request?
What decision or task will this make better, and how will we measure it?Which colour should the button be?Which framework should we use?Can we start tomorrow?
Show answer
Answer: What decision or task will this make better, and how will we measure it?
Tie work to an outcome and a metric before choosing a solution.