How do you make sure you always have a release build?
I am on the Scrum team that faces the following problem: at the end of Sprint, the team presents its completed user stories to the product owner. The software typically accepts multiple user stories, but rejects one or two. At the moment, the team no longer has a convex assembly, because the assembly consists of both releases and insoluble stories, and there is no easy way to tear out unused stories. In addition, we don’t want to just remove the code associated with unrealizable stories, because usually we just need to add some bug fixes.
How should we solve this problem? I assume that there is some way to branch the assembly so that either (a) each user story is on its own branch, and the user history branches can be merged, or (b) there is a way to annotate the code associated with each user history and creating an assembly that only has a working user history. But I do not know how to do it (a) or (b). I am also open to the possibility of much simpler solutions.
I want to emphasize that the problem is not that the assembly is broken. The assembly is not broken - in the assembly there are only some user stories that cannot be released.
We are currently using svn, but are ready to switch to another version control system if this solves the problem.
, , .