Eating your own dogfood, in a way that matters..
The most important thing is that I've found a lot of inspiration on how to do things better, and noticed little nits that are hard to fix after the fact. These nits are usually easy to work around if you can identify them before you start the project. The end result is a more usable and robust application. On my list of things that make better applications, this is right under mandating styleguides.
I've been thinking to employ it in a more productive setting, and once a day completing some random task that users routinely do. A simple recording mechanism to figure out what things suck and what things should be looked at as positive examples.
If you ask that the developers in your team start their morning out by spending 5 minutes (no more!) on your product to do some atomic thing that a typical user will do, you'll get the best feedback around. It is a very simple task, and is a good "welcome to work" warmup routine.
I was thinking that it'd be great to randomize featuresets, then assign them (otherwise the act of thinking what to do would consume 4.5 of the 5 minutes). After completion, a very quick questionnaire with just some sliders going from "Bad" to "Good". Usability, clarity, efficiency. That's what you care about. Reporting is easy, and again, the rating should take 30 seconds, tops.
You're not going to make all users happy, but I really think that the reason why software gets convoluted and difficult to use is that so few developers go back and look at what they have built. If, after several months, a developer still remembers the nuanced details for each step it won't have much impact. The real impact will be doing things they've never done before (written by someone else) or that they've forgotten.
Comments