Just Because You Can Do a Thing, Does not Mean You Should Do a Thing

Microsoft Test Manager 2010 (MTM), the testing and lab management tool extension to Microsoft’s ALM product – Team Foundation Server 2010, is perhaps an example of bad user interface design.  I find the look and feel to be somewhat foreign to user’s familar with Visual Studio but also arguably anything else that Microsoft has made historically.

NewImage

One of my personal pet hates is nested tabbed windows.  I know Mr Cooper (the author of the fine About Face series of books) has covered these types of bad habits before. I find such a GUI style leads to me ultimately getting lost in nested windows.  It’s very difficult to discover or locate functionality.

Microsoft Test Manager excels at not only nested tabbed windows that makes using this tool difficult, but also because it attempts to realise an inductive user interface design (an oxymoron with nested tabs) and fails.

Is that a Title Bar or a Menu?

I was reading an article somewhere on the net when someone mentioned Microsoft Lab Manager – an included tool with Test Manager. Apparently this tool was for running tests on applications particularly those running in virtual machines.  Lab Manager? Where was that? I’d not seen it.  I looked at Test Manager again, here is the upper left of the window:

NewImage

Well nothing conspicuous there, some navigation buttons and a window title…or was it? Lets expand out the view:

NewImage

I’d never noticed that inverted triangle widget between “Testing Center” and “Plan“, clicking on it displays a drop-down for the Lab:

NewImage

Clicking on it makes the application switch to the Lab Center.  Now this brakes several important rules about GUI design.

  1. Menus should never be bang menus – that is they should not act like buttons
  2. All buttons should be captioned with verbs not captioned with the current state.  Many people fall into this trap with single toggle buttons that toggle application state but also toggle the label with “Started” when the application is in a running state; “Stopped” when. This “Testing Center” widget here is in effect a toggle button that is displaying state. Instead it should be a menu that says “Mode” with a good old-fashing ticked “Testing Center” or “Lab Center” as appropriate.  Just like clicking “Start” to shutdown windows, clicking “Testing Center” to switch to “Lab Center” makes no sense
  3. It is not immediately apparent that this is a clickable widget to begin with. Silly people like me mistake it for a window’s title. The inverted triangle should be closer

Lab mode looks like this, I particularly liked how it suddenly seemed empathic towards me by turning green. And no, it wasn’t the result of “envy”.

NewImage

It is perhaps an amateurish piece of software, design-wise at least; I wouldn’t be surprised it was designed by upstart, Windows Presentation Foundation (WPF) developers with little or no design experience.  It’s like:

“…hey! we have this kewl new WPF tech. let’s put it in the testing suite of TFS 2010…”.

This is arguably a formula for a disaster.  Just because you can do a thing does not mean you should.  Take Windows Phone 7. It was done in Silverlight with the XNA team but they forgot some of the most important things in a smartphone such as the ability to copy and paste.  Amateurs.  I pitty the ex PocketPC and Phone Mobile 6 developers at Microsoft.

Another dreadful feature of Test Manager is that of course you can not for the most part look, edit or review items that are defined in Lab mode or vice versa – you must switch modes first.

Oh did I mention there are no popup windows either?  Too bad if you need to look at two things at once.

Amateurish!

 

Continuous Deployment in Team Foundation Server 2010 – It Doesn’t “Just Work”

I finally got TFS to deploy my app via a custom TFS build workflow definition to a test environment running in Hyper-V.  It took me about three days to get it going.  I’m yet to know if its all worth it in the end.  Some serious cons I encountered along the way one being that its considerably more difficult to link to TFS “HQ” should your VM not be in the same domain.  Why does MS insist in using NTLM all the flippin time is beyond me.  A test environment will not necessarily have anything of importance we would arguably want secret from the world and locking it up is questionable.

Also placing a VM machine on the domain with machine names generated by Lab Manager with half a GUID in them is sure to annoy the Infrastructure guys sitting near me.  I already had to duck the squash rackets being thrown at me when I mentioned that we need SharePoint 2010 for artefact storage for our ALM projects.  Just kidding guys 😉

The need to deploy Lab, Test and Build agents and all the baggage they come with – just about all the prerequisites for our software!  Just to enable the feature of “‘copying code from the build server to the VM” requires TFS build components on the VM. Ugh. Talk about code bloat.    Well I suppose it saves us having to worry about our product installers having to do it.

A colleague at work once said to me he likes the tools that are “xcopy”-able and don’t install services to minimise the impact on the system.  After looking at TFS CD I can see the wisdom of his statement for TFS is far from it.

Needless to say it required multiple creation and tear downs  of Hyper-V environments. Microsoft System Center Virtual Machine Manager must be the most buggiest piece of excrement to come along since oh Office 2010. VMM can’t even handle me renaming an ISO in the library.  Why does it copy by default anyway. Seems inefficient to me. SCVMM takes ages to realise that I shutdown the VM in Hyper-V Console.  An obvious embarrassment for Microsoft when you consider that such a tool is designed to be used in large scale IT deployments.  And what’s that black bar each time I right-click in the window?  I think it’s a shy context menu who wants to remain hidden.

I don’t think we’ll be leaving VMWare non too soon.

Just like SharePoint 2010, TFS continuous deployment is just as tedious and overly complex to setup.  Reminds me of all the Oracle stories.

This is as far from “it just works” as you can get.