Good point. I went overboard in my generalization. A thread needs
only two states: Unresolved, Resolved
But consider the next level once my impediments-list is resolved. The
acceptance criteria for a project may become CR+2 && V+1 &&
Count(Unresolved)==0
I would be quite happy with this scenario because it would mean that
everyone fixes their patches to salve my every complaint. But
sometimes the answer to a comment is "I agree, but I cannot fix this
yet. I will fix it later."
So I would like a thread to have three states: Unresolved, Resolved,
Debt (Accepted, but unresolved)
The project acceptance criteria still holds, but now I can accept
"Debt" into my branch: CR+2 && V+1 && Count(Unresolved)==0
Maybe some future change will allow me to define different acceptance
criteria for different branches.
dev: CR+2 && V+1
master: CR+2 && V+1 && Count(Unresolved)==0
release: CR+2 && V+1 && Count(Unresolved)==0 && Count(Debt)==0
But some debt must be accepted even in a release branch, so another
disposition state is needed. Now I have these: Unresolved, Resolved,
Debt, Releasable-Debt (Accepted for release, but unresolved). This
scenario allows me to release code with known deficiencies without
losing track of those deficiencies in the future.
Phil