Saturday, 22 September 2012

Team Foundation Server

The company I am working for at the moment uses TFS for source control, project management and bug tracking. Here is a list of things I hate about it (in no particular order):
  • The web interface does not work in Chrome
  • The My Work list on the web homepage lists all the work I have ever done and I can't seem to change the query.
  • When you move PBs and Bugs to different sprints the tasks do not go with them.
  • Queries that span multiple projects cannot be exported.
  • The web interface is slow (granted probably not all Microsoft's fault).
  • When you are looking at a change-set everything comes out at you as a modal popup so you can't get back to the actual code.
  • Every now and again the modal popups decide to launch a browser window instead of a Visual Studio one.
  • The query windows close when you select close all open tabs.
  • If you edit a task while it is in the results of another open query you have to close the whole lot down if you choose not to save.
  • 2 users cannot change a task at the same time even if one of them is TFS linking a change-set.
  • The combination of the previous 2 is incredibly annoying when you have just checked in and then cannot update your work item as TFS is attaching the changeset.
  • All attachments are downloaded with the same file name rather than their actual name - something like 'AttachmentHandler.aspx'
  • The reports are really complicated to process and require a 'cube' to create the simple reports that all other systems seem to be able to create in real time.
  • There is no support for evidence based scheduling.
  • The workflow diagram's layout engine is ludicrously bad at laying out.
  • The builds on the build server are given a completely different file structure to those on a dev machine making it much harder to write post build and packaging events.
  • There is no in build auto increment version number feature.
  • Scheduled reports don't know about the current sprint so have to be reconfigured every sprint.
  • You cannot copy the PB number and name in one go - actually I did it once but it was by accident and I can't work out what I did.
  • Unit tests have a different structure on the build server so they can't find any of the test resources unless they are embedded.
  • The source location on your local machine is logged on the server so if someone else has ever used that machine you cannot check code into the same folder that they did.
  • Get latest version is unreliable and I often find that I have to overwrite my local code to get the actual latest version.
  • It uses visual studio to work out what changes you have made so actions like excluding a file from the solution ends up deleting it from version control... if I wanted it deleted I would have selected delete.
  • It can't tell if I edit a file outside visual studio.
  • The source control is not distributed.
  • Cannot export certain queries if there is a space in your TFS collection name.
  • The build workflow is complicated and not something you can just go in and tweak.
  • It seems that every issue about it that I Google gets me to an Microsoft forum that starts off with them denying the problem and ends with 'we are looking into it'.
My friends who work for other companies all seem to think that I am being too harsh on TFS. They believe it's better than what they have at the moment. Their main argument is that it is all integrated but that doesn't wash with me. In my first start-up we started off with mantis bug tracker and SVN and it took less than an afternoon to get them integrated. You could reference bugs in your commit messages and view the associated changes from a bug. Nowadays you can integrate build servers like team city with most VCS and planning applications very easily.

No comments:

Post a Comment