Revision Control with Work Item Tracking
At the company I work for we’ve been thinking of moving revision control systems. We currently use CVS and are looking at moving to subversion.
Before we moved over I thought it would be a good time to have a quick look at team based Development / Application Lifecycle Management suites.
The idea would be that the system would be designed for teams and combine some basic project management, requirements capture, task and bug tracking with revision control software, and a way of encouraging / enforcing certain development practices (e.g. Test Driven Development).
Because we’re only a small team, it would have to be integrate well or at least be lightweight in terms of day to day use; ideally having a web interface and integrating in to both Eclipse and Visual Studio (the two IDEs we use). It would also have to be (very) cheap! :-)
The Different Offerings
I started off my search with a bit of Google and Wikipedia. Unsurprisingly, most of them are aimed at Enterprises rather than small teams like us. This meant you had to either call for a price, or the price was just too high.
Code Beamer
Code Beamer looked like it would fit the bill. They do a free version, but the licensing for it is a bit unclear. In the end I decided as a commercial company doing proprietary software, we wouldn’t be able to use the free version. You have to contact the sales team for pricing of the commercial version.
JavaForge runs on Code Beamer, which gives you an idea of how it looks and feels. Apparently there’s integration in to Eclipse, but unfortunately not in to Visual Studio. Also the code analysis tools support Java and C/C++ but not C#, and it’s likely the C# apps that we’ll using any system with to start with.
I wasn’t blown away by JavaForge, not having any pricing details at all put me off somewhat (whatever it is, it’s probably too expensive for us!), and I finally gave in at the download page. Perhaps worth another look later, but in this quick tour I didn’t have the enthusiasm.
Borland Star Team
The Star Team website didn’t particularly inspire me either. Again, no hint of pricing so probably too expensive. Not really any screenshots and stuff either. But it does support Eclipse and Visual Studio. You can download a trial, which might be worth a go at some point.
Rational Team Concert
The first one I actually wanted to try out was IBM’s Rational Team Concert. Part of the Jazz software set. Why? Because it has a version that’s free for 10 users or less, has clients for both Eclipse and Visual Studio and had a decent website to back it up.
So I downloaded the Team Concert Express-C version. The installation instructions looked a little convoluted, but actually it was really easy to set up and I was impressed at how easy it was to get something up and running on my desktop.
The feature set also looked to cover what we wanted, and after a brief play I decided to try and import an existing C# project in to it. So I installed the Visual Studio client and started looking at the Revision Control it includes. It took me a little while to work out how it worked, but I got the basic idea and liked the idea of workspace streams and change sets. So I decided to import the Visual Studio Solution I was currently working on.
This particular solution had three projects in it. The main project, a test project and a library project that it uses. I obviously wanted to install the library project in a separate component within the revision control project, so that it could be shared in other projects when required.
This is where I started to bang my head against the metaphorical brick wall. It appears that when using the Visual Studio client, you have to import a solution as a Revision Control Component and you can’t easily exclude any of the projects it contains. So I imported the solution, and then looked at a way of splitting out the sub-folder containing the library in to a separate component. But I couldn’t seem to do this (although the docs suggested you could).
After much frustration, and a few errors about updating, and even at one point accidentally removing all the code from the Revision Control Project I managed to get the separate components by importing separate Solutions. I then tried to create another solution that contained the projects I wanted to work with, but then got a load more errors.
Given the struggle I had, the various errors and the fact I managed to do some stuff I couldn’t quite understand how I did, I eventually gave up. What ever system we have, it has to be simple and easy- CVS has caused people here issues at times!
To be fair, I think some of the problem here maybe be the difference between the way the Visual Studio and Eclipse plug-ins work. But I didn’t really want to have to download and install Eclipse for editing of C# projects.
Team Foundation Server
Team Foundation Server is Microsoft’s offering in this area, but unfortunately we don’t get it as part of the Microsoft Action Pack we subscribe to, and it’s too expensive and probably over the top for a small company like ours. But after my struggle with Team Concert, I thought I’d download the demo Virtual Machine and give it a go out of interest.
As it was a Virtual Machine it was easy to get running (although they could really do with having a getting started tutorial linked from the desktop of the VM or something), and creating a new Project was easy.
Then to importing the project. This was easy, I imported the projects and could say which bits went where.
Then on to trying out some of the Work Item tracking. Again, all relatively easy from within the Visual Studio client, and does the kind of thing I was looking for.
The website end of TFS is basically a Sharepoint site, but doesn’t seem as comprehensive when it comes to the management of various parts as the Team Concert site.
So I liked the kind of thing TFS had to offer but well, it’s too expensive! I was bemoaning the lack of a version that didn’t include an MSDN subscription that I didn’t want, and also wondering how much you were being charged for Sharepoint, which we already have. Then the day after I’d finished playing I read that MS are releasing TFS Basic- a cut down version that doesn’t include Sharepoint, and presumably excludes MSDN as well. designed to replace Visual Source Safe and still provide the work item tracking functionality, so I’ll be interested to see that when it comes out.
In Conclusion
I didn’t spend much time looking in to all these solutions, and so probably haven’t done them justice.
Rational Team Concert has potential, but it had a few too many niggles and I’m not sure that the Revision Control system is straight-forward and logical enough.
I’m interested to see what Team Foundation Server Basic is like (it’s going to be part of VS2010 Beta 2, which I’ll be trying), and ultimately how much it costs.
Finally, I think there might be an opening in the market for a simpler solution aimed at small businesses / teams. Especially an Open Source one that bases itself on existing packages such as Subversion, Bugzilla etc (which incidentally, you can already do some linking between). Eclipse are already doing some work in this area- they’ve started a Framework designed to provide a standard way for different development packages to work with each other, but there still seems to be a lack of clearly defined product suites out there.
If anyone else has any recommendations, I’d be happy to check them out! :-)