41. Governance
Governance
TL;DR
- Compliance intent vs. historical implementation: a requirement is usually an intent (“changes are reviewed and auditable”), not a literal process (“a human signs a paper form”).
- Automated, policy-as-code governance (PR reviews, automated policy checks, recorded audit trails) can satisfy regulatory intent while enabling high deployment frequency.
- SDLC governance designed for infrequent large releases becomes a bottleneck under continuous deployment; controls must be redesigned, not bypassed.
- Audit evidence (provable proof the process was followed) matters more than policy documentation (what the process should be); evidence should be an automatic byproduct of work, not a separate maintained log.
- Byproduct audit trails generated automatically (Git history, CI/CD logs) can’t drift out of sync; separately-maintained change logs depend on human diligence.
- Early compliance involvement in control design prevents late-stage discovery that automation doesn’t satisfy real requirements.
Core Concepts
Compliance intent vs. historical implementation
Compliance requirements, examined closely, are stated as an intent — “changes are reviewed, approved, and auditable” — not literally “a human manually signs a form.” The mistake is assuming the historical implementation is the requirement itself. This distinction is key to resolving the classic tension: a 2-day manual approval process vs. a business needing multiple daily deployments. Automated approval gates (required PR reviews, automated policy checks, recorded audit trails) can satisfy the actual regulatory intent while enabling needed deployment frequency.
SDLC governance and deployment frequency
SDLC governance frameworks were often designed around infrequent, large-batch releases. Applied unchanged to continuous deployment, this creates a structural tension: either governance becomes an ignored bottleneck teams route around (worse for actual compliance), or controls must be redesigned to fit a continuous model. The organization needs to redesign the governance controls themselves — continuous, automated evidence generation — rather than forcing continuous delivery to fit batch-release-era controls.
Audit evidence vs. policy documentation
A written change management policy describes intended process. Audit evidence — the ability to produce, on demand, every production change over 12 months, who approved it, and why — proves the process was actually followed consistently. An auditor needs the second, not just the first. Proactive, on-demand evidence production demonstrates actual capability; this should be tested before a real audit, not for the first time during one.
Byproduct audit trails vs. maintained logs
A trail generated automatically by actual work happening (a commit, a deployment, an automated check) can’t drift out of sync with reality. A separately-maintained change log depends on human diligence to stay accurate and will predictably drift. Structural tie to what actually happened is more reliable than a parallel record.
Early compliance involvement
Building automation first and presenting it to compliance afterward risks discovering late that the controls don’t satisfy real requirements, requiring costly rework. Early involvement lets compliance intent shape control design from the start, ensuring the automation actually satisfies what auditors need to see.
Regulatory scrutiny: testing proactively
An organization should proactively confirm it can produce audit evidence on demand, not for the first time during a real audit. This is a testable capability.
Manual Sign-off (Batch-era) vs. Automated Governance (Continuous)
| Aspect | Manual sign-off | Automated governance |
|---|---|---|
| Deployment frequency | Designed for quarterly or monthly releases | Designed for daily or multiple-daily deploys |
| Approval mechanism | Manual signature, paper or email | Automated policy check + human PR review |
| Audit trail | Separately-maintained change log | Byproduct of Git/CI/CD process |
| Bottleneck risk | High (2+ days per change) | Minimal (immediate) |
| Compliance evidence | Reconstructed manually during audit | On-demand, from actual system records |
| Risk of drift | High (log maintenance fails) | Low (tied to actual work) |
Configuration / Command Reference
# Example: Automated governance control meeting compliance intent
# 1. Policy-as-code enforcement (GitOps approval gate)
apiVersion: v1
kind: ConfigMap
metadata:
name: gitops-policy
data:
policy: |
- rule: "All production changes require security scanning"
enforced: true
- rule: "All production changes require team lead approval in Git"
enforced: true
- rule: "All deployments are recorded with timestamp, actor, and reasoning"
enforced: true
# 2. Automated approval (required PR review + auto audit trail)
# In Git platform (GitHub, GitLab):
# - Require pull request review from team lead before merge
# - Require CI/CD checks pass
# - Require security scanning gate pass
# All actions logged automatically in Git history
# 3. Audit trail as byproduct (Git history)
git log --format="%h %an %ad %s" --date=iso production
# Output: automatic, immutable, auditable record of who changed what and when
# 4. Compliance reporting (query the automatic trail)
git log --since="2024-01-01" --until="2024-12-31" --format="%H %an %ad %s" -- infra/
# Produces 12-month audit evidence on demand, no manual reconstruction needed
# 5. Simulate an out-of-policy change (auto-rejected by gate)
git push # Fails if security scan didn't pass or required reviewer didn't approve
Common Pitfalls
- Pitfall: A 2-day manual approval process is quietly bypassed by engineers under delivery pressure, actually reducing real compliance. Why: The process becomes an ignored bottleneck. Fix: Redesign the governance controls to fit the deployment frequency (automated gates, not manual sign-offs).
- Pitfall: Change management evidence reconstructed manually and expensively during an actual audit because no automatic audit trail was built. Why: Audit evidence treated as a separate task, not a byproduct of real work. Fix: Build evidence generation as an automatic byproduct of deployment systems (Git, CI/CD records).
- Pitfall: Automated governance controls built without early compliance input; discovered during compliance review to not satisfy real regulatory requirements; costly rework required. Why: Automation built in isolation. Fix: Involve compliance stakeholders early in control design, not after automation is complete.
- Pitfall: A separately-maintained change log drifts out of sync with actual deployments within months. Why: Manual log depends on human diligence. Fix: Generate audit trail as automatic byproduct of actual deployment process; test proactively that evidence can be produced on demand.
- Pitfall: Assuming historical process implementation is immutable, rather than understanding and satisfying the actual compliance intent. Why: Confusing implementation with requirement. Fix: Seek regulatory intent behind requirements; propose modern, automated approaches satisfying that intent.
Interview Questions
- A regulated organization’s 2-day manual approval process is blocking continuous deployment. How do you resolve this without abandoning compliance? — Tests whether distinguishing regulatory intent from historical implementation is the reasoned approach.
- Why is “we have a change management policy” a weaker claim than “we can produce 12 months of audit evidence on demand”? — Tests whether the policy-versus-evidence distinction and importance of proof are genuinely understood.
- Design an automated governance control, and explain when you’d bring compliance stakeholders into that design. — Tests whether early compliance involvement is the reasoned sequencing, not an afterthought.
- Why is a Git history-based audit trail more reliable than a separately-maintained change log? — Tests understanding of automatic byproduct trails vs. maintained ones.