All writing
3 min read

The Discovery Phase, or Who You Forgot to Invite

Two phases both get called planning, and merging them is how good teams build the wrong product beautifully. The stakeholder you forget is the one who fills your queue.

There are two different things people both call "planning," and mashing them together is how careful teams still build the wrong product beautifully.

One is the conception phase: engineering working out how to build a thing everyone already agreed to build. I've written about that one. This is the other, earlier, messier one. Conception is "how." Discovery is "whether," "what," and "who," and getting brilliant at the first while skipping the second is how you end up with a flawlessly engineered answer to a question nobody asked.

What this is not

This is not an engineering exercise with the product folks invited as a courtesy. Discovery is the cross-functional bit engineers are most tempted to skip, because it's full of meetings, market research, and other people's opinions, none of which compile. To an engineer, "work" has a commit attached, so a week spent talking to users registers as the soft stuff you do before the real stuff starts. The projects that truly failed, as opposed to merely slipped, almost never failed on the code. The code was usually fine. Nobody had done the boring upstream work of establishing what we were solving and for whom.

Why skipping it is the costly bias

Discovery is the only phase where finding out you're building the wrong thing is cheap. The cost rises brutally with every phase you push it into. Catch it in discovery and it's a week of conversations and some bruised assumptions. Catch it in conception and it's a redesign. Catch it in build and it's months of burned engineering and a demoralized team who can feel the thing isn't landing. Catch it at launch, which is where the skippers catch it, and it's a support queue on fire and a chunk of your credibility with it. "Let's stop talking and start building" is optimizing for feeling productive this week at the price of being productive this quarter.

The work itself isn't exotic: understand the real users, interview the stakeholders, write goals concrete enough to fail. The piece people botch is the stakeholder map, and they botch it the same way every time, by leaving someone off it.

And when engineering does get pulled in, it usually answers the wrong question. Product asks "can we build this," engineering says "sure," and nobody asks the one that actually bites later: what will this cost to keep alive on a bad night for the next three years. Whether it pages someone every week. What it adds to the cloud bill. Whether the team that has to own it after launch even exists yet. Feasibility was never "is it buildable," it's "is it survivable once it's built," and that's the one piece of discovery only engineering can supply.

On a native-app project I skipped Customer Support. Just didn't think to pull them in, they're support, what would they know about a new build. Everything, obviously. They were sitting on a daily, ranked list of the exact complaints the new version needed to answer, and because I never asked, we shipped without addressing one of them. We got rewarded with a flood of tickets describing problems we could have designed out in week one, from a team that had been quietly holding the answer and would have handed it over for the cost of one meeting. The stakeholder you leave out of discovery is, with grim reliability, the exact one who fills your queue later.

The opposite failure is just as real. Discovery with no end date is just analysis paralysis with a budget code, and some teams hide in research forever precisely because research can't fail the way shipping can. Time-box it. Two weeks for market and user research, a week for stakeholder interviews, a hard stop, then a decision. The goal is enough clarity to commit, not a flawless dossier nobody will ever read.

Because the genuinely expensive outcome isn't a project that lands two weeks late. It's the immaculately engineered product that solves a problem nobody had, delivered on time, under budget, to total silence. That one you can't refactor your way out of, because there was never anything wrong with the code.