Fog Creek Software
Discussion Board

Defending your "Use the best tools..."

You said "Do you use the best tools money can buy?" and yet you use CVS which is not the best tool even by the designers of CVS's own mouths (which is why they are making subversion which by the way is also not close the best tool)

You answered this before with "CVS meets our needs" but isn't that the exact same answer any manager would give to any question about tools?  As in Q:"Do you use the best tools money can buy?"  A:"We use tools that meet our needs".

Can you defend your statement "Do you use the best tools money can buy?" and reconcile with "Our tools meet our needs".  In fact, maybe because you are not using the best tools you don't really know what your missing.  I know that has been the case for me quite often.  I think my dev environment is great and I'm loath to change it but then someone finally bugs me enough and I find that although I did have "tools that met my needs" I actually was doing things the hard way by not getting the best tools.

Gregg Tavares
Sunday, February 22, 2004

CVS does have some glaring flaws, some of which were quite annoying to me as recently as, um, yesterday (specifically, not versioning directories).

The trouble is that even if every tool were gratis/free, the cost just in time and energy to switch would take forever to pay off. The time it took me to workaround the versioning directories flaw in CVS yesterday was a matter of maybe 3 minutes. The time it would take us to do a reasonable competitive analysis of the alternative source control systems, choose one, install it, and get everyone educated on the new tool would take a long time to get paid back based on the occasional cost of working around CVS's problems.

It's tempting to spend all your time playing around with the toolset and not actually producing code. CVS is so close to 100% suitable for our source control needs right now that it is just not worth spending any time thinking about it. This has nothing to do with stinginess... when we have a problem, we're usually happy to spend money to solve it (a month ago I came this close to spending thousands and thousands of dollars to solve a miniscule problem with the way our phone system handles the "Hold" function, until Michael talked me out of it.)

Joel Spolsky
Fog Creek Software
Sunday, February 22, 2004

Of course, as we're speaking, Subversion 1.0 was just recently released.

Now if only I can get it to integrate with VS.NET :-)


BTW, Greg, are you the same Greg Tavares that used to work at Big Grub?

James Wann
Monday, February 23, 2004

If I remember correctly, TortoiseSVN has an installer specially for VS.NET...

Paul S
Monday, February 23, 2004

I think Gregg has a good point here. cvs looks good enough because you already have it and know it. But it's really not in the ballpark with the best tools out there.

We switched early on to Perforce. The conversion process maintains your cvs history. The syntax is easier to use, so the learning process was nothing. We get email respones from support in less than ten minutes. It is worth double what it costs us per year, in speed, power, and productivity.

Let me give one example: a friend who uses cvs complains that once a day he does an update, builds, and waits, only to find the build is broken. But it isn't actually broken - he was just unlucky enough to update while someone else was committing, so he only picked up half their changes. Perforce makes this impossible, because checkins are atomic.

I'm not trying to sell you Perforce, even though you should get it. But you are wrong to think that you wouldn't recoup the costs of switching to a modern source control system. Once you change over, cvs will look like passing a floppy disk around the room.

Daniel Switkin
Monday, February 23, 2004

There is a Subversion plugin for VS.Net

Dody Gunawinata
Monday, February 23, 2004

Maybe it's just my interpretation, but I always put an implicit "When evaluating tools..." on there.  As long as you do, occasionally, look at new tools and new types of tools, that should be sufficient.

Generally, when you're stupid busy, it's best to get on with your work instead of evaluating tools, so long as what you have is working.  It's when you *stay* stupid busy for months or years at a time that you need to worry whether you're more stupid than busy.

The other thing about process innovation is that I think it'd work better if more than one person in a group was interested.  Eventually it's like code -- I've smoothed out the process bugs I saw, but that doesn't mean there aren't any more, just that I no longer see them.  But at this point -- finding a group that'll let me be the one person interested is hard enough without asking for more.

Most of the point of using the best tools is respect.  Telling our sysadmin we'd rather have him waste a month researching broken 1992-era undocumented SCSI controller cards than spend $250 to replace it is blatantly disrespectful.  CVS vs. Perforce isn't quite the same; a few days of fiddling with a reliable standard open-source tool may be worth thousands of dollars.  Or at least, it's an open question with points on both sides, as the hardware example isn't.

Monday, February 23, 2004

SVN, in a few months/years, may have what it takes to displace CVS.

It will version your directories, and has atomic commits, for example (AFAICT).  Also the interface is as close to CVS as possible, so you won't have to learn new commands ("svn update" and so forth).  Finally, they have/will have a way to convert CVS repositories to SVN.  (I've heard they use the FreeBSD source tree to test it.)  I like that they were smart enough to think about the transition.

The major complaint seems to be that it's such a small step up from CVS.  That looks like it could end up being its greatest advantage, since it will actually get people to use it, unlike many "better than CVS" projects out there.

Tuesday, February 24, 2004

I think the phrase "use the best tools money can buy" should be rather "use the best tools _available_ money can buy"...

As source control seems to be of interest: I've invested some time to test different RCS/SCM/... systems and found AccuRev quite useable for me. It's hassle free, feature rich and - for me as a solo developer - still affordable. 
Most of the cvs tools I've seen are either complex to use (talk about usability) or require some serious planning effords so you don't run into dead ends during product cycles. This might be ok with large teams where there is one or more persons that handle or assist revision control but for me alone the emphasis was on easy going.  With AccuRev I had the client (on Windows) and server (on Linux) set up in a few minutes and had my project under source control in no time.

As always, YMMV.

Martin Weber
Wednesday, February 25, 2004

*  Recent Topics

*  Fog Creek Home