Building compliant software in financial services / Building it right
Change management and release controls that keep working
Change management sounds like process overhead invented by people who do not release software. In regulated work it is a named requirement, and the version that satisfies a regulator is close to the version a good engineering team wants anyway: know what changed, know it was checked, know who agreed.
Published August 22, 2026. Editorial.
Key takeaways
- Section 314.4(c)(7) names change management as a required procedure, which makes your release process a regulated control.
- The usual failure is not a missing process but an undocumented bypass used rarely, by a few people, with no record.
- Approval by someone other than the author is the most important part, and it is the part AI-assisted workflows most often quietly remove.
- The release record should be produced by the pipeline, not written by a person afterwards.
Section 314.4(c)(7) of the Safeguards Rule is one clause long: adopt procedures for change management [1]. It is easy to skim past, and it means that how code reaches production is a control subject to regulation rather than a matter of team preference.
The good news is that a defensible change management procedure and a good engineering practice are nearly the same thing. The bad news is that the gap between the documented procedure and the actual one is usually wider than anybody realises.
What a defensible procedure contains
Four properties, and none of them require a change advisory board.
Every change is recorded. What changed, when it reached production, and which release it was part of. Version control gives you most of this for free, provided deployments are traceable to commits, which is worth verifying rather than assuming.
Every change is reviewed by someone other than the author. This is the most important requirement, and the one most often weakened.
Every change is tested before release. Not a manual check that it works, but the check suite running, including the compliance assertions from using evals as compliance evidence.
Emergency changes follow a defined path that still produces a record. Not the same path, necessarily. But a path.
The undocumented bypass
When we look at a team's change management, the documented process is almost always fine. Somebody wrote it, it says sensible things, and it would satisfy a reviewer reading it.
What we find in the deployment history is a second path. Two or three people can deploy directly. It gets used a handful of times a year, always for genuine reasons, usually at an urgent moment. Nothing records that it happened, because the record is produced by the normal pipeline and this route goes around it.
That path defeats the entire control, and it will not appear in any documentation because nobody thinks of it as part of the process. It is the thing you do when the process slows you down.
The fix is not to remove it. A system with no emergency path gets one anyway, improvised, at the worst possible moment. The fix is to make the emergency path produce a record: it can skip the review, skip the wait, skip the approval, and still write down that it was used, by whom, and when, with a required follow-up within a defined window. An emergency path that logs is a documented control. One that does not is a gap.
Review, when a model wrote the change
This is where regulated change management meets AI-assisted development, and it deserves a direct answer.
The requirement that a change be reviewed by someone other than the author exists because the person who made a set of decisions cannot see the decisions they did not know they were making. That reasoning does not weaken when the author is a model. If anything it strengthens, because a model produces plausible work at a volume that makes careless review much easier, and because the failure mode is specifically output that is almost right.
So a workflow where a model writes the change, the same run writes the tests, the pipeline passes, and it deploys is not reviewed work. It is unreviewed work with a passing result, and describing it as satisfying a change management control would be hard to defend.
What does satisfy it: the change is reviewed by a fresh context that did not produce it, evaluating the diff against the written criteria, and a person is accountable for the release. That is the argument in never let the model grade its own work, and in a regulated context it stops being a quality preference and becomes the thing the control requires.
The volume question is real and worth addressing rather than avoiding. When changes arrive far faster than before, review becomes the slowest step, and the honest options are to make review genuinely cheaper through automation, or to slow down. What is not an option is to keep the throughput and quietly redefine review as a quick look, which is the easiest option and the one most teams slowly move into.
Let the pipeline produce the record
The release record should be a byproduct of releasing, not a document somebody writes afterwards.
A record assembled by a person after the fact has the same weakness as any documentary evidence: it describes what they remember or intended. A record emitted by the pipeline describes what happened. It should capture the commit range, the check results, who approved, the deployment time, and whether the emergency path was used.
Retain those for the period your obligations run. This is another place where a default setting causes trouble: CI systems commonly discard build records after a few months, and the retention setting is one line of configuration that nobody has a reason to look at until an examiner asks about a release from eighteen months ago.
Separating duties without slowing down
Where separation of duties is required, the usual reading is that the person who writes a change should not be the person who approves its release to production. In a small team that is genuinely hard, and pretending otherwise is not useful.
Two things make it workable. First, separation applies to approval, not to work: the same engineer can write and deploy provided somebody else approved. Second, the approval can be asynchronous and lightweight for low-risk changes and reserved in its strict form for the paths that matter, provided the classification of which is which is written down rather than decided case by case.
That classification is worth doing carefully, because it is where a reviewer will ask hard questions. "Changes touching authentication, authorisation, retention, or customer records require approval by a second named person; other changes require peer review" is a defensible rule. "Important changes get extra review" is not, because nobody can audit it.
The check that keeps it accurate
Change management is a process control, so most of it cannot be asserted in code. Some of it can, and the parts that can are worth automating because process controls weaken without anyone noticing.
Assert that no deployment reached production without an associated approval record. Assert that the emergency path count for the period matches the number of emergency records filed. Assert that build and approval records exist for every release in the retention window, which catches the day the CI retention setting deleted them without notice.
Those three checks will not satisfy the requirement by themselves. They will tell you when the documented process and the real one no longer match, which is the thing nobody finds out until somebody asks.
If you want to know how wide that gap is in your team, get in touch.
Common questions
Is change management really a regulatory requirement for software teams?
Under the FTC Safeguards Rule it is named directly: section 314.4(c)(7) requires adopting procedures for change management. That makes how code reaches production a regulated control rather than a matter of internal preference.
What is the most common change management failure?
An undocumented bypass rather than a missing process. Two or three people can deploy directly, it gets used a handful of times a year for genuine reasons, and nothing records that it happened because the record is produced by the pipeline the route goes around.
Should the emergency deployment path be removed?
No, because a system with no emergency path gets an improvised one at the worst possible moment. Make it produce a record instead: it can skip review, waiting, and approval while still writing down that it was used, by whom, when, with a required follow-up inside a defined window.
Does a model-written change count as reviewed if the pipeline passes?
No. The requirement for review by someone other than the author exists because the author cannot see the decisions they did not know they were making, and that reasoning does not weaken when the author is a model. A change written and tested in the same run and deployed on a passing pipeline is unreviewed work with a passing result.
How do you separate duties on a small team?
Apply the separation to approval rather than to the work, so the same engineer can write and deploy provided somebody else approved. Then reserve strict approval for a written list of sensitive paths, such as anything touching authentication, authorisation, retention, or customer records, because a rule a reviewer can audit is better than a decision made case by case.
How should the release record be produced?
By the deployment pipeline itself, capturing the commit range, the check results, who approved the change, the deployment time, and whether an emergency path was used, rather than assembled afterwards by a person from memory. A record written after the fact carries the same weakness as any documentary evidence: it describes what someone remembers or intended, not what happened.
What checks can verify change management automatically?
Assert that no deployment reached production without an associated approval record, that the emergency path count for a period matches the number of emergency records filed, and that build and approval records exist for every release inside the retention window. These will not satisfy the requirement by themselves, but they reveal the moment the documented process and the real one diverge.
Is peer review by any teammate enough, or does it need to be a specific role?
The Safeguards Rule requires the change to be reviewed by someone other than the author, but does not name a specific title, so peer review by any qualified teammate can satisfy it for most changes. What should carry a stricter, named-approver requirement is a written list of sensitive paths, such as authentication, authorisation, retention, or customer records, because that classification is what a reviewer can actually audit.
Related reading
What good code review looks like when nobody wrote the code
With human code, the author is the first check and review is the second. With generated code, review is the only check. That one change alters most of what a reviewer should be doing.
Never let the model grade its own work
When the same run writes the code and the tests, a passing build proves only that the code is consistent with itself. That is not verification, and it is the most common way an AI-built codebase becomes confidently wrong.
How to move fast without breaking the product
Speed and quality are usually described as a trade-off. In practice, the teams that work fastest over a long time are the ones that made quality cheap to keep.
More in Building it right
Using evals as compliance evidence
Compliance evidence is usually documentary: a policy, a control matrix, a completed questionnaire. All of it describes what you intended. A check suite derived from your obligations and run on every change describes what the system actually did, continuously, with dates attached. That is a different category of evidence.
Access control and least privilege in financial applications
The Safeguards Rule requires limiting authorized users' access only to the customer information they need to perform their duties. That is easy to state, hard to keep true, and almost never verified, because permission models get worse without anyone noticing and nothing breaks when they do.
What SOC 2 actually asks of your engineering process
SOC 2 gets requested in nearly every enterprise financial deal, and treated by most engineering teams as a security questionnaire somebody else fills out. Read the actual criteria and it names your development process directly: change management, access control, and monitoring are not adjacent to SOC 2, they are most of it.