tags:

views:

50

answers:

6

Hey,

I know this question is silly but I just want to make sure.

Does each iteration (the end of each sprint) in Scrum equivalents a tag under -say- Subversion?

Thanks for help and time.

A: 

No, but that's not to say that they are unrelated.

A tag equates to a build from your build system. You might use a version number on the tag that equates to an iteration -- let's say you number your releases with a major version number, and you use a "minor" version number that equates to the iteration you're in. So you might be in iteration "1.2", and each tag in SVN would start with a 1.2. Maybe the 3rd number is a build number. It's up to you on the specifics, but you would likely have multiple builds per iteration -- 1.2.1, 1.2.2., 1.2.3, and so on...

Dave Markle
+3  A: 

No, a Scrum sprint/iteration is a fixed period of time, and there's no 1:1 correspondence of such amounts of time with tags (or branches, &c) in whatever version control system you prefer.

The use of tags in svn & friends is more of a matter of release engineering (for most SW development shops, at least) than of development process per se.

Of course, nothing stops your specific team from deciding that every releaseable-increment resulting at the end of a sprint must be somehow tagged, but if you reserved tags for only that purpose, you're cramping your release engineering processes unnecessarily.

Alex Martelli
+1  A: 

I think it would be more likely that for each sprint, the development team would be working in a specific subversion branch, which is merged back to trunk at the end of the sprint and a new branch created for the next one. That way, trunk is always keep "clean" with the previous sprint's work in it, allowing you to quickly cut a new release with a bug fix if an emergency arises.

Ether
you can also do bug fixes the other way around, especially when you make the svn revision part of the version number. That way you can create a maintenance branch when required, and save some overhead of branching and merging everytime instead of just when there are problems
Sander Rijken
A: 

You should create a tag if you decide to release.

At the end of a scrum iteration, you have a potentially shippable product. This doesn't mean that you should release.

Pierre 303
A: 

Scrum doesn't say anything about the use of a version control system by the team - in fact, Scrum doesn't say anything about technical practices. Scrum just says team must deliver a "shippable product increment" every sprint - that is a version of the product that is fully integrated and meets the definition of DONE.

Now, on the practical side it is quite logical that you want some way of marking in the repository those milestones that represent the product of each sprint. Yes, you can do it with tags and it is quite intuitive - this is how we did it in our team when we still used SVN - but you could also do it differently, I guess. I think it all depends on your particular circumstances and I would leave it to the team to figure this one out. As long as they can reliably produce the source for the product of each sprint any way they achieve it is fine.

Andy
A: 

We designate a "tag" as our sprint deliverable to be used during the sprint review meeting, but it is never the only tag we create during the sprint. We create a tag as and when we have code that can be tested after integration to our "trunk/master".

ssatish