Developing A SOC 2 Change Management Documentation Set
In a SOC 2 audit, a software update didn't formally happen unless you can prove exactly who authorized it and why. This distinction between "doing the work" and "proving the work" often catches growing companies off guard. While your team focuses on shipping features, auditors require a paper trail that turns an abstract development process into verifiable facts. A building inspector doesn’t just admire the finished kitchen; they demand permits and electrical diagrams to prove the structure is safe. Similarly, auditors are not looking for bug-free code, but for evidence based control documentation proving every modification was tested and approved before it went live.

Mapping Your Workflow To SOC 2 Trust Services Criteria
Meeting the Trust Services Criteria (TSC) involves translating the auditor’s expectations into your team's daily reality. Most change management requirements (found in Common Criteria 8) mandate evidence for four distinct actions:
-
Authorization: Proving the requester had specific permission to initiate a change.
-
Segregation Of Duties: Ensuring the person who wrote the code is not the person who released it to production.
-
Testing Quality: Verifying the change via automated scripts or manual review—before deployment.
-
Final Approval: A documented sign-off confirming the change was ready for the live environment.
The "Four Horsemen" Of Change Documentation
You can organize your documentation library into two categories: Static Governance (the rules) and Dynamic Evidence (the proof).
-
Change Management Policy (Static): The "Constitution" that mandates high-level rules (e.g., "All code requires peer review").
-
Standard Operating Procedure/SOP (Static): The technical manual showing developers which buttons to click in GitHub or Jira.
-
Change Request (Dynamic): The ticket capturing the intent and risk of a specific change.
-
Change Record (Dynamic): The system-generated timestamp and log of the actual deployment.
Crafting A Change Management Policy
Your policy should define what must happen, not necessarily how. A common mistake is stuffing this document with technical jargon that becomes obsolete when tools update. A solid policy template needs five core sections:
-
Scope: Defining systems covered (e.g., "Production" vs. "Staging").
-
Roles & Responsibilities: Identifying requesters and the Change Advisory Board (CAB).
-
Process Overview: Summarizing the lifecycle (Request → Test → Approve → Deploy).
-
Emergency Changes: Defining the "break-glass" procedure for critical hotfixes.
-
Enforcement: A statement on disciplinary action for bypassing controls.
Building An Audit-Ready Change Request Template
Consistency is the secret to a stress-free audit. By implementing a mandatory form in tools like Jira or Asana, you ensure your team captures the necessary details automatically. A robust template must include:
-
Change ID & Description: A unique number and a plain-English summary.
-
Risk Level: Indicating if the change is routine or a major overhaul.
-
Test Results: Evidence of verification (screenshots, logs, or links).
-
Back Out Plan: Instructions on how to "rollback" the change if it fails.
-
Approval & Completion Date: Digital signatures and deployment timestamps.
Documenting The Software Development Life Cycle (SDLC)
The SDLC is the assembly line that governs your process. Auditors look for guardrails that prove safety is a priority. Your documentation must explicitly state that no code moves to Production until it has successfully performed in Staging. To satisfy the audit, generate a paper trail for these four phases:
-
Plan: Evidence of business need (Jira ticket).
-
Develop: Evidence of version control (GitHub commit history).
-
Test: Evidence of quality assurance (automated test results).
-
Deploy: Evidence of release (timestamped deployment logs).
Proving Segregation Of Duties (SoD)
SoD prevents a single individual from having unchecked authority over your live environment. To implement this, configure your version control system (GitHub/GitLab) to enforce branching rules. Mandate that the person who writes the code cannot be the one to merge the pull request. An auditor will sample your deployments to ensure the "Author" and "Approver" usernames are always different.
The "Fire Extinguisher" Protocol: Emergency Changes
When a critical bug takes your system offline, you are allowed to bypass the "Two-Key" system to restore service. However, SOC 2 requires retrospective approval. Once the crisis is over, you must:
-
Create A Retroactive Ticket: Label it "Emergency" or "Hotfix."
-
Perform Root Cause Analysis: Describe what broke and how it was fixed.
-
Obtain Managerial Sign-Off: Have a lead review the fix within one business day.
Automated Vs. Manual Evidence
-
Manual (Spreadsheets): Low cost but high risk. If a developer forgets to log an update, it becomes an "unauthorized change" in the auditor's eyes.
-
Automated (Jira/GitHub Integration): Acts as a passive security camera. It links code to tickets in real-time, ensuring a complete digital chain of custody without administrative overhead.
Five Common Audit Mistakes To Avoid
-
Self-Approvals: Violating Segregation of Duties.
-
Time-Travel Errors: Approving a change after it was already deployed.
-
Vague Descriptions: Using labels like "fix" or "updates" that provide no context.
-
Missing Test Evidence: Claiming a test was done without providing logs or screenshots.
-
Ghost Changes: Code appearing in production with no corresponding ticket.
Conclusion
A SOC 2 change management framework turns software updates into verifiable, audit-ready events. By mapping workflows to Trust Services Criteria, you prove every modification was authorized and tested. Static policies set the rules, while dynamic evidence provides the receipts auditors demand. Structured templates ensure consistency, capturing risk levels, test results, and rollback plans. Segregation of duties prevents unchecked authority, while emergency protocols balance speed with accountability. Automated integrations reduce human error, linking tickets and deployments into a seamless chain of custody. Ultimately, this documentation set transforms development from a compliance risk into a transparent, trusted process.
