Step into your customer's shoes - Posted by Avi
Many of the tools we write are used by the DevDiv Build Lab to get their job done. Cranking out 50-100 builds per night takes more than just a few fast servers, a great staff, and lots of alcohol (kidding! ). There's only so many things you can keep an eye on at once; hence the need for specialized tools for monitoring, managing, etc.
The problem we get into is that these tools have been in use by many people for a long period of time, and they are very much in maintenance mode. This often causes people - both the users and the developers - to get into a mode of "It's not broken, it's just how it is..."
Recently the web dev team tried an old experiment that never seems to fail: "Builder for a Day". Basically, each dev visits with the lab for a shift (or even just an hour during a critical time) and shadows them like a hawk (do hawks shadow? Maybe I'm thinking of ghosts). The idea is to spot things that the customers are doing with our tools which to them is just "How it's done", but to us reveals holes in the tools.
We found many interesting things; issues which the customers were taking for granted (eg; this page is slow, it's just how it is), but which we see as real problems - especially when multiplied by many users over many days.
It's amazing how much information you can gain by watching your users even for a few minutes. People have a hard time noticing their pain points (which is counterintuitive), and they have a difficult time communicating them - often, they don't want to seem like they're complaining about insignificant issues that they can work around.
I highly recommend this to anyone who writes software.