Skip to content

How I think

The questions come before the architecture

Anyone can list technologies. What actually matters in a customer conversation is judgment — knowing which questions to ask, and being willing to recommend the simpler answer. Here's how I reason through a few situations that come up constantly.

Worked scenario

A customer asks for “an enterprise chatbot”

Before designing anything, I want to understand the problem well enough to know whether they even need what they asked for. These are the questions I'd work through — roughly in this order.

01 · Frame the problem

  • What business problem is the chatbot actually solving?
  • Who are the users, and what do they need to walk away with?
  • What would cause this project to be considered a failure?

02 · Understand the data

  • What information sources are involved?
  • Is the data structured, unstructured, or both?
  • What are the security and privacy constraints on that data?

03 · Choose the approach

  • Is retrieval (RAG) necessary, or is the knowledge small and static?
  • Does the workflow actually require an agent, or is a fixed flow enough?
  • What actions, if any, should the AI be permitted to take?

04 · Define quality & risk

  • What level of accuracy is required, and who decides?
  • How will responses be evaluated — by what and against what?
  • Where should a human stay in the loop?

05 · Plan for operations

  • What's the acceptable latency and expected usage volume?
  • What is the operating budget?
  • How will the solution be monitored once it's live?

Notice how few of these are about technology. By the time I've worked through them, the architecture usually designs itself — and sometimes the answer is that they don't need a chatbot at all.

More situations

Judgment calls I make often

Expand each one to see how I'd think it through. There's a consistent bias here: toward the simpler solution, clear success criteria, and keeping humans in control of consequential decisions.

“Agent” is the exciting word, but most requests describe a known sequence of steps — which is a workflow, not an agent. I'll ask them to walk me through the task concretely. If we can enumerate the steps in advance, a workflow is cheaper, faster, easier to test, and easier to trust.

An agent earns its cost only when the path can't be known ahead of time — when a later step genuinely depends on what an earlier step discovers. I'd rather ship a reliable workflow now and add agentic behavior where a specific decision actually needs it.