Rob Smyth

Monday 14 June 2010

Build Management

Over the last few years I've worked on .Net projects using a few build management sytems. My ratings, best first:

  1. TeamCity
  2. Cruise
  3. CruiseControl
  4. TFS

TFS 2010 is a still birth

The last few months I've been on a new project using Visual Studio 2010. Being a green field project we started out going for the very latest suite of Microsoft integrated tools using TFS for project management and revision control. What we found was that TFS was ... hmmm ... how do put this? ... still born. Try as we did we just could not give it life and after months of painful efforts we ditched it for subversion and TeamCity so we could get on with the project.

I just could not find anything about TFS that was, in a professional sense usable.

My summary of TFS:
  • RCS - it loses code changes. It is also difficult to use, and has a merge-phobia, but the corruption thingy is kinda a slam dunk. Subversion is way ahead and hey ... it keeps your code changes.
  • Project Management - Notepad is better.
  • Build system - works but is difficult to manage. TeamCity is much better.
  • Integration - Best described as 'share the pain'. Other, non-Microsoft, tools integrate as good. e.g. VisualSVN.

Details below. If your going to read further either you find it hard to believe Microsoft could do such a thing (yea, me too), your a Microsoft basher looking for a fix (go away!), or you need know the experience to avoid it.

RCS Ability


My experience with TFS for revision controls was .... well ... it doesn't work. It is that basic. Well actually it is worse, it silently drops changes. Yep, a revision control system (RCS) that actually looses code. Hard to believe, and we were so sure that nobody could release such a bad RCS that we thought that it had to be the way we were using it. But no, check in your changes, then update and guess what? Your changes are gone!


That TFS cannot reliable keep code changes is sufficient to just forget it and move on. But I suppose that may be fixed. Trouble is that this dude is just way out of its league. TFS's idea of a merge conflict is that the file changed . Its merging is so bad that continuous integration (CI) collaboration is expensive. It sometimes even reports files that it cannot merge files that, it says, are the same.

TFS is merge-o-phobic.

Working with a build system:

One real attractive feature with TFS is that it offers the ability to compile and run all tests on a build system before accepting the commit. Nice ... but ....

It works, most of the time. Trouble is that TFS's merge-o-phobia kinda negates this feature but ignoring that TFS sometimes reverts all of your code when you do one of the commits. Not always mind you, and it does not tell you if it did. Surprise! If it does, and you realise it, well you just have to go make a coffee while the build system decides if your code can go it. That down time is optimistic :-).

For Project Management

TFS is just fine if your project's always go exactly as planned in a gantt chart. So why do you need a project management tool?

I'm serious when I say that notepad would be a better tool. Excel would be far better, and VersionOne just awesome.

For what is called 'agile' style project:
  1. Burn down reporting does not work.
  2. Move a story to a different iteration and the tasks stay behind. Hey try to do iteration planning with that!
  3. Story prerequisites are meaningless. You can put a dependent story in an iteration preceding it prerequisites.


In the end we gave up and now use: Subversion with TortoiseSVN and VisualSVN, and TeamCity. We can deliver working functionality more often now as we can spend more time coding features and less time working with infrastructure.

But if subversion ain't for you as you need something real expensive with lots processes to be sure to be sure that you really are going to commit that code then I can say that TFS is even worse than ClearCase. ClearCase does not loose code changes. It may slow them going in but it does not loose them. And ... trump this ... ClearCase is so much more expensive.

Sunday 13 June 2010

My favorite robot remains Robbie from forbidden planet but this Lipson guy is awesome with his assembliage robot (another guy's work pictured above).

Now these are sculptures I wuv:

The "Rapid 2" Assemblage Robot Sculpture is my favorite. My birthday is coming!