Tuesday, 5 March 2013

Monday, 29 October 2012

Committing to Software Trials

As you will be able to see if you go back a few posts in my Blog I have an unhealthy dislike for TFS. Most of it comes from a belief, that rubbed off on me in a previous position, that if a product is not easy and enjoyable to use people will not use it. TFS issue tracking is not easy to use. It is really little more than a single database table that you can define custom queries against. I am pretty sure that you could achieve 90% of the functionality using Microsoft Access. So imagine my joy when I finally managed to get my boss to give JIRA a try.

JIRA is both fun and easy to use provided you use their workflows. With the GreenHopper plugin you can move things around in the backlog just by dragging them (you can do this in TFS 2012 but that's not what we're using), drag tasks around the workflow to indicate progress, drag issues from one release to another and so on and so forth. All the charts you really need are also bundled in with the Green Hopper plugin including a real-time burn down (not just a daily summary like TFS), cumulative flow and more. There are also easy prioritisation and voting tools to help project managers prioritise work.

Despite the awesomeness of JIRA I am not enjoying our trial. Unfortunately for Atlassian it is not their fault and there is not a lot they can do about it. You see the original plan for the trial was to switch our small team from TFS to JIRA for a sprint so that everyone could marvel at it's wonder. Being an eager beaver I was on it from the start and had the next sprint of items from the backlog into JIRA in no time. But then things went wrong. Product Management were not aware we were using the new tool and there was a hold up getting usernames out to the other developers. This lead to the abysmal  situation of me, and the other developers as they joined, having to keep both JIRA and TFS up-to-date with progress. It also meant that there were 2 places to look for activity feeds (my twitter like group and the feeds in JIRA) and that if a PM made a change it was in TFS not in JIRA. So now the development team are left disliking JIRA because it is just more work for them to do, project management are still oblivious to it's existence and the whole thing has really been a waste of time.

This is actually a common mistake with trialling new procedures and software. If you are trying something new you should just go for it. Don't try out a new system while maintaining and old one because even if you spend 90% of the effort maintaining the old system you will dislike the new one for giving you more work. I see this a lot when I recommend ReSharper to people too. They don't trust the quick fixes and hints so they don't use them. If they don't use them they just see them as cluttering up their environment and completely miss the point of the product!

Thursday, 4 October 2012

Visual Studio 2012 - At a Glance

I saw someone else install Visual Studio 2012 today - yes I quite literally mean a glance - and I felt so strongly about it that I am writing this blog post. I am warning you now that this is really just me grumbling so don't expect to be enlightened.

I suppose I have to start with the lovely grey interface that has been the talk of the town since it was released. I know that the world and his wife has already had their 2 cents about this but I really don't understand why they made this decision. I have heard it said that the reason they chose it is because they think that the colourful nature of previous versions is too distracting. I honestly don't know who they were observing to draw this conclusion. It is simply ridiculous. Go into any UK office on a grey day and I would bet that everyone is glummer than they are on a sunny day. I generally see that if people are happier they work better and grey things do not make people happy. So in my eyes all that they have achieved is to make office life that little bit more miserable. Luckily for me I can make it pretty with a plugin so I will survive - although it doesn't change the icons.
Does anyone else see the resemblance?

Loading times appear to be just as slow as, if not slower than, 2010. It also crashed after we opened it the first time so we had to sit through it twice. The creation of an MVC project took a whole second to add each file that would be in the new project before we could do anything. I could tell because there were handy status notifications for each one. I am starting to think that this is a trend with Microsoft products. The main difference I noticed between Office 2007 and 2010 seems to be that the later takes twice as long to load. They have tried to disguise this by giving you status updates on how loading the application is coming along but I am not fooled. But who cares about load times anyway? It's not like we need to open and close Visual Studio all day so I think I could let it off for that.

The thing that I really don't like, and you are welcome to call me petty, is the shouty capitals. If the colourful icons were too distracting then I am sure being constantly shouted at will be too. I really hate them. Luckily you can turn them off so that one shouldn't be a problem either.

So now I have got that out of my system all I need to do is get over it and start using it because lets face it... I don't have much choice.

Sunday, 30 September 2012

Computing talks in Herts

The British Computer Society are putting on a series of free talks in Hertfordshire that may be of interest to anyone who lives around the area who works in the indusrty.

Friday, 28 September 2012

Twitter as a Development Tool

Today I introduced the idea of tweeting to our development team at work. We don't actually use twitter but the basic concept is the same. Someone tweets and other reply, like or share. You can also mention topics and people.

It actually works really well in a development team. It is like having a continual start of day that lasts all day. If an impediment or question is raised everyone in the team will see it at once. If anyone has a question they can post it and anyone in the know can answer at their leisure. This means you don't need to disturb people while they are in mid-flow. Even better the team leader knows exactly what is going on at all times and does not need to ask.

Treating bug/feature ids and key words as topics starts to build up a knowledge base that can be searched so that the same questions need not be re-answered. It also helps organise the tweets into useful streams of conversations.

While this is a very new idea to most of my colleagues it is not really that new in the software development world. Issue trackers like JIRA have in built activity streams that allow tagging of users and issues. We are just being left behind because we use TFS.

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.

Friday, 21 September 2012

Entity Framework Bug

If you are using Entity Framework in .NET I advise you not to trust it's SQL. Today I discovered that:
joinedSc.NullableBoolProperty != true
Is executed as:
cast(as bit) <> [Extent1].[NullableBoolProperty]
When in fact it should be (depending on your database settings):
[Extent1].[NullableBoolProperty] is not null  
or cast(as bit) <> [Extent1].[NullableBoolProperty]
Well done Microsoft!