Thursday, February 26, 2009

You Can't Please Anyone

Occasionally we make changes to Pidgin which displease some subset of our users. For an example, I'll give a brief history lesson.

We released a series of six betas leading up to our name change to Pidgin. In our first beta, 2.0.0beta1, we introduced the concept of the status selector. At this time it was a rather crude creation; it simply mashed a few widgets together to accomplish the basic tasak. When we introduced this status UI, we also introduced the concept of two ways to handle status messages. The first, and most obvious, way to handle status messages was to present a text box when selecting a basic status from the status selector in which to enter the status message. The other method was a bit more complex but significantly more powerful--this was the saved statuses feature accessible from the "Saved statuses..." entry in the status selector's menu.

When we first inroduced this UI, the behavior of the text box was to retain the status message whenever the status changed from, for example, available to away or from away to available. A number of people, myself included, were not happy with this. Eventually we changed the behavior to clear the message on status change. This displeased another group of users. Now here we are, two years later. We changed back to retaining the status message on status changes pursuant to a discussion on the development mailing list. Again, we've displeased a group of users.

The problem with this particular change is that both behaviors are valid, and fans of each behavior think their preferred behavior is the only correct behavior. Of course, now that we acknowledge that both behaviors are valid, many users' first reaction would be to say "Make it a preference!" Of course, that's a whole new argument in itself, but this is such a minor feature that it's not important enough to warrant a preference.

Note that the people who don't like the retention of the status message are inconvenienced by a single keystroke if the intended result is to clear the message, and not inconvenienced at all if the intention is to use a new message. This inconvenience, or lack thereof, is because we chose to implement the retention such that the retained message is highlighted. This means that simply hitting backspace will clear the message and typing an entirely new message will replace the message text with what you've typed.

Simply put, this change is just further proof that when you're involved in a project of any significance, you're damned if you do and damned if you don't, no matter what you do or don't.

I'm sure this post will inspire some criticism. For the time being, though, I think it's best if we ride this wave of criticism out for a bit and see if this is simply resistance to change or a genuine "problem."