r/softwaredevelopment • u/ClickOk5811 • 3h ago
One line in a borrowed Definition of Done that quietly contradicts your on-call rule
Teams copy process templates all the time: a Definition of Done from another team, a PR checklist from a blog, a retro format somebody swore by. They save time, and they carry decisions made for a different team.
A hypothetical example of how one line can collide with something you already have.
The inherited line, from a copied DoD
“Every change is approved by two reviewers before merge.”
Sensible. Plenty of teams run exactly this.
Your own rule
“A production incident is mitigated within 30 minutes of the page.”
Also sensible.
Where they meet
It’s 2 a.m., a bad deploy is breaking checkout, and the fix is a one-line revert. The DoD says two approvals. At that hour there’s one person awake who can approve, and she’s the one who wrote the revert. Either the team breaks its own definition of done, which teaches everyone that it’s optional, or the incident runs long waiting for a second reviewer. Neither line is wrong on its own. The conflict only shows up at the worst possible moment.
How I’d deal with it
Read the borrowed template the way you’d review a dependency, a line at a time:
- what is this line for, and does it hold for how we actually work?
- does any line contradict a rule we already have, especially for incidents, hotfixes, or legacy code?
- what’s missing that we need, such as an emergency path or who can approve it?
- then try it against a few situations it wasn’t written for: a hotfix, a tiny typo fix, a change in a module with no tests
Usually the outcome is a small amendment, like “two approvals, except for incident reverts, which need one approval and a follow-up review the next business day”, and that exception being written down is the whole value.
Limits: for a brand-new team with no history, adopting a template as is and adjusting later may be better than debating each line. And an audit only catches the conflicts you think to test for.
How do your teams handle process templates they borrow? Do you audit them up front, or amend them when they bite?
I wrote about the same idea for a different kind of template (system prompts, where inherited defaults can quietly contradict your own rules): https://medium.com/@nagatomopedro05/the-decisions-hidden-inside-every-template-6ddb8715c24e