Monday, September 17, 2007

Friday morning I was thinking about application development cycles, project management, and process in general. I'm a process geek and these things interest me. They are of particular interest while I do things like sit, immobilized, connected to a very badly mis-configured VPN downloading source code from a Microsoft Visual Source Safe repository.

In fact, maybe I should start there: Visual Source Safe (VSS from now on) is horrid. It's not the fluffy "oh-it's-from-Microsoft-so-it's-funny-bad" kind of horrid. It's horrid on the scale of vomiting sulfuric acid while the bottom half of your body is slowly dissolved into a liquid by the digestive juices of a million tiny leeches feeding on you at once. A good sign that VSS is a bad choice for version control software comes right from Google -- go ahead, Google it -- that's right: the first page of results has two articles decrying VSS as terminally unsuited to the task of version control for any project. Even the sponsored adds are composed mostly of taglines like "Sick of Visual SourceSafe" and "Fed up with SourceSafe?". I would not expect the applications in the sponsored ads to be any better (though I suppose I could be wrong).

VSS is also slow. Very, very slow. It doesn't help that I'm forced to connect to a VPN in India to access the repository (VSS repositories are more or less just network shares -- they don't play well over any kind of Internet connection). I expect it will take, at the current rate, somewhere in the neighborhood of a one real, honest-to-God, day to download all of the code for the project I'm working on. A day of solid computer (or at least network) time. To download source code. Plain text. Plain text full of repetitive phrases that would shrink down to nearly nothing with good compression... or any compression. But compression and efficiency is not for VSS.

Efficiency doesn't really seem to be for anyone, though, and I think that was my original point when I started writing this last Friday. As terrible as the VSS setup I'm working with is, maybe I shouldn't be complaining: it's only the second job I've worked at with any source code control (SCC now) what-so-ever. Now that I've said that out loud (err... you know what I mean) I realize that I should be complaining a lot more. I've done web development and programming work for about ten different companies or organizations now and only one other used any SCC methods at all.

It's also only the second company to use some kind of project management tool (we have Basecamp -- it's like some kind of little nirvana of sense -- I love it). The other company used to have Basecamp, but ditched it in favor of a more "robust" solution; the developers revolted (and reverted to pen-and-paper notes in large part). I quit the job before I saw the results of the uprising, but I'm not optimistic about how it all went.

It's also the only company I've worked for to have an actual bug tracking tool in place (yes, it's badly configured, slow, and a little obnoxious, but at least it's there).

It's consistently stunning to me how little anyone ("anyone" is harsh, perhaps, but there certainly seems to be a trend towards majority here) really cares about keeping track of what needs to be done and what has been done.

I'm fairly sure I had a lot more to complain about when I started this post on Friday, but reviewing it now, I really think I've babbled enough for one blog post. Who has the patience to read something this long anyway?