Nguyen Le PhongNguyen Le Phong

What Is a Pre-Mortem? Seeing Failure Early to Build Better Systems and Careers

A pre-mortem is the quiet habit of imagining that a plan has failed before it begins, then working backward to find the reasons. This article explains the idea and shows how to use it in code, large systems, promotion planning, interviews, and personal goals without turning preparation into pessimism.

A few minutes before a planning meeting, an interview, a production deployment, or a career review, most of us do the same quiet thing: we picture the good version. The project lands. The system handles traffic. The interviewer nods. The promotion packet makes sense. That small optimism is useful; it gives us enough energy to begin. But if it is the only story we allow ourselves to see, it can also make the weak parts of the plan stay invisible.

A pre-mortem begins from a different posture. Instead of asking, “What if this goes well?”, it asks a sharper and more useful question: “Imagine this has already failed. What probably happened?” Not to scare ourselves, not to make the room heavy, and not to reward the loudest skeptic. The point is to bring future regret back into the present while we still have time to change something.

The term is strongly associated with psychologist Gary Klein, who described the method in Harvard Business Review and on his own writing about the Pre-mortem Method of Risk Assessment. The short version is simple: after a plan has been explained, the team imagines that it failed, lists plausible causes, then uses those causes to strengthen the plan before execution. It is the opposite of a post-mortem. A post-mortem teaches after the damage. A pre-mortem gives the plan a chance to improve before the damage exists.

A pre-mortem loop: plan, imagine failure, list causes, pick top risks, design mitigations, and define warning signals. PRE-MORTEM: BRING FUTURE FAILURE BACK INTO THE PRESENT Plan what we intend Assume failure it already went wrong Name causes quiet risks become visible Mitigate reduce or prepare Watch signals The goal is not to predict every failure. The goal is to make the avoidable ones visible early.
A pre-mortem turns vague worry into usable preparation: what could fail, why, what we can do now, and what early signal should make us pay attention.

Why imagining failure can make a plan healthier

Pre-mortem works because it gives permission to say the quiet part early. In many teams, no one wants to be the person who “adds negativity” while everyone else is excited. So risks stay polite, softened, or unsaid. A pre-mortem changes the social contract: finding a weakness is not being difficult; it is the assignment.

It also works with how the brain explains events. Predicting vague future risk is hard. Explaining an imagined event that already happened is easier. When the prompt becomes “the launch failed; what happened?”, people suddenly remember the ignored dependency, the missing rollback, the unclear owner, the customer segment we did not talk to, the interview story we never practiced. The future becomes concrete enough to inspect.

This is not toxic pessimism. Toxic pessimism says, “This will fail, so why try?” Pre-mortem says, “This matters enough that we should protect it from the failures we can already see.” It is optimism with engineering discipline.

In software: from defensive code to resilient systems

In engineering, pre-mortem begins at the small level. Before writing a function, you can ask: “If this creates a production bug, what did I probably assume?” Maybe the input was never empty in your test data. Maybe the third-party API returns a shape that is almost, but not exactly, what the docs promised. Maybe a retry loop retries too aggressively and turns a temporary outage into a traffic storm.

This is deeper than adding a few try/catch blocks. Defensive programming is not fear of errors; it is respect for reality. A good pre-mortem asks about the path through the system: if the payment provider is slow for five minutes during peak traffic, do we degrade gracefully, queue safely, show a useful state to the user, and recover? Or does one dependency hold threads, exhaust the connection pool, and pull the database down with it?

At architecture level, the questions become larger. Imagine the system receives 10x concurrent users tomorrow and fails completely. Where did it break? The database connection pool? A synchronous call hidden inside a hot path? Cache stampede after a popular key expires? A background job that was fine at small volume but now floods a queue? Or the opposite problem: the system did not fail from traffic, but from over-engineering. So many abstractions, services, and configuration layers exist that tracing a real incident becomes slower than the incident itself.

These are uncomfortable questions, but they move a team from reactive firefighting to proactive planning. A pre-mortem does not guarantee a perfect system. It helps the team choose where to put safety rails: timeout defaults, circuit breakers, idempotency keys, monitoring, rollback plans, load tests, feature flags, runbooks, or simply a less clever design.

ContextPre-mortem questionWhat it often reveals
Code change“This PR caused a production bug. What assumption was wrong?”Missing edge cases, unclear validation, weak tests, hidden coupling.
System design“Traffic grew 10x and the platform fell over. What was the bottleneck?”DB pressure, queue behavior, cache stampede, synchronous dependencies.
Migration“The migration was rolled back at midnight. What did we miss?”Data shape mismatch, incomplete rollback, slow backfill, weak observability.
Promotion“The review cycle ended and I was not promoted. What was the real gap?”Impact not visible, weak stakeholder trust, no successor, too little scope.
Interview“I walked out knowing I failed. Which part exposed me?”System design gaps, shallow behavioral examples, unclear career story.
Personal goal“I stopped after one month. What made the plan too hard to continue?”Goal too large, weak environment, no recovery plan, motivation-only design.

In career growth: promotion, interviews, and the work nobody sees

Pre-mortem is just as useful outside code. Career growth often fails quietly before it fails officially. A promotion is not rejected only in the final review meeting; it is usually weakened months earlier by unclear expectations, missing evidence, weak stakeholder trust, or work that was valuable but invisible.

A useful promotion pre-mortem sounds like this: “Six months from now, the review cycle is over and I did not get promoted. What was the real reason?” The answer may be technical, but often it is not only technical. Maybe you delivered many tasks but did not connect them to business impact. Maybe you became the person who solves urgent problems, but not the person who raises the team’s operating level. Maybe you stayed critical to too many daily operations, so no one could see you operating at the next scope. Maybe you did strong work, but the right people never understood it.

That can feel uncomfortable to write down, but it is kinder than discovering it too late. Once the risk is named, the next step is not panic. It is quiet accumulation: clarify expectations with your manager, choose one project with visible impact, document decisions, mentor someone into your current responsibilities, ask for feedback before the official cycle, and build evidence while there is still time.

The same logic helps with interviews. Before a Senior, Lead, or Architect interview, imagine you walked out knowing it did not land. Why? Maybe your system design stayed too close to implementation details and never explained tradeoffs. Maybe your incident story sounded heroic but did not show learning. Maybe your answers used “we” so much that the interviewer could not tell what you personally owned. Maybe you prepared algorithms but not the leadership judgment the role requires.

A pre-mortem turns interview preparation from vague studying into targeted repair. You can practice the weak story, redraw the system design with constraints, prepare examples using situation-behavior-impact, and rehearse how to explain tradeoffs calmly. The goal is not to memorize a perfect version of yourself. It is to remove avoidable surprises so the real conversation has room to happen.

In personal goals: designing around the reasons we usually quit

Most personal plans do not fail because the first day was bad. They fail because the plan only worked for a version of us with unlimited energy, no interruptions, and permanent motivation. Learning a language, running, writing, reading, saving money, building a side project — all of these are easy to imagine and hard to keep.

So before beginning, try a small pre-mortem: “One month from now, I stopped. What happened?” The answer is usually not dramatic. The lessons were too long. The gym required too much friction. The side project had no small milestone. A busy week broke the rhythm and there was no restart plan. The goal depended on inspiration instead of environment.

Once the failure reason is visible, the plan can become gentler and stronger. Fifteen minutes a day beats a heroic two-hour plan that collapses on Tuesday. A small checklist beats a vague identity goal. A restart rule beats shame. A public promise may help some people, while a private routine helps others. The point is not to become perfectly disciplined; it is to design a path that respects the life you actually live.

A simple 15-minute pre-mortem

You do not need a ceremony. For many situations, fifteen focused minutes are enough.

  1. Name the plan. Make it specific: deploy this release, prepare this interview, request this promotion, finish this side project milestone.
  2. Jump to the future. Write one sentence: “It is three months later and this failed.”
  3. List causes silently first. Silence matters because it prevents the first confident voice from shaping everyone else’s thinking.
  4. Group the causes. Look for themes: people, process, technology, communication, timing, energy, incentives.
  5. Pick the top risks. Choose the few that are both plausible and expensive.
  6. Design mitigations and signals. What can we do now, and what early warning sign should make us act?

The last step is the difference between anxiety and preparation. A risk list without action becomes background stress. A risk list with owners, mitigations, and signals becomes a steering tool.

A useful question to keep nearby

“If this fails later, what will I wish I had noticed today?” That one sentence works for code review, architecture, stakeholder alignment, interviews, promotion planning, and almost any personal goal worth protecting.

The quiet value of looking ahead

Large changes rarely arrive from one dramatic moment. They are usually the result of quiet accumulation: the test added before the incident, the design note written before the handover, the stakeholder conversation held before the review cycle, the small daily practice kept before the opportunity appears. Pre-mortem helps us choose what to accumulate.

It is not a way to become untouchable. No plan can see every failure. But many failures are not mysterious; they were visible as weak signals long before they became expensive. The art is to make those signals speak while they are still small.

Key takeaways

  • A pre-mortem imagines failure before execution so the team can fix the plan while there is still time.
  • It is not pessimism. It is optimism with a risk filter: we protect the plan because we want it to work.
  • In software, it exposes hidden assumptions around dependencies, scale, observability, rollback, and over-engineering.
  • In career growth, it reveals gaps early in impact, stakeholder trust, evidence, succession, and interview storytelling.
  • In personal goals, it helps design around real life instead of relying on motivation alone.
  • The useful output is not a list of fears. It is a short set of mitigations, owners, and early warning signals.

Before your next deploy, promotion conversation, interview loop, or personal project, try giving the plan fifteen honest minutes. Imagine it failed, listen carefully to the reasons, then return to the present with one or two changes you can make now. If you have used a pre-mortem in your own work or life, I would be glad to hear what it helped you notice before it became urgent.

你觉得这篇文章如何?

常见问题

What is a pre-mortem?
A pre-mortem is a planning exercise where you imagine that a project, decision, or goal has already failed, then work backward to identify plausible causes. The point is to surface risks early so you can adjust the plan before execution.
How is a pre-mortem different from a post-mortem?
A post-mortem happens after something has failed and focuses on learning from what happened. A pre-mortem happens before execution and assumes failure in advance so the team can prevent or reduce avoidable problems.
Is pre-mortem thinking just pessimism?
No. Pessimism says a plan will fail and stops there. Pre-mortem thinking says the plan matters enough to protect, so we should name realistic risks, prepare mitigations, and define early warning signals.
How can software teams use a pre-mortem?
Software teams can use pre-mortems before releases, migrations, architecture decisions, and scaling events. Useful prompts include: what dependency could fail, what bottleneck appears at 10x traffic, what rollback is missing, and what signal would tell us the system is becoming unhealthy?
Can a pre-mortem help with promotion or job interviews?
Yes. For promotion, imagine the review cycle ended without a promotion and identify the likely gaps: impact, visibility, stakeholder trust, scope, or succession. For interviews, imagine you failed and identify which area exposed you: system design, behavioral stories, tradeoff reasoning, or clarity about your own ownership.