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! :-)
9 comments:
Nice blog. Its not easy to find real unbiased experiences like this. Regarding the problems you faced while trying out RTC for VS.NET client, did you take a look at the following article?
http://jazz.net/library/article/117
-Sandeep
Section 3.2 of the article (http://jazz.net/library/article/117) has the instructions on how you can achieve the the desired configuration in RTC.
Sharing a solution and all its associated projects is a straight forward operation in RTC. It only when you try to use the advance capabilities of RTC's SCM module, like dividing your solution into multiple components, some of which can be re-used in other projects independently, that you need to do a little bit of extra setup, the details instructions for which are in the article link above. I wonder if any of the other tools including TFS even lets you have shareable components.
I am part of the RTC for VS.NET development team, and we use RTC VS.NET client ourself in pretty much the same way that you have tried to use. I would be keen to be of any help.
-Sandeep
Hi
Nice review, esp since you took the time to try out a few different systems. Don't give up on RTC yet - please consider taking up Sandeep's offer of help (or join us on the forums on jazz.net to ask questions).
anthony
Thanks for the comments and the offers of help.
I found that article on importing them as separate solutions and that's when I managed to get the library and the main project in as separate components. But then I had some issues trying to create the Master Solution and gave up at that point. I think it may have been something to do with the folder structure I used.
From the docs it looked like the RTC Eclipse client had the option to import different projects in to different components? This might have helped, but in the VS client I could only seem to move a Solution to a new component, not a project.
I think part of the problem is the way VS Solutions and the directory hierarchy seem to map directly to the Revision Control system.
It could also just be that it’s a different way of working to what we’re used to; but that’s open to being changed!
Apparently the .NET Framework 4 beta 2 comes out in a couple of days, so I’ll be taking a look at TFS Basic and I’ll make sure I give RTC another go at the same time. :-)
You should also take a look at
http://www.open-services.net
which is an industry standard effort to allow application lifecycle tools to link using REST style interfaces. If you write application integrations, it means you can write once and it will work on many products. If you use integrated ALM tools it means you can use the integrations without having them break each time a new product releases. Worth a look. Jazz uses this open ALM platform approach with REST interfaces. The TFS platform is propietary and only integrates ALM tools using a VS.NET based technology stack.
Thanks for the info.
Do you know if there's a list of tools that support OSLC out there, or is it still a bit early for that?
Hi,
There is now another article which explains the steps of converting a single VS solution into partitioned solution with multiple jazz components. Hope that would help you get over the issues that you ran into earlier. While I don't want to influence your comparison in anyway, I would certainly like to help so that you can do a fair comparison by seeing RTC in action.
https://jazz.net/wiki/bin/view/Main/MovingToPartitionedSolution
Please take a look.
-Sandeep
Post a Comment