Best Practices for Managing Requirements

(Terminology: GitLab Issue = “ticket”)

What is the best practice for handling “requirement” tickets? These are tickets that capture software requirements (e.g. they are basically a set of requirements documented in the form of a ticket). For example, our team has labels “requirement” and “accepted” … the “requirement” label is applied when the ticket is created and stays with the ticket. After the requirement is completed and the team has reviewed and approved the requirement, then the “accepted” label is applied (after which the requirements are decomposed into new and separate actionable tickets). At this point we have two options to disposition the requirement ticket:

  1. We can CLOSE the requirement ticket that is labeled “accepted”, but then we have to re-open it if we need to update any changed requirements. This may result in multiple re-opens and re-closes for the ticket and that simply creates confusion when filtering on open vs. closed tickets.

  2. We can keep the requirements ticket that is labeled “accepted” in an OPEN state. The label “accepted” acts as a virtual “close”. But this also creates confusion because the ticket will always remain open and reviewing completion status by filtering on closed tickets will be inaccurate.

Any guidance or reference to best practices, or descriptions of what works for other teams would be great to hear!