VSS - where are we going?
A recently published article on MSDN talks about the planned roadmap for VSS. I've read through it eagerly, looking for a feature I missed long ago, but to no avail.
The feature I'm talking about is the (as called in ClearCase terminology) “Streaming” concept.
Imagine the following situation (which I believe you are all familiar with): Two developers working on the same project. One of them assigned a feature request that should take 4 days. At the end of day 1, the feature is not ready yet, and the application cannot be built with what was written already. Well, our developer want to go home, he Checks-In all the files he has been working on, and leave.
The next day, the second developer comes, and get the latest version from VSS. But then - SURPRISE! - the application cannot be built!
So what should the first developer do? Should he not check in the file? but then he might lose it, since it's stored only on his local machine. Should he check in the file? He will then break the whole application!
The “Streaming” concept says that the application does not have only single version, as in VSS, but as many versions as needed. For example - the first developer will check in the file, but not to the main app version, but to a sub version called “Developer Stream”. This stream holds the version of this developer only. This version will be promoted to the master stream when the whole feature is ready for action.
This actually raise another question - how are we suppose to treat the source control apps? Should we use them as versioning AND backup apps, or only versioning? If we'll think of them as versioning products only, then the problem is not even raised. Developer one should not check in the files at all, until he has finished working on them and they can be part of a version. And about the backup issue - there are a lot of 3rd party products that can handle that, regardless of the VSS.
So, how do you utilize the VSS? Versioning only, or Backup & Versioning? How do you solve the situation described above?