C-TPO

Series 1 · Security is a group project · Part 2 of 4 · Site + LinkedIn

Seven questions

v1.1Changed Oct 17, 2026: Question 4 is now about sensitivity, both kinds: what it would cost if it were exposed, and who is hurt if it goes down (whether their work can wait, and when it matters most).

v1.1updated Oct 17, 2026· edit history (20)

A new version number means what the piece says changed. Before v1.1, it was being shaped in the open. Polish (wording, layout, pictures) is listed but keeps the number.

  1. polish · Oct 17, 2026 · The video, the who-holds-the-answers figure and the decision flow now use the new question 4
  2. v1.1 · Oct 17, 2026 · Question 4 is now about sensitivity, both kinds: what it would cost if it were exposed, and who is hurt if it goes down (whether their work can wait, and when it matters most)
  3. shaping · Oct 14, 2026 · 'Qualify with prejudice' says out loud that it runs against how most of us were taught, and why it ends up in the same place
  4. shaping · Oct 14, 2026 · A one-page PDF of the seven questions to take with you
  5. shaping · Oct 14, 2026 · Said where 'my rule' comes from: I was CTO and CISO at the same time
  6. shaping · Oct 14, 2026 · Broke up the long runs of text: the photo vs the profile, leads on the example, a receipt, a sticker
  7. shaping · Oct 14, 2026 · 'The catch' gets a lead per paragraph, and a new one: keep the receipts (an audit trail that makes the work countable)
  8. shaping · Oct 14, 2026 · AI score updated to reflect how much of this is my direction and corrections
  9. shaping · Oct 14, 2026 · Question 5 is expensive to ask, so it's saved for findings that have earned it
  10. shaping · Oct 14, 2026 · 'Where to start': keep improving the data and the model, and keep checking the sources
  11. shaping · Oct 14, 2026 · 'The catch' talks about evidence, not answers, and says the responsibility stays with whoever makes the call
  12. shaping · Oct 14, 2026 · Decision flow: a fifth situation, an old app with no team
  13. shaping · Oct 14, 2026 · The findings land on many busy teams, not one person; the video now uses realistic findings and real responses; says plainly that a high score means the worst case
  14. shaping · Oct 13, 2026 · An interactive decision flow: one way to order the questions, changing with the situation
  15. shaping · Oct 13, 2026 · 'Picky needs the whole profile, early' moved up front, with getting cheap answers first and deciding early with a simple model
  16. shaping · Oct 13, 2026 · The example uses four real kinds of finding: an OS package, network config, a client library, a front-end library; each ends in a real response (patched, mitigated, next release, targeted patch)
  17. shaping · Oct 13, 2026 · Drucker quote set apart in a box; who holds each answer is highlighted; the example as cards
  18. shaping · Oct 13, 2026 · Fleet numbers (48,000 across 1,200 apps) to match the video
  19. shaping · Oct 13, 2026 · Added the swipe video near the top
  20. v1.0 · Oct 13, 2026 · First version
AI score 3.7/5 me. Idea 1.9/2 · Direction 1/1 · Words 0.8/2. My framing and corrections. AI drafted many of the sentences

Part 1 ended on a claim: the information a good decision needs comes down to about seven questions, and the answers are spread across more people than you’d think. This is those seven questions.

Don’t swipe on the photo. A made-up example with a real-world ratio.

48,000 critical findings

Add up every scanner you run across 1,200 apps, the long-standing ones and the newer AI-driven ones, and you get 48,000 findings marked critical. They don’t land on one person. They land on dozens of teams that already have full-time jobs: designing and building, deciding what to build next, watching how it’s used, keeping it running. Every finding pulls someone away from that work, and the context switching adds up fast. And most of them aren’t critical, not for you, not today. The trouble is that the scan can’t tell you which ones are.

So the usual move is to start at the top and work down, as fast as you can. That feels responsible. It’s also the most expensive way to find out that most of the list didn’t matter.

Two panels. Left: the scan, a wall of red tags all marked critical. Right: after seven questions, almost all of them have turned grey and only a handful are still critical.
What the scan says, and what’s left after seven questions.

Picky needs the whole profile, early

A severity score is a bit like a profile photo: it’s the first thing you see. Except here, a high number isn’t flattering. On a 0 to 10 scale, a 9.8 means the scanner assumed the worst: anyone can reach it, it’s easy to use, and nothing stands in the way. That’s the right default when you know nothing else. The seven questions are the rest of the profile, and they’re how you find out whether the worst case is your case.

The photo
CRITICAL 9.8
What the scanner sees. The worst case, on purpose.
The rest of the profile
  1. 1Fixed already? ?
  2. 2Blocked already? ?
  3. 3Reachable? Attacked? ?
  4. 4How sensitive? ?
  5. 5Safe to change? ?
  6. 6Retire it instead? ?
  7. 7Who would do it? ?
Whether the worst case is your case. Other teams hold these.

Being picky only works if that profile shows up at the first look, not weeks later in a spreadsheet. When an answer is missing, the honest move isn’t to assume it’s fine. It’s to go ask. And the more findings sit waiting on answers, the slower the whole list moves.

So get the answers you can right away, starting with the cheap ones. Then make the call early, with the facts in hand and a simple, written-down way of deciding, a model or even a plain decision tree, so the same facts get the same answer every time.

That’s the bet from part 1 again. Share earlier, so decisions are informed from the first look.

Qualify with prejudice

When I was CTO and CISO at the same time, I had one rule for a list like this, and I still use it: qualify with prejudice. Start from “probably not.” Every finding has to earn its place on the list before anyone spends a day on it. Work the ones with the most impact first, and get the pile as small as you honestly can before you start working it.

If you came up in security, that probably sounds backwards. Most of us were taught the opposite: assume it’s exploitable until someone proves it isn’t. That instinct is a good one, and when you know nothing else, it’s still the right default. But it was built for a list you could actually work through, and 48,000 findings isn’t that list anymore. Both rules want the same thing: nothing that matters left open. Starting from “probably not,” and then doing the work to make that safe, gets you there faster. The rest of this piece is that work.

Peter Drucker said it better than I can.

“There is nothing so useless as doing efficiently that which should not be done at all.”
Peter DruckerHarvard Business Review, 1963

Prejudice here means a strong starting assumption, not a closed mind. The evidence can overturn it, and when it does, that finding goes to the front of the line. And it doesn’t take the decision away from security. Security still makes the call. It just makes it with the answers in hand.

The seven questions

In my experience, a good decision about a finding needs answers to seven questions. They fall into three groups: is it real, does it matter, and can we act. Next to each one is who usually holds the answer.

1–3

Is it real?

Mostly cheap lookups
  1. Has it already been fixed? A vendor can fix a flaw in the exact version you run without changing the version number. On paper it still looks vulnerable. Platform teams and vendors know.
  2. Is something already blocking the way in? Another control may already stop it: a setting, a firewall rule, a feature that’s turned off. Platform and network teams know.
  3. Can anyone reach it, and is anyone trying to? Code that never runs. A door nobody can get to. A flaw nobody is using yet, or one that’s being used right now. App teams and platform teams know the first part. Threat intelligence knows the second.
4

Does it matter?

The business decides
  1. How sensitive is it, if it’s exposed or if it’s down? Sensitive in two ways. Exposed: the money, the customers and the data it can reach (not just what it stores), and the regulator’s attention. Down: who depends on it, inside the company and out, whether their work can wait, and when it matters most. The same flaw on a test box and on the system that moves customer money at month-end are not the same finding. The business knows, with the data owners and operations.
5–7

Can we act?

How, when, and who
  1. Can we change it safely, and how fast? Some systems can take a change today. Some can’t move without months of testing, and some can’t move at all. This is also the most expensive question to ask. It pulls a team off their work to size a fix that doesn’t exist yet, and the answer is a guess until they try. So save it for the findings that have earned it. App teams and operations know.
  2. Should we retire it instead? Sometimes the best fix is turning it off. The business and the app owner know.
  3. Who would actually do the work? If nobody owns it, it doesn’t get fixed, no matter how critical it is. The org chart knows, sort of.
Who holds the answers. Security holds the list of findings and the final call. Platform and network hold questions 1 and 2. App teams and ops hold 3 and 5. The business holds 4 and 6. The org chart holds 7.
Security holds the list. Everyone else holds the answers. Swipe sideways to see it all →

Look at where the answers live. Almost none of them are in the security team. That’s not a knock on security. It’s the point of the whole series. The decision sits with one team, and the facts it needs are scattered across five.

A made-up example

Here’s what that looks like. This example is invented, but I suspect it’ll look familiar.

Four critical findings land on the same morning.

CRITICAL 9.8 → 0.5
OpenSSL
OS package, base image on a payments server
  • −9.3 Q1 Fixed already? Yes. The vendor backported the fix two weeks ago. Same version number. platform team and vendor
PATCHED · by a backport
CRITICAL 9.8 → 2.2
Management port
network config on a switch
  • ±0 Q1 Fixed already? No. network team
  • −7.6 Q2 Blocked already? Yes. A firewall rule only lets the admin network in. network team
MITIGATED · keep the rule
CRITICAL 9.8 → 3.4
Redis client library
an internal reporting service
  • ±0 Q1 Fixed already? No. platform team
  • ±0 Q2 Blocked already? No. network team
  • −6.4 Q3 Reachable? Not today. The service doesn't call the flawed function. app team
NEXT RELEASE · minor upgrade
CRITICAL 9.8 → 10.0
Front-end library
the customer login page
  • +0.2 Q3 Attacked? Yes, this week. threat intelligence
  • ±0 Q4 Sensitive? Customer accounts. the business
  • ±0 Q5 Change safely? Yes. A targeted patch, by Thursday. app team
  • ±0 Q7 Who? A named person. the org chart
FIX FIRST · targeted patch by Thursday
↓ green lowers the risk↑ red raises ityellow is what happens next

OpenSSL Question 1 settles it in five minutes: the vendor backported the fix two weeks ago, and the version number never changed. It drops off the list.

Management port Question 2 settles it: a firewall rule only lets the admin network in. It stays mitigated, as long as the rule does.

Redis client library Question 3 takes the urgency out: the service doesn’t call the flawed function today. But the code is still there, and the next change could call it. So it gets upgraded in the next normal release. A plan, not a fire drill.

Front-end library It faces the internet, customer accounts sit behind it, and it’s being used in attacks this week. Only now is question 5 worth asking, because asking it isn’t free. The app team stops, looks, and comes back with a targeted patch by Thursday. It goes to the front of the line, with the whole team’s attention, because the other three didn’t take any.

The pattern
Not one of the four was “fix or ignore”: patched, mitigated, next release, targeted patch. None of those answers came from the security team. All four decisions did.

The order matters

Notice which questions did the work. The cheap ones went first. Has it been fixed, is something blocking it, can anyone reach it: those are mostly lookups, if you know where to look. The expensive ones, like what it would cost and who would do the work, need people in a room. You only want to spend that time on findings that survived the cheap questions. The most expensive one, how fast can we change it, is like asking engineers for an estimate: don’t, until you know the thing is worth doing.

One way to order them
A model, not the model. The order changes with the situation.
Tap a situation 1 of 5
  1. 1
    Fixed already? cheap lookup
    Yes: patched. Off the list.
  2. 2
    Blocked already? cheap lookup
    Yes: mitigated. Keep the control in place.
  3. 3
    Reachable? Attacked? cheap lookup
    Not reachable, not attacked: schedule it.
  4. 4
    How sensitive? needs people
    Low: next normal release.
  5. 6
    Retire it instead? needs people
    Yes: retire it.
  6. 5
    Safe to change? needs people
    Not safely: mitigate now, plan the change.
  7. 7
    Who would do it? needs people
    An owner and a date.
Cheap lookups first. Most findings stop in the first three steps, so people only meet about the few that are left.
The order should bend to what you already know: who's attacking, what's at stake, how far it's spread. Write yours down so the same facts get the same answer, and change it when it's wrong.

That’s qualifying with prejudice in practice. Most findings fall out at the first three questions. The few that are left get real attention, faster.

The catch

Garbage in, garbage out. Starting from “probably not” is only safe if the evidence holds up. Stale platform records make question 1 false comfort. A strong assumption on weak evidence is worse than none.

Evidence, not someone’s word. The evidence has to be trustworthy, current, easy to get, and checkable. And sharing it doesn’t hand off the responsibility. The other teams supply the evidence. Whoever makes the call still owns it.

Keep the receipts. Every answer should leave a trail: what it was, where it came from, who gave it, and when. That’s how whoever made the call can show what it rested on, and how you find out later which sources were wrong.

RECEIPT
FINDING OpenSSL, payments app
QUESTION 1. Fixed already?
ANSWER Yes. Backported fix.
SOURCE Vendor advisory + patch log
GIVEN BY Platform team
WHEN Tue 09:14
DECISION Patched. Off the list.
CALL BY Security
TOOK 5 min
Made-up example. Keep this. You'll want it later.

Make the toil visible. Today the work hides behind “we’ve been chasing a ton of false positives.” A trail turns that into numbers: how many findings came in, how many each question settled, how long each answer took, and how often a “probably not” turned out to be wrong.

Nobody’s job, yet. That’s exactly what’s hard today, because the evidence lives with other teams, in other systems, and nobody’s job is to hand it over. Which raises the next question: if we do share it, who gets to see what, and who gets to act on it? That’s part 3.

Where to start

Don’t boil the ocean. Pick one kind of decision, say critical findings on internet-facing systems. For each of the seven questions, write down who holds the answer where you work, and how long it takes to get it today. Then build a rough first version together.

And treat it as never done. Keep adding data where the decisions are weakest, keep tuning the model when it gets one wrong, and keep checking the sources themselves: how fresh they are, how complete, how often they turn out to be wrong. A source that has quietly gone stale is worse than one you know is missing.

Take it with you: the seven questions on one page (PDF). Free, no sign-up.
Clay first, chisel later.
Your turn
Which of the seven is hardest to get answered where you work?

The discussion happens on LinkedIn. Pushback, corrections and other angles are what make the next part better.

See my recent posts →

I work for a vendor. This series names no products, including my employer's. The example below is made up.

Get new posts by email

Just new writing, when it's ready. No spam, nothing else. And if you reply to one, it comes straight to me.

Not an email person? Other ways to follow: Bluesky, LinkedIn, YouTube or RSS.

For people short on time

TL;DR

Matt thinks out loud here about technology, mostly how teams decide what to build, fix and protect.

The first series argues that security gets better fastest when the teams that each hold part of the answer share it earlier. Part 2 says most critical findings aren't: seven questions tell you which, and the answers live with other teams. Clay first, chisel later is about roughing out the whole thing before polishing the parts.

Every piece says how much AI helped, and the site is built in the open: a roadmap with a big picture (only Now is a promise), a changelog with a monthly review, and the product work itself, like Operatie Klompje, a postcard-sized product for one customer: his mom.

There's also an Arts and crafts wall, because not everything has to be serious. The discussion happens on LinkedIn.

Start with Part 1 →
AI score 2.7/5 me. Idea 1.8/2 · Direction 0.4/1 · Words 0.5/2. AI drafted these from the site

Updated October 18, 2026. A TL;DR for the whole site, by reader, is an idea by Matt at ctpo.io. Copy it freely, just link back.

Streng geheimOperatie Klompje

Postcard front: Mama in a lace cap, apron and clogs, proud of little Machoo.
The customer: my mom. Small, even in clogs. Giant courage, and giant worry. Most of what she knows about my work comes from the news.