Your compliance regime requires a documented human approval before every production change, and the team wants to deploy twenty times a day. How would you satisfy both?
answer
- separate objective from implementation
- segregation of duties plus evidence
- pre-approve a class of standard changes
- evidence as a by-product of deploying
- approval queues force bigger batches
basics
~20 sSeparate the control objective from its implementation. The requirement is that someone other than the author authorized the change and that evidence survives; it is not that a person clicks a button per deploy. Peer review bound to the deployed artifact usually satisfies it.
solid answer
~50 sRead the actual control objective, which is almost always: a person other than the author reviewed and authorized the change, and durable evidence exists linking that decision to what shipped. A per-deploy click is one implementation, not the requirement. So move the approval to the highest-value point — a recorded peer review of the change, with reviewer identity bound to the exact artifact the pipeline then deploys, and the pipeline generating the evidence automatically. Pre-approve a class of low-risk standard changes with defined blast radius and automatic rollback, and keep interactive approval for genuine exceptions: schema changes, regulated data paths, the first canary of a risky release. Enforce separation of duties technically by leaving humans with no standing deploy credentials. Then bring evidence to the auditor: batching to fit an approval queue makes each release larger and harder to attribute, which is worse for stability, not better.
go deeper
Know that production changes usually need someone other than the author to sign off, and that the sign-off has to be recorded somewhere durable rather than agreed verbally.
Explain how a recorded peer review can carry the authorization if it is bound to the exact artifact that deploys, and how the pipeline generates that evidence automatically.
Design the tiering: which changes are pre-approved as a class with automated rollback, which keep an interactive gate, and how break-glass stays available while being loudly recorded and reviewed.
Own the negotiation with the compliance function — restate the control objective, propose an equivalent implementation with better evidence, argue batch size as a risk reduction, and concede the genuinely per-event obligations rather than overselling.
## Read the control, not the ritual The conversation goes wrong when "approval" is treated as a fixed artefact — a person, a button, a meeting. Almost every regime's underlying control is some version of: *changes to production are authorized by someone other than the person who made them, and there is durable evidence of that authorization tied to what was actually deployed.* Segregation of duties plus retained evidence. Nothing in that sentence says when the approval happens, how many changes it covers, or that a human must be interrupted at deploy time. So the design question is: where in the delivery path can we place a decision that genuinely satisfies segregation of duties, and how do we make the evidence a by-product rather than a chore? ## Move the approval earlier and bind it to the artifact The strongest available control point in most organisations already exists: peer review of the change before merge. It has the right properties — a different person, a substantive look at the change, a durable record with identity and timestamp — and it happens where the reviewer has the most context and the least time pressure. What is usually missing is the *binding*. A review approves a commit; the auditor cares about what runs. Close that by having the pipeline record the chain — reviewed commit, the artifact built from it identified by content digest, the gates that evaluated it, the environment record of where and when it deployed. Then "who authorized what is running in production" is a query, not an archaeology project. ## Tier the changes Not every change needs the same treatment, and pretending otherwise is what makes teams route around the process. A workable tiering: **Standard changes** — pre-approved as a *class* rather than individually. A defined, narrow blast radius, a well-exercised deployment path, automated verification and automatic rollback on failure. Routine application releases through the normal pipeline are the canonical example. The authorization is the recorded peer review; the class approval is granted once, reviewed periodically, and the pipeline enforces the conditions that make a change eligible. **Elevated changes** — retain an interactive gate. Schema migrations that are not trivially reversible, changes to authentication or payment paths, infrastructure changes affecting data durability, the first traffic onto a large release. The gate is worth its latency here because a human genuinely has information the pipeline lacks. **Emergency changes** — a break-glass path that is always available, loudly recorded, notifies automatically, and is reviewed after the fact. The review afterwards is the control; blocking is not. ## Make evidence a by-product Compliance work becomes cheap exactly when the artefacts are generated by the system doing the work. Deployment records carrying artifact digest, actor, approver, timestamp and gate results; retained pipeline logs; a queryable link from any production version back to its review. Screenshots and spreadsheets assembled quarterly are expensive, contestable and frequently wrong — and preparing them consumes the engineering time that could have improved the controls. ## Bring the counter-argument, with evidence A principal-level answer engages the compliance side rather than routing around it. Two points carry the discussion. First, a gate that everyone approves within seconds is not a control. It produces a record, but no independent judgement occurred, and the record is arguably worse than nothing because it looks like assurance. Ask what the approver is expected to verify; if they cannot answer, the gate is theatre. Second, and more decisively: an approval queue forces batching. If deploying costs a day of waiting, teams ship weekly instead of continuously, and each release now contains twenty changes. When it fails, nobody knows which change did it, the rollback reverts nineteen innocent ones, and mean time to recovery grows. Widely cited industry research into delivery performance (the DORA programme) reports that heavyweight external change-approval processes correlate with slower delivery *without* a corresponding improvement in stability. Frame this as a risk argument in the auditor's own terms: smaller, more frequent, individually attributable, automatically reversible changes are the safer configuration. ## Where to concede Do not oversell. Some obligations really are per-event and non-negotiable — certain regulated financial flows, changes affecting audited data retention, jurisdictional requirements about who may operate a system. Take those seriously, isolate them so the requirement applies to a small, well-defined slice rather than to all deployments, and spend the gate budget there. A control regime that is proportionate is one people keep following; a uniform one gets routed around, and the exception path becomes the real process nobody is measuring.
- What makes a peer review acceptable as the authorization of record, when a per-deploy click is not required?It must be by someone other than the author, be recorded with identity and timestamp, and be traceable to the exact artifact that deploys — commit to digest to deployment record. Add technical separation of duties: humans hold no standing deploy credentials, so the merge is genuinely the last human decision in the path.
- How do you argue that more frequent deployment is lower risk, not higher, to a sceptical auditor?In their vocabulary: batch size. A weekly release bundles twenty changes, so a failure cannot be attributed and the rollback reverts nineteen good ones. Continuous small releases are individually attributable and automatically reversible, and recovery time shortens. Offer the deployment records and rollback history as the evidence rather than asking for trust.
- Which changes would you deliberately keep behind an interactive human gate?Ones where a human holds information the pipeline does not: hard-to-reverse schema migrations, changes to authentication, payment or regulated data paths, infrastructure affecting durability, and the first real traffic onto a high-risk release. Keeping the gate scarce is what keeps it meaningful — a gate on everything becomes a reflex click.
- What would you measure to know whether the approval regime is working?Approval latency and its distribution, the fraction approved in under a minute (a rubber-stamping proxy), break-glass usage rate, change failure rate split by tier, and batch size per release. If elevated-tier changes fail no less often than standard ones, the gate is not buying anything and the tiering needs revisiting.
saying these in an interview costs you the question
- Treats the click as the requirement rather than the control objective
- Proposes bypassing compliance instead of re-implementing the control
- Accepts approvals granted in seconds as genuine authorization
- Assembles audit evidence manually after the fact
- Applies one uniform gate to every change regardless of blast radius