We run scrum agile methodology and have a development environment for development. At the end of each sprint, we close off all the tasks/stories that have been completed and promote the code/system to the user test environment.
As bugs are found during testing, they are put into the sprint backlog.
Ordinarily, bugs are quite small defects, relative to the development and we raise these as bugs.
But, if it is found that the original user story wasn't really completed correctly, should the original user story be reopened?
-- Edit --
Following some very worthwhile comments/answers, which have got me thinking, I think I would clarify the situation, drawing together my comments.
The project is the delivery of a Tb data warehouse project consolidating data from 8 source systems, with about 30 developers and a dozen testers. We have defined user stories but, specifically due the difficult UAT process, the Definition of Done for a user story, is to pass unit testing and pass some fairly superficial system and integration testing. This may be an incorrect thing to do, and is the crux of my question now!
The UAT process is quite long winded and takes
- several days to create the environment
- 24 hours of continual elapsed time to loading the data from the source systems into the data warehouse. This time could be sped up, with lots of ££ spent on hardware, which the project doesn't have.
- 3 days to perform the actual tests. Some are automated using a front end portal, others are execution of data from the source systems and comparing to the data warehouse. This time could be sped up to 2 days with some more staff.
So within a 3 week sprint, this is not really feasible to fit in, as there needs to be a code freeze of all the developers at a point in the week which is then promoted to the UAT environment, then the above process is performed. We would roughly lose one third of our sprint in testing, where the developers would not be doing anything, because if they did, then their code would need UAT and couldn't be delivered in the current sprint.
Currently we are reopening user stories that have been closed when bugs are found, inserting a new "bug" subtask and then putting that into the backlog.
I would be interested particularly in hearing from someone who has engaged with a large project; that is not to invalidate people with good theory or small project knowledge.
Is this the correct way to do things?