Not once I am being asked the following question:
“Lets say that we have an active requirement that is assigned to a programmer, now the programmer is doing the design and the code for the requirement can I close\Resolve the requirement as done? what if I have bugs that are active and related to this requirement?”
First I like to start by saying that a requirement can be Resolved and then be closed or can be Closed without being resolved first depends on the methodology being used, for our discussion it will be the same result, the requirement is marked as done.
Now lets answer the question, the requirement is marked as done when the code that covers the requirement is done.
The reason I don’t care for the bugs that are related to the requirement is the fact that the requirement is done before the testing begins, one of the triggers for the testing cycle is the closure of the requirements that have been target for the release, and as we know, most of the bugs are being found in the testing cycles that are being executed after the requirements are closed.
We can see that the requirements closure has nothing to do with the related bugs they “live” on different stages in the application life cycle, requirements are done before the opening of the bugs that are related to them.
So why not to leave the requirements open then and to close them only after all the bugs that are related to them are closed?
That is a good question, no? Well I will leave all my requirements open and close them only after all the related bugs are closed, sounds grate…
Lets consider two problematic scenarios:
First Scenario: I have 3 bugs related to a requirement, good bug management practice say that one of the bugs will not be fixed, so the requirement stays open forever.
Second Scenario: I have 3 bugs related to a requirement, I have fixed all the bugs and I close the requirement, now I find another one, what should I do? Leave it closed? reopen?
I have more scenarios that are problematic, but I have a bigger problem, when should I declare Feature Freeze? In Software Configuration Management there is a declaration of Feature Freeze when all the requirement meant for the release are done and fixing bugs is starting.
We can see that it is very problematic to leave the requirements open when they have bugs.
Best practice is to mark the requirement as done when the code for that requirement is done.