ManagementAll levels

Risk Management

Risk management is deciding in advance what could go wrong, which of those things is worth spending money on now, and who will notice if one starts happening. A risk is not a problem yet, and that is the entire reason it is cheap to deal with. The page opens with the whole map — seven groups and twenty-eight lines to check your own project against — then covers how to size a risk without faking precision, the four responses, the practices that actually move the number, and six public failures with the control that was missing from each.

A risk statement
Cause → event → effect
Responses
Four, plus escalate
Standards
ISO 31000 · PRINCE2

The risk map: seven groups

Here is the whole map first, because it is the part you can use today. Identification decides whether the rest of the process has anything to work with, and it is the step teams do worst — not because it is difficult, but because it is done once, at kick-off, by people who already agree with each other. A list of places to look is worth having precisely because it is not the place you already looked. Six of the groups below are places a risk comes from, which is what the diagram shows; the seventh is what you can do about one once you have found it, and each of its four lines gets a section of its own further down.

Risks on a software project come from six places, and the six are drawn as equal spokes rather than as a ranked list. Business risk is the market, the money and the sponsor's attention; technical risk is the architecture, the codebase and the integrations; process risk is estimation, changing requirements and quality; team risk is skills, key people and communication; operational risk is what happens once it is running — outages, third-party services, backups; legal and compliance risk is licensing, regulation and personal data. Teams look at the technical spoke repeatedly and at the other five almost never, which is why the surprise usually arrives from one of those.
  1. 1.Business risks

    1. Market uncertainty: changes in demand, competition, trends.
    2. Financial risks: budget overrun, a shortfall in funding.
    3. Strategic risks: goals that are not aligned between the business and the technical teams.
    4. Changes in leadership: loss of key people, changes to the company strategy.
    5. Unrealistic expectations: overestimating development speed, or the project’s payback.
  2. 2.Technical risks

    1. Architecture problems: the wrong choice of technology, monolith vs. microservices.
    2. A weak codebase: technical debt, outdated technologies.
    3. Scalability and performance: the system does not hold up under load.
    4. Integration risks: external , difficulty integrating with other services.
    5. Security: data leaks, vulnerabilities, no audits.
  3. 3.Process risks

    1. Delays in development: wrong time estimates, delays in dependencies.
    2. Changing requirements: frequent pivots, no stable backlog.
    3. Quality problems: no testing, bugs in production.
    4. Missing documentation: technical decisions not described in enough detail.
  4. 4.Team risks

    1. A gap in competencies: critical skills missing, engineers not at the level required.
    2. Loss of key employees: burnout, resignation.
    3. Communication problems: teams out of step with each other, conflicts.
    4. Low productivity: no motivation, problems with management.
  5. 5.Operational risks

    1. Failures in production: servers going down.
    2. Dependence on third-party services: an API switched off, problems with suppliers.
    3. Gaps in security: no backups, weak authentication.
  6. 6.Legal and compliance risks

    1. Licensing problems: the use of third-party libraries, patents.
    2. Regulatory constraints: , HIPAA, financial regulations.
    3. Data confidentiality: protecting users’ personal data.
  7. 7.Risk management strategies

    1. Avoiding the risk: not taking on high-risk technologies.
    2. Mitigating the risk: introducing testing and security audits.
    3. Transferring the risk: insurance, using SaaS solutions.
    4. Accepting the risk: accepting risks deliberately, with contingency plans.

A risk is not a problem yet

A risk is something that has not happened. That sounds too obvious to state, and it is the distinction the whole practice rests on: the moment it happens it becomes an issue, it costs whatever it costs, and your options have collapsed to the ones still available at that moment. Everything risk management can do for you happens in the window before that — which is also the window in which the work is cheap, unglamorous, and very easy to postpone.

The second thing to get right is what a risk statement is. "The payment provider might be a problem" is a worry, not a risk: nobody can act on it, nobody can tell whether it got better, and it will sit in the register for eight months looking responsible. A usable statement has three parts. The cause is a fact you can check today. The event is the uncertain thing. The effect is what it costs you.

Three neighbouring things get filed as risks and are not, and separating them is most of what makes a register readable.

It isMeaningWhat you do with it
RiskMay happen; would cost somethingOwner, response, trigger, review date
IssueAlready happenedFix it, then ask why the risk was missed
AssumptionTreated as true without checkingPrice the case where it is false — it is now a risk
DependencySomeone else has to deliver firstName the date and the cost of missing it

The assumption row is the cheapest move available to a project manager. Every plan rests on a pile of things nobody checked — that the client will review within a week, that the legacy export is documented, that the one engineer who knows the billing code will still be here in March. Writing down what each one costs if it is false converts a comfortable silence into something with an owner, and it takes an afternoon.

Why the list stops growing

The seven groups are not equally visible, and the order in which a team notices them is close to the reverse of the order in which they do damage. Technical risk gets the most attention because engineers enjoy discussing it and it is the one they are qualified to argue about. Team risk and legal risk almost never surface until one of them is already an issue — the engineer resigns, or a customer’s lawyer asks which jurisdiction the backups are in.

CategoryThe earliest signalWho usually sees it first
BusinessThe sponsor stops coming to the reviewYou, if you are watching attendance
TechnicalEstimates for the same kind of task divergeThe engineers, in private
ProcessWork in progress climbs, nothing finishesThe board, if anybody reads it
TeamOne person answers every questionAnyone at a standup, nobody says it
OperationalA recovery procedure nobody has runNobody — until the night it is needed
LegalNo one can say where personal data livesThe first person who asks

Sizing a risk without faking precision

Two questions decide what happens to a risk: how likely is it, and how much would it cost. Everything else in this part of the practice is an elaboration of those two, and most of the elaborations make the answer worse rather than better.

Probability against impact, with the response that belongs in each corner. Likely and cheap is reduced until it is routine. Likely and expensive is avoided — you change the plan rather than carry it. Unlikely and cheap is accepted in writing, with a trigger that says when to look again. Unlikely and expensive is transferred: insurance, a contract, or a managed service that takes the cost. It is drawn as four quadrants rather than the usual five-by-five heat map because a 25-cell grid invites an argument about whether something scores 12 or 15, and the response is identical either way.

The template most organisations use scores probability from one to five, impact from one to five, multiplies them, and sorts by the product. It feels like analysis and it is close to arithmetic theatre. The scores are guesses dressed as measurements; multiplying two ordinal scales produces a number with no meaning; and the ordering it generates is unstable — a risk at 12 and a risk at 15 get the same response, while the difference between them is decided by whoever was most confident in the room.

The version that survives contact with a real project is coarser and more honest. Put impact in units somebody outside the team understands — money, days of delay, users affected, an order of magnitude is enough. Put probability in three bands: likely, possible, unlikely. Then place the risk on the grid above and read off the response. Two risks landing in the same quadrant get the same treatment, which is exactly right, because they were always going to.

Set the threshold before you score anything

Risk appetite is how much uncertainty the organisation is willing to carry to get what it wants; tolerance is the line past which a specific risk stops being the team’s to decide. Both have to be agreed before the scoring, in numbers: a delay of more than two weeks goes to the sponsor, anything that touches personal data goes to legal, any single risk over a set sum goes to the steering group. Agreed afterwards, the threshold is not a control — it is a justification for the answer somebody already wanted.

When numbers are worth the effort

Expected monetary value — probability times cost — is a legitimate tool in one situation: when you have many similar risks and the question is how much contingency to hold in total. Across forty small risks the averages behave. It is close to meaningless for a single catastrophic risk, because you will not run the project forty times; a 2% chance of losing the client is not "4% of the contract value", it is a coin you flip once.

For schedule risk there are two techniques worth knowing. A three-point estimate — optimistic, likely, pessimistic — asked per task and combined, gives a range instead of a date, and the range is the honest answer. A simulation does the same thing properly by sampling those ranges thousands of times, and its real value is not the output but the conversation: it makes visible that a plan of twenty tasks each "usually fine" has a very low chance of all being fine at once.

Four responses, and the fifth one

Once a risk is stated and sized, there are only four things you can do with it. Choosing between them is the decision the whole register exists to produce, and a register where every row says "monitor" has not produced one.

ResponseWhat it meansWhat it costsOn a software project
AvoidChange the plan so the risk cannot occurWhatever you gave up to do itDrop the feature; use the boring database
ReduceMake it less likely, or cheaper when it happensEngineering time, nowA spike, a load test, a rehearsed rollback
TransferSomeone else carries the costA fee, and a new dependencyInsurance, a contract clause, a managed service
AcceptCarry it deliberately, with a plan if it landsNothing now; a reserve set asideKnown slow report; a documented workaround

Accept is the one that gets skipped, and it is the most common correct answer. A project with forty identified risks cannot afford to mitigate forty of them, and pretending otherwise spends the budget on the cheap ones and leaves nothing for the expensive one. Accepting properly is an act with three parts: it is written down, somebody senior enough agreed to it, and there is a contingency — a reserve of money or days that exists precisely because some accepted risks will land.

The fifth response, which ’s 6th and 7th editions name explicitly, is escalate: the risk is real and the decision is not yours. PRINCE2 has no response by that name and gets to the same place through its exception procedure, which sends anything beyond the project manager’s tolerances up to the board. A risk that would change the business case, breach a regulation, or need money outside your budget belongs to whoever owns those things, and holding onto it out of a sense of ownership is the single most common way a project manager turns a manageable risk into an unrecoverable one. Escalation is not failure; escalating without a recommendation is.

One more thing worth naming, because half the standards include it and almost no team uses it: the same four responses exist for the upside. A risk with a positive effect is an opportunity, and you can exploit it (make it certain), enhance it (make it more likely), share it (partner with someone who can capture it) or accept it. The reason to bother is not symmetry — it is that a register full of threats teaches a team that planning ahead is a defensive activity, which is a bad thing for it to learn.

The practices that actually move the number

Everything above is analysis, and analysis on its own has never prevented an outage. The practices below are the ones that change what happens, roughly in order of how much they return for the effort.

A register that is a control, not a document

A risk register earns its place when it changes decisions, and it does that only if it is short enough to read. Six fields do the work: the statement in cause–event–effect form, the owner, the response, the trigger, the review date, and one line on what has changed since last time. Anything else is reporting. Fifteen live risks is a lot for one project; a register with sixty rows has become an archive, and an archive is read once a quarter by the person who has to present it.

The five steps of a risk procedure, drawn as a loop. Identify what could happen, size it, decide the response, do the thing you decided, then review whether it worked and what is new. The closing arrow is the one that matters: identification is the step teams perform once at kick-off and never again, and the risks that actually sink a project are the ones that appeared in month four and met a register nobody had opened since. Communication sits in the centre rather than as a sixth step because it happens during all five.

Attach the review to a meeting that already exists rather than creating a risk meeting, which will be the first thing cancelled in a busy month. Fifteen minutes in an existing weekly is enough if the question asked is specific: which rows changed, which triggers fired, and what have we learned since that belongs here. Scrum teams have no register in the Guide and do not need to invent one — risks that need work become backlog items with owners, and the sprint review is the checkpoint where a stakeholder can see them.

The pre-mortem

A pre-mortem, from Gary Klein’s work on decision-making, is the highest-return hour in this whole article. You gather the team before the work starts and say: it is a year from now, this project failed completely, write down why. Then everyone writes silently for five minutes before anyone speaks.

Two things make it work where a risk workshop does not. Assuming the failure has already happened licenses people to say things that would sound disloyal as a prediction — "the client never gave us the data" is easy to write about the past and hard to say about the future in front of the client’s account manager. And writing before speaking stops the first confident voice from anchoring the room, which is the mechanism by which a workshop run by the person with the most authority produces the risks that person already believed in.

Buy information instead of writing a mitigation

Most technical risks are not really risks, they are ignorance — and the response to ignorance is an experiment, not a plan. If nobody knows whether the legacy export can handle a million rows, no amount of mitigation writing will find out; two days and a script will. This is the oldest idea in the field: Barry Boehm’s spiral model, from 1986, sequences a project by which unknown is most dangerous rather than by which component comes first architecturally.

Two ways to spend the same calendar, measured as uncertainty remaining. Doing the frightening work first — the unfamiliar integration, the migration, the load test — buys information while there is still budget and calendar left to react with, so exposure falls early. Doing the easy, demonstrable work first keeps the line flat: the project looks healthy for exactly as long as it takes to reach the part nobody has tried. Neither curve is measured data and the axis carries no numbers, because the claim is about the shape rather than the amount.

The practical form of this is sequencing. Put the frightening work first: the unfamiliar integration, the migration, the piece with a hard external dependency, the part nobody on the team has built before. It feels wrong, because the easy work demonstrates progress and the frightening work produces two weeks with nothing to show. It is right for one reason — a discovery in month two has a plan, a budget and a calendar around it, and the same discovery in month eight has none of those.

Rehearse the recovery, not the failure

Any control you have never exercised is a belief. Restore the backup into a scratch environment and time it. Run the rollback on a Tuesday afternoon with the team watching. Hold a game day where somebody turns off a dependency on purpose and the rest of the team works out what breaks — which is the entire idea behind , and it applies long before you are running at Netflix’s scale. In every one of the incidents in the next section, the control existed on paper and had never been run.

Two more that pay for themselves on any project of size. Threat modelling — walking through a feature asking what an attacker would do with it, with STRIDE as the checklist if you want one — is the only reliable way security risks get identified before a penetration test finds them at ten times the cost. And a blameless after every incident, with one rule: the output is a change to the register or to a control, not a lesson. "Be more careful" is not a control.

Six failures and the control that was missing

These are the cases worth knowing because each one is documented in public by the organisation it happened to or by a regulator, and because in every one the missing control was cheap, known and boring. None of them failed for lack of talent.

CaseWhat happenedCategoryThe control that was missing
Knight Capital, 2012A manual deploy reached seven of eight servers; ~$460M in 45 minutesProcessAutomated deployment; never reuse a retired flag
GitLab, 2017Production data deleted by hand; five recovery paths, none workingOperationalA restore somebody has actually performed
Equifax, 2017A known vulnerability left unpatched on a public portal; ~147M peopleLegal / technicalOne named owner per advisory, and verification
Log4Shell, 2021A flaw in a logging library reached software nobody knew used itTechnicalA dependency inventory — you cannot patch what you cannot list
CrowdStrike, 2024A content update crashed roughly 8.5 million Windows machinesOperationalStaged rollout on every channel that reaches production
Healthcare.gov, 2013Big-bang launch of an integration-heavy system; it served almost nobodyBusiness / processOne accountable integrator; load testing before the date

The Equifax and Log4Shell cases are the same failure at two scales. Equifax received the advisory for a vulnerability in a widely used Java component, a patch existed, and the portal that was eventually breached did not get it — the process said "patch it", and no single person was accountable for confirming that any particular system had been patched. Log4Shell, four years later, showed the version of that problem nobody can solve by being diligent: the vulnerable library was pulled in indirectly, by dependencies of dependencies, into software whose owners had no idea it was there. The control in both cases is an inventory — an , a list of what is actually running — because every other control assumes you can answer the question "where is this?"

Where it turns into theatre

Risk management is unusually easy to perform without doing. The artefacts are cheap to produce, they look responsible, and nothing about a well-formatted register tells you whether it has ever changed a decision. These are the shapes the theatre takes.

  • The register is updated the evening before the steering committee and not opened between meetings.
  • "Mitigation: monitor closely" — which names no action, no owner and no date, and is how a row stays green for a year.
  • Scores negotiated rather than estimated, because a high score triggers a conversation somebody wants to avoid.
  • Risk used as a way of saying no to work, which teaches everyone to stop reporting risks to you.
  • Escalation into a group that has no authority or no appetite to decide, which is a delay with a paper trail.
  • Everything identified at kick-off and nothing added since, on a project that has been running for eight months.
  • A control that exists in a document and has never been executed: the untested restore, the unrehearsed rollback, the failover nobody has triggered.

There is also an honest limit, and it is the most important paragraph on this page. A register cannot contain what nobody imagined. The failures that actually end projects are disproportionately the ones outside anyone’s list — a supplier bought by a competitor, a regulation announced in March, a library maintainer walking away, a pandemic. No amount of identification reaches them, and a team that believes its register is complete is more exposed than one that knows it is not.

The response to that class is not better prediction, it is shorter feedback. Detect faster, recover faster, and make changes reversible — which is why continuous delivery, , and a rehearsed rollback belong in a risk conversation even though they are usually filed under engineering practice. They are the only controls that work against a risk nobody wrote down. A team that can undo a change in four minutes has bought itself protection from the entire category of things it failed to imagine, which no register can offer.

When to use it

Use it when

  • Somebody outside the team is counting on a date or a budget you cannot change quietly.
  • The work depends on parties you do not control — an external API, a vendor, a regulator, another team.
  • Failure is expensive or slow to reverse: migrations, money movement, personal data, shipped hardware.
  • The team is new to the domain or the technology, so the estimates are guesses wearing a suit.
  • More than one team has to integrate before anyone can tell whether the thing works.

Avoid it when

  • A two-week internal tool where the worst case is rewriting it — the register costs more than the risk.
  • Where an experiment would answer the question — a spike settles in two days what a scored risk only describes.
  • As a substitute for reversibility. If you can deploy and undo in minutes, buy more of that before buying more analysis.
  • A register kept for an audit nobody reads — it consumes exactly the attention the real risks needed.

Sources and method

What this page stands on

  • 15 sources
  • 6 documented failures
  • Checked October 13, 2026

Researched with Claude. Finding and cross-checking the primary sources was done with Claude (Anthropic). Selection, writing and fact-checking: the Anatomy of IT Product editors.

Found this useful?

Share it with someone who is working on the same problem.