Skip to main content

Case study of a delightful customer/user experience -

Warning - this is a somewhat technical post about software development and stuff...but most importantly (to me at least), about user experience...

Case study of a great user experience -

I'm in the process of developing a proof-of-concept (POC) for the migration of an important revision control database from Microsoft Visual Source Safe to Microsoft Team Foundation Server (2010/2012). Fortunately I have found a new (free!) tool from Microsoft that claims to automate the migration process; I started a trial run yesterday afternoon.

After the tool had been running a couple of hours (I had no idea how long the process would take) - at about 6:00pm - I decided that I could not be shagged waiting around anymore for this process to complete; I had a touch rugby game to go to and play with my son, the light was fading and the process was still running, and thus elected to shut the trial migration off early by putting my laptop into hibernation. This would usually be a death sentence for a transactional process in-progress. I expected this would be the case and thus committed myself to starting early in the morning to restart the process and finish things off - no big deal.

So, this-morning I bring my computer out of hibernation and to my pleasant surprise, rather than seeing a message saying "Oops! It looks like your migration process has shat itself - would you like to start again?" I get this:

Sure enough, after what is presumably 101 seconds, the migration process continues without a hitch (it's still chugging away as I write this post). It's taken me about as long to write this post as it would have to set the migration up again (OK, perhaps a little longer!) - and I'm in at work early, so I guess we're square...

The moral of the story...? 

Over time (pretty quick actually, probably by the end of the year) the relevance of this tool will fade and it's purpose will be forgotten. This particular part of the experience that the tool delivered though, will take far longer to fade - this experience has certainly raised the esteem of the Microsoft corporation - at least in my mind. And, it also inspires me - as a product designer/developer - to aspire to and develop better customer experiences.

Recently I have learned of and studied material relating to the Kano Model, which provides a tool for measurement and classification of customer/user experience in relation to product features. The following diagram visualises the essence of the model:

["The Kano Model" - source:]

The experience provided by the aforementioned tool for me, was something resembling an "excitement attribute". I expected that the tool the not survive the hibernation process - after-all  why should it? Any reasonable engineer would whinge and moan, but would diligently wait for the process to complete before shutting it's environment down - hence, my expectation that when I did callously shut the environment down, the migration process would crash.

To my surprise and delight though, someone along the way of the product design process thought about the possibility of this sort of "interruption" happening and made the tool robust enough to be able to cope with it.

Well done!

For the techies -

The tool that I'm using to do this migration is discussed here:
The download link for the tool is here:

Some other links:

Revision control:
A neat blog post about the Kano model:


Have fun!


Popular posts from this blog

HOW-TO: Apply a “baseless merge” in Team Foundation Server 2010 (and 2012)

Another purely technical post on TFS...
The scenario We wish to migrate code between branches that do not have a branch/merge relationship, in order to expedite urgent changes being made by a project team, without disrupting on-going BAU development work. Sample branch hierachy/strategy Imagine the following branching strategy in TFS (visible by connecting to TFS via Visual Studio 2010 or 2012):

Essentially you have a "DEV" branch, which has a "QA" branch, which in turn has a "PROD" branch. DEV is the branch that you would be using for BAU development. As a piece of development matures, you move it into QA, where it is tested by your internal QA team. There may be further changes made in DEV that are moved into the QA branch as the QA team pick up issues. Once the QA team are happy with a packaged of changes, they will move them into PROD, which is essentially the hand-over to the customer. The PROD branch represents the software that the customer has.


HOW-TO: Add/edit a field in Team Foundation Server 2012 using Visual Studio 2012

It's been a while since I made a purely technical post...

So, today I wanted to make a change to a Microsoft Team Foundation Server 2012 (TFS2012) instance that I am working with to reflect "Actual" time spent on a task - mainly for reporting purposes, and because I have found in the past that making this minor process adjustment yields a relatively useful metric over the long-term.

I am using the Microsoft Scrum 2.1 Process Template ( for a project that I am working with. So that I don't forget how to do this (again!) I will blog-post the procedure I've used to add this field to the template as a screen-shot-based tutorial, as follows...
Before Assuming you are familiar with the Scrum Process Template (2.1-ish) - open a task and take a look at the "Details" section, as follows:

 This is where I want my "Actual" field to show up.
Get the Power Tools Download and install the latest v…

Eclipse/Android error: "Multiple dex files define [...]"

Wow, I am really going nuts blogging this-evening - 2nd post in less than an hour. 

Anyway this is a particularly nasty error that I keep running into with Eclipse/Android when starting the emulator after I have not run it for a little while. Since I run the risk of permanently forgetting the solution to the problem every time I walk away from my Android project (and thus having to spend a painful hour-or-so digging up the procedure again), I will blog it here, for my benefit, and for the benefit of anyone who may also suffer the same problem.

The gist is that when you start the emulator in debug mode (that is, you hit the button in the following image), you get the following error message come out on the console and a nasty popup telling you nothing more than there is an error with your program and you need to fix it:

[2012-04-06 23:20:57 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/google/gson/ExclusionStrategy;
[2012-04-06 23:20:57 - SimpleList] Conversion to Dal…