“It’s not the tools, it’s the solution.”
This is the phrase that David Laribee used in his ALT.NET post back on April 10th.
I agree, it isn’t the tools. I agree, it is the maintainability of the solution. After “does it work?” Maintainability is the number one concern when I write software.
That said, sometimes “the better way” IS about the tools. I won’t go so far as some others, or as I did previously, BUT (see it is upper case, that means it is a BIG BUT) there are a couple items on the list that deserve to be upper case, or bold, or H1 or Heading 1 or screamed at the top of your lungs while standing on the highest table in the auditorium.
I won’t call it HOT or NOT, I’ll call it Acceptable and Inexcusable.
There are two often used tools which in my opinion have absolutely no place on a well meaning developers project. I’ve given it a bit of thought and I cannot come up with any use case where these tools are the right solution. The answer “they are good enough for our team” is heard by my ears as “we aren’t interested in doing a better job.”
VSS. Yes Visual Source Safe. Lock-Modify-Unlock? What??? At the Visual Studio 2005 launch event I nearly fell out of my chair when the Team System demo showed its Copy-Modify-Merge system. Not because I was impressed. No, I was dumbfounded that the CVS I had been using for 10 years and the SVN I’d been using for a few were so far ahead of what many development groups were using. What wasn’t clear was that VSS2005, while it had a new version, it did NOT change the versioning model.
VSS is inexcusable. If your development organization is using VSS don’t just consider switching. Considering alone would not be enough. DO IT. Switch to ANYTHING! The popular move seems to be subversion, and don’t let the open source fool you. You CAN buy the product and support from Collabnet. It isn’t JUST open source. You get MORE from Collabnet than you do from MS with VSS because if your SVN crashes, they will help you recover and help to find the bug for why it crashed. VSS crashes and is full of known bugs and the answer is to backup your repositories regularly. I’d go on here, but a quick google looking for others citing these VSS flaws shows that Jeff Atwood has already covered this ground. It has been a year so I guess it is time someone else mention it.
I will mention that you might consider changing your SCM paradigm and looking at one of the Distributed tools now available. Bazaar runs great on Windows. Git runs in Cygwin. Mercurial has a windows installer.
MSTest is inexcusable. Yes, the Visual Studio integration is very pretty, but after using NUnit, trying to move to MSTest is painful! It hurts. It hurts bad. When you pile on NUnit’s latest Constraint based testing model, there are MANY things that NUnit can test in only one line of code, that MSTest would leave your writing many many lines of code.
I won’t rant on MSTest nearly as long as I did VSS because I haven’t suffered under its tyranny for nearly as long. Maybe (although I doubt it), with a little more time under MSTest and I’ll be able to bear it, but I stand by my original assertion, it is the wrong choice.