Change log template for project requirements
A change log records every change made to a project’s agreed requirements: which requirement changed, what it said before and after, which request it came from, who decided, when, and which version of the requirements it produced. In project management the name is often used for the change request log as well, so this template covers both: one entry per approved request, with a line for each requirement it changed. Below are what to record, the template, a filled-in example, how a change log differs from a change request log, a decision log and a release changelog, and how to keep one in Excel, Confluence or Jira.
Keep meticulous records of requesting and receiving approvals on everything and keep a detailed change log in place for each artefact.
— r/businessanalysis, 2022
What a change log records
| Field | Why it is there |
|---|---|
| Date | When the change was approved — not when it was built |
| Change request | The request it came from, so the reasons and the cost can be found |
| Requirement ID | Which requirement changed; one line per requirement |
| Type | Added, changed, deleted or deferred |
| Was / now | The old and the new wording, short enough to read in a row |
| Why | The reason, in a sentence |
| Decided by | A name and a role |
| Version | The requirements version before and after |
| Also updated | Acceptance criteria, tests, documents that changed with it |
Karl Wiegers puts the rule that makes the log trustworthy in one line: “Every incorporated requirement change shall be traceable to an approved change request” (Change Happens). Every line in the log has a request; every approved request that changed a requirement has lines in the log.
Change log template
Copy it into a document or a spreadsheet. Square brackets are yours to fill in.
CHANGE LOG
Project: [name]
Requirements: [document], now at
version [x.y]
[date] [CR-n] [title]
Decided: [name, role]
Version: [x.y] -> [x.y]
Why: [the reason]
[ID] [added / changed / deleted /
deferred]
Was: [old wording, or "new"]
Now: [new wording, or "removed"]
Also: [criteria, tests, documents
updated]
[ID] ...
Change log example
The customer portal from the other templates on this site, where customers see and pay their company’s invoices. The requirements were agreed as version 1.0 on 28 January; here is the entry for the part payments change, with two of its six lines in full:
17 Jun CR-10 Pay part of an invoice
Decided: finance lead (client)
Version: 1.3 -> 1.4
Why: large invoices stayed on
bank transfer
FR-014 changed
Was: A signed-in customer can pay
any open invoice of their
company by card.
Now: ... can pay all or part of
any open invoice ...
Also: three new tests: a part
payment; the last part pays it
in full; an amount above the
balance
FR-016 changed
Was: One reminder, seven days
after the due date, for every
open invoice.
Now: ... for every invoice not
paid in full.
Also: acceptance criterion 4;
RULE-06 version 2
The whole log, one row per requirement changed:
| Date | Change | Requirement | What changed |
|---|---|---|---|
| 14 Feb | CR-5 |
FR-021 |
Added: export invoices to CSV. Version 1.2 |
| 7 Mar | CR-7 |
FR-003 |
Changed: new customers can sign in with Google. Version 1.3 |
| 17 Jun | CR-10 |
FR-014 |
Changed: pay all or part of an open invoice. Version 1.4 |
| 17 Jun | CR-10 |
FR-010 |
Changed: new status “Partly paid”, amount still due |
| 17 Jun | CR-10 |
FR-011 |
Changed: the PDF shows payments so far and the balance |
| 17 Jun | CR-10 |
FR-015 |
Changed: the receipt shows the amount paid and the balance |
| 17 Jun | CR-10 |
FR-016 |
Changed: a reminder for every invoice not paid in full |
| 17 Jun | CR-10 |
FR-021 |
Changed: the CSV export gets a balance column |
CR-6 (a blog, declined) and CR-8 (push notifications, deferred) are not in it: they changed no requirement. They are in the change request log, with their decisions. Filtering the rows by one ID gives that requirement’s history — the subject of how to track changes to requirements. Counting the rows per month against the baseline gives requirements volatility.
Change log vs change request log
The two names are often used for the same thing. The accepted answer to “Is Change log the same as Change Request log?” on Project Management Stack Exchange: “A change request log is synonym with change log, although the most used term is change log” (Project Management Stack Exchange, 2021).
On a project with written requirements, it helps to keep the two halves apart, even in one file:
| Log | Records | One line per |
|---|---|---|
| Change request log | Every request, approved or not, with its cost and decision | Request |
| Change log | Every change made to the agreed requirements | Requirement changed |
| Decision log | Decisions and their reasons, including ones that change nothing | Decision |
| Changelog (release notes) | What changed in each release of the software | Release |
A request that is declined has a line in the first log and none in the second. A request approved as a swap — one feature in, another of the same size out — has lines in both, even when the cost and the dates do not move. Another answer on the same question insists on it: “The “puts and takes” have to be documented formally and agreed upon” (Project Management Stack Exchange).
A release changelog is a different thing: “A changelog is a file which contains a curated, chronologically ordered list of notable changes for each version of a project,” in the definition of Keep a Changelog. It describes the software as shipped; the change log on this page describes the requirements as agreed.
Change log in Excel or Google Sheets
One row per requirement changed, with these columns: date, change request, requirement ID, type, was, now, why, decided by, version from, version to, also updated. Then:
- Repeat the change request on every row it produced, so filters work.
- Never delete or edit a row. A mistake gets a new row that corrects it.
- Protect the sheet so that only the person who keeps the log can add rows.
- Filter by requirement ID to see one requirement’s history, or by change request to see everything one change reached.
Change log in Confluence and Jira
In Confluence, one way is a change log table at the bottom of each requirements page, as the requirements in Confluence note suggests; another is one log page for the project. Page history is not a change log: it shows what was edited, not why or on whose decision.
In Jira, keep each change request as an issue and link it to the requirement issues it changes. The issue history records every field edit; the change log records the decisions. The difference matters when someone asks why a requirement says what it says — see requirements in Jira.
How to keep a change log
- One log per project, where the client can read it.
- Write the entry when the change is approved, with the request number and the new version.
- Never edit an entry. Correct it with a new one.
- Every requirement change gets an entry, including the ones agreed on a call and done as a favour — written down after the fact. Why those matter most is in informal requirements changes.
- Read it at every sign-off. The entries since the last baseline are what the client is agreeing to this time.
Logging a change and updating the requirements are one job, not two. Asked “Does a change request change the requirement specification?”, one answer on Project Management Stack Exchange replied: “Yes, you do because otherwise nobody will be able to track the changes of the system, and know how your system is supposed to work” (Project Management Stack Exchange, 2013).
Where Specroot fits
This is the problem Specroot works on: every change to the agreed requirements kept with the request it came from, the decision, and the versions before and after — so that the change log is a record of what happened, not a spreadsheet someone has to remember to fill in. Specroot for agencies and consultancies.
Read next
- Change request template for software projects — A free change request template for software projects, with a filled-in example, a change request log, and the email that asks the client for a decision.
- How to track changes to requirements: versions and history — How to track changes to requirements: requirement, document and baseline versions, what a history needs, and how to keep it in Word, Confluence, Jira and git.
- Decision log template — A decision log template to copy, a worked example, what to record, how to keep it, and decision log vs ADR, RAID log and change log — plus Excel and Confluence.