Perhaps you have heard of the developers triangle. This simple illustration is frequently a source of high dispute between developers and managers. In short, it says that out of the 3 attributes: good, fast, and cheap, it is possible to attain 2 of the 3, but not all 3. The illustration tends to lend itself to other similar areas as well, including off-the-shelf software.
The example that tortures me the most at my workplace is Visual SourceSafe 6.0 Why, Why, WHY???
There are many excellent alternatives and replacements for VSS6, I cannot understand why we would keep it around...even after it crashed so badly that we had to restore from disk.
Sent: Friday, May 30, 2008 2:54 PM
To: Lots of IT type people
Subject: RE: SourceSafe
It looks like we are going to need to revert to last night's backup to fix the issue we are experiencing. Please let me know if you have created any new solutions/projects or checked out/in any files and we can work on preserving those changes before restoring from backup.
1) The work that our group was doing had very little commonality with the main development team
2) I knew the issues and problems with SourceSafe.
To me, this is a sad situation. An excellent FREE alternative with superb documentation was available to us, yet management has refused to migrate. This brings me back to my first point. Subversion is an amazing example of an exception to the developers triangle. By all rights, it qualifies as good, fast, and cheap.
Good: I'm not sure if I can truly qualify anything as good or bad, but to prove the "goodness" of SourceSafe, I direct you to Jeff Atwood's post (referenced above) and the chart therein. Based on its popularity, I would surmise that there is a strong consensus that Subversion is a good product and that it is "better" than it's competitors.
Fast: Very little hard data exists to support or dispute whether SVN is faster or slower than other SCMs. SVN was created as an alternative to CVS and one of the goals was to make certain operations much cheaper like copies and thus much faster. However, on their website, Perforce presents a paper showing that it beats SVN in comparative benchmarks. Considering the source, there might be some bias in testing.
Cheap: By very definition of being open source, it is as cheap as it can be... which is free. Even better than that, it has excellent add ons (also free) and extensive documentation in book form (also free, online).
One of the criticisms of Subversion that I hear is the lack of integration with the .NET IDE. This can be overcome somewhat with the free ankhSVN tool or the not-so-free VisualSVN.
However, the argument has been made, and after personal evaluation, I agree that direct integration with the IDE is not necessarily a good thing (see "Tradeoffs and Problems"). I personally have found that taking the time to write a proper check-in and/or checkout script is well worth it. Not only do you have the direct confirmation from the SCM that your command completed successfully, but you also have the opportunity to combine other tasks into the process as well, including templated comments, unit testing, build integration, notifications and pretty much anything else you can dream up. It also prevents you from checking in bad builds, since most developers I know of who use integrated SCM in the IDE use "check in" interchangably with the "save" button, which, in my opinion, is a flawed philosophy.
The other argument I commonly hear relates to the extremely high mistrust that some people harbor against open source software along with the misconceptions that they hold. First, open source doesn't mean "do it yourself." No one is selling you a "how to" kit and wishing you good luck. Many open source projects strive to act and feel the same or better than their commercial competitors. They do not ask the user to ever look or think about the code behind the application. It's all about the user experience, plain and simple.
Secondly, they express great paranoia that open source means zero support, zero help, and a general sense of abandonment (
Perhaps someday, after a particularly devastating crash, a change might be considered. Until then, I can only suggest that you back up often, create your own SVN repository, and perhaps, write your own check in script :-)

0 comments:
Post a Comment