Open source's lessons from userspace

Open source has proved the power of its community. Now it must open channels, technical and cultural, to other communities if it is to fulfil its potential

Where is the Open Source Usability Experts Group? When you've got your database specialist, your glue logic guy and your OS expert together, where's the person who knows how real non-technical people react to software design? There are innovations begging to be made here through the cross-pollination of usability and software engineering, but open source is dominated by the hacker mentality to the extent that it is often a matter of pride to create a new interface purely to be different. Yet open source should attract better thinkers and provide better channels for them to communicate ideas that can harness the experiences and intelligence of all concerned, instead of creating bland, me-too products.

Take the OpenOffice spreadsheet. Calc is a competent enough implementation of an idea that has been around for more than twenty five years — and that at heart has not absorbed any of the advances in thinking about data structures since that time. Spreadsheets go wrong all the time because while people think about data as sets linked by function, the spreadsheet thinks about data as sets linked by map references. Once the references get out of sync with the function — you extend a range without updating range references — a whole host of common, frustrating and difficult to debug errors appear. Yes, it's possible to add better ideas about structure to a spreadsheet; and yes, usability researchers have been looking at doing just that. But where is the interaction between the open source developers and the usability experts that will make the most of the advantages inherent in the community-oriented development environment?

There is lots of potential here to design better products in the future without having a multi-billion R&D lab. There's also as much potential — and a more immediate need — to improve the working environment as it is now. By far the biggest, easiest usability fix would be to take note of two mechanisms Microsoft has put in place — both of which threaten to neutralise some of open source's biggest advantages by making real improvements to the way the Microsoft environment adjusts and improves itself over time.

Auto-update is the most obvious. A recent Firefox security scare was fixed in 48 hours with a version upgrade, while Microsoft users are left hanging until the right time of the month. Open source can and does respond rapidly and accurately to important support problems. But in two months time, how many Firefox users will have upgraded to the new version? I will and you will have, but the ten people I've given Firefox to will not. Microsoft's auto-update means that open source's speed is not being converted into coverage, and that's more important

Microsoft is way ahead in another intensely practicable matter, the reporting of bugs. When a Windows application goes wrong, there is an effective automatic process that scoops up the wreckage and parcels it off for forensic analysis while providing a link into Microsoft's database of bug fixes and suggestions. That's a three-way win: the user gets targeted help automatically delivered, Microsoft gets a constantly updated insight into problem areas, and application and driver writers get rapid feedback on individual bugs together with a channel through which to deploy a fix. These are solid advantages.

There have been efforts at automatic bug reporting in open source, but they've been tied to particular distros. To get maximum advantage from such ideas, the community should decide upon a common way of detecting problems, describing them and the machine state, and then filing them in a public database. Once that's done, the same mechanism can be easily adapted to add further functionality such as suggestion boxes — after all, a bug ain't nothing but a feature miscoded. As with updates and bug reports, the problem isn't that there are no mechanisms to make suggestions for improvements but that these are non-standard and difficult — sometimes positively unwelcome — for the lay user.

Open source has a great advantage over proprietary software here. All of the above ideas work better the more widely they are adopted, leading to the ideal of a common system that can be included in all new software at minimal or no extra costs of any sort to the developers. You can do that with open source: proprietary systems, with their legal and practical barriers to sharing good ideas among each other, are at a huge disadvantage. Microsoft is circumventing this by making exception reporting an operating system function, but can't easily extend that mechanism to non-critical issues. With open source, such questions are much more tractable.

Open source has been quick to embrace the talents of software developers, innovative thinkers and of late the sort of expertise needed to prosper in a hostile, well-funded legal jungle. But it must take the lessons learned in coming this far and discover the motivation and means to reach out to other communities: experts who don't necessarily cut code but know things that open source needs to know. The biggest such collection of experts is the user base. It's time for the open source community to take advantage of that fact.