Wed 02 Nov 2005 05:32:35 PM PST
Usability and transaction costs
This is not a D00D I RUN LINUX AND I JUST USED M$ WINDOZE AGAIN AND IT SUX0RZ!!! post. But I did take a couple notes on two Microsoft Windows XP systems I dealt with recently and they made me think about something that's actually pretty encouraging from a freedom-loving point of view.
First of all, not having used Windows for a few versions I did get a sense of the "more polished interface" thing. Some stuff that's often clunky or counterintuitive in other environments is well thought-out and "doesn't make you think" in Windows XP. For example, Windows XP does have excellent UI around having more than one user logged in at a time. You can easily walk away from your session and leave all your apps running, let another user do some work, then come back to it. I know you can do that under Linux/X—for a while I was regularly doing this on my desktop machine with another user—and I don't know how well the sessions on Windows platform handle tweaky things like recording audio in your session while another user is using the screen, I'm just saying that the process for leaving your session without logging out is handled well, and it's a good example of the kinds of things that I was impressed with.
So with the technical and design aspects of usability tweaked within an inch of their lives, where's the new low-hanging fruit? What did I spend the most time on?
The first Windows XP box has two software update services on it—one for the virus checker and one for the OS. Both put me through a setup process, and both seem to be able to demand attention in the future. Each individual one is easy, it's just that there are two of them, and you have to click OK to two separate business relationships. If you had a Free Software virus checker, whoever manages your updates for the OS could also manage the virus checker updates. See ClamAV and Debian.
I'm not saying that anyone on the Free side handles this issue perfectly now, just that Free license terms and cooperation norms give you the basis for a transaction-cost-free solution that doesn't require a decision by the end user.
(I put Firefox on that system too, and same thing. Yet Another Update Service, one more thing to think about. But I shouldn't count this; "just use the browser that comes with the system" seems to be an acceptable solution for most users.)
The second box is a more puzzling case. Both the hardware vendor and the OS vendor decided to install WiFi management utilities, and they decide to fight it out, at least in the unusual case of trying to connect through a certain firewall box that has a balky DHCP server. I don't have the expertise on the Microsoft platform to track down why the hardware vendor's wireless manager decides to try to take over from the OS vendor's wireless manager, or vice versa, or how to pick one to run and permanently shut the other one up. The system's owner will probably end up having to call support and work through this. (I'm avoiding mentioning relevant brand names here so that this post won't turn up in a web search for this issue, since I don't have an answer for it.)
On the Free side, we have package management that should keep conflicting utilities from being installed. Not that NetworkManager is perfect yet, but we have the language for talking about this kind of problem and ways to apply policy to prevent it. (While I'm thinking happy thoughts about people who make the world a better place by contributing to NetworkManager, bonus link! "use simple, cute macros to harness the power of the GCC extensions")
Of course, an alternate answer to the problem of usability and transaction costs is to go all-Microsoft, all the time, for all software on the box. That has worked for other chunks of software. Most Windows users' lives probably did get easier when Trumpet Winsock, Netscape Navigator, Qualcomm Eudora, and RealAudio vanished from their personal information spaces, replaced by Microsoft's bundled competitors. I know Microsoft is planning to do its own virus checker, and even though it might be a conflict of interest in a way, it would cut down the number of update services users have to subscribe to, so it's fundamentally a good usability move.
So I'm wondering if, since much of the remaining problem of usability seems to be in dealing with transaction costs, does that squeeze out the old idea of a "platform" with independently developed proprietary chunks on top of a proprietary but documented OS? Does taking the next step in usability mean you'll be dealing either with one vendor, one EULA, for everything, or subscribing to a service (or joining an organization) that integrates and delivers Free packages to you?
On a related subject, the self-styled "cosmonaut playboy international love rat of mystery" answers the question, What about binary compatibility between distributions?
The more I think about the usability consequences of that, the more I'm reminded of what Joel Spolsky wrote about Raymond Chen and his team's modifications to Microsoft Windows to support apps that "do bad things or use undocumented functions or rely on buggy behavior that happens to be buggy in Windows n but is no longer buggy in Windows n+1."
Does every release of your software also have to be a version n-1 emulation environment? If I got "Disintermediate development. Reintermediate deployment." T-shirts printed up would anyone besides me wear them?