I've been somewhat obsessed with project management lately. I'm trying to do whatever I can to organize things at work, so I've been playing around with version control systems, wikis, bug tracking systems, project management systems, and stuff like that.
A while back, I implemented
CVS, and started using it for the ASP.NET code for our intranet site. This seems to be working OK, and the two other developers involved have gotten used to it and are using it correctly, for the most part. I'm using
CVSNT with
ViewCvs (now called ViewVc) and
TortoiseCVS.
I chose CVS over
Subversion because, at the time, it seemed like it would be easier to implement under Windows, and was more widely used. Subversion is starting to look pretty good right now, largely because of
Trac, a web-based project manager that integrates with a Subversion repository and allows you to do a bunch of nifty things.
I played around with
CvsTrac today, which is a bit like Trac, but works with CVS. It's a nice little system that includes a wiki and a "ticket" system for change requests. I installed the
CvsTracNT package, which does a nice clean install on Windows. Unfortunately, it doesn't seem to work with the version of CVS that I'm using. It appears that it's assuming a certain structure for the CVSROOT/history file that has been changed in more recent releases. I looked through the CvsTrac code, and I think I see what I'd need to change to fix it, but I'm not sure I want to go through all the grief of figuring out how to rebuild it under Windows on my own.
I've also been playing with stand-alone wikis a bit. My goal would be to set up a wiki that could be used for project documentation and management for a number of our internal systems. I want to set up documentation pages for individual database tables and program modules, for instance, and link and categorize them in a way that makes it easy for me to keep the documentation up to date and see where the interdependencies are, and dig into the change history on stuff.
I tried
FlexWiki a while ago. I like a few things about it, including the fact that it's an ASP.NET application, so it fits in with our other stuff well. I didn't like a number of things, though, including the way it formats text, for instance. I'm also not particularly fond of the built-in programming language, WikiTalk. It's nice that you can do some dynamic stuff with it, but I don't want to have to learn a whole new language just for that.
I tried out another ASP.NET wiki system last week. It's called
Perspective. I like a lot of things about this one. I like the way it formats text. I like the system of categories and collections. it's got a good text search feature. The one thing I don't like is the one thing that seems to kill every wiki I look at -- the fact that you can't give pages completely arbitrary names. For a wiki to work out for me, I'd really need to be able to name pages after database tables, program function names, and stuff like that. Perspective will change a name like "f_add_user" to "F Add User", which will screw things up a bit for me. I'd also like to be able to set up a category for ongoing notes, where I might want to name a page something like "2006-01-20 4:50pm foo_detail table changes". Perspective (and most other wiki systems, I think) would remove most of the non-alphanumeric characters from that name and replace them with either white space or nothing at all.
Some alternatives I've been looking at include
Basecamp, a hosted web-based project manager. The downside on Basecamp is that it costs money. Not much ($25 or $50 a month for the kind of thing I'd be doing), but enough that I'd have to justify the expense to the Powers That Be. I've also noticed that they don't seem to have a decent full-text search capability, so that'd really be a killer. And, of course, being externally hosted, I would have no real control of the data and no opportunity to link things to our CVS server or anything like that.
I'm using
OneNote right now for a lot of the stuff I'd like to put into a wiki or project management system. While OneNote works great, it's not that easily sharable; sharing a notebook on the file server works OK, but including the one guy who's working out of his home in Arizona would be a bit difficult. And of course it's not a free product; I'd have to buy a license for everyone I wanted to have access to the notes. Chris Pratley lists some of the features coming in the next version of OneNote in his
blog. There's definitely some interesting stuff going on there, but I don't know if I can afford it for my whole team, or if a non-web-based solution would really be right for us.
Lotus Notes has been our company's default collaboration platform for a while now, and there's no good reason why I couldn't use a Notes database of some sort for project management. The TeamRoom template that ships with Notes is a pretty good start for this kind of thing. I may wind up falling back on Notes for this stuff. I have a couple of people internally who can help me customize whatever we need, and we already have full Notes licenses for everybody, so there's no cost issue. Ed Brill has a couple of
blog entries talking about Notes and Wikis. He makes a good point, about how wikis are usually doing just a subset of the stuff you can do in Notes.
OpenNTF.org has a few templates that might come in handy if I went down this road.
Well, I have now spent about an hour writing up this post. If nothing else, it helped me get some stuff straight in my head, and gave me a chance to consolidate some of the links to all this good stuff in one place.
Labels: software