A few days ago, I got a link to a post on Software Performance, which touches on a specific topic that is of interest to me.

I use a lot of products that spend time trying to optimize the "first use" case, so it's a straightforward as possible. Which is good.

What I don't see is those products trying to optimize the second use, the third use, etc. - very few products learn from what I asked them to do and provide reasonable defaults. Even fewer ask me questions up front about how I want to do the process to make my life easier.

I'll pick on the picture import wizard in XP. I plug in my smart card adapter, the wizard starts up, and I have to walk through the same set of tasks every time, where what I'd really like to do is have one big button that says, "Do what I did last time".

Why do products do so poorly at this? I think it's because they are generally optimized so that the demo scenario seems as simple as possible. In the extreme case this can result in "demo-ware" - software that demos really nicely but is actually kind of hard to use in the real world.