LWN.net Weekly Edition for August 22, 2002
The hard side of the Bazaar
The "Bazaar" style of project management, as described by Eric Raymond and typified by the Linux kernel development model, is undoubtedly effective at producing quality software, at least in some situations. It can also, however, be a harsh environment in which to operate, as demonstrated by events in the kernel community over the 2.5 series, and especially over the last week.Readers of the LWN.net weekly Kernel Page will have been following the development of the IDE/ATA layer in the 2.5 series for some time. For the rest, here is some quick background to provide context for the rest.
The IDE layer, of course, is the low-level code that handles the disk (and CD) drives found on most Linux systems. This code operates under a number of serious constraints. It must be fast - able to drive the hardware at its maximum speed; the performance of a Linux system as a whole is highly dependent on how fast its disks can go. It also must be absolutely correct; users get grumpy when their data is lost or corrupted. And it must deal with a wide variety of, um, "inexpensive" hardware that does not always behave as the documentation and standards say it should. Hacking on the IDE subsystem is not for the faint of heart.
In recent times the IDE maintainer has been Andre Hedrick. Andre has had numerous communication problems with Linus (and others) which have made it difficult for him to get patches into the kernel. It is also fashionable in certain quarters to criticize the quality of Andre's code. But, it should be said: Andre's IDE layer has proved, over time, to be rigidly standards compliant and highly reliable.
Andre's inability to get patches into the kernel left a void in the 2.5 series, however. That void was filled by Marcin Dalecki, who started posting his "IDE cleanup" patches back in February. The "cleanups" began to look increasingly like a complete rework (and hostile takeover) of the IDE code, and, with IDE 18, Marcin put his name into the MAINTAINERS file.
Marcin's work has been controversial all along - especially after he
started removing features that people were using, and when the IDE layer
started breaking for some users. His approach was not subtle, and he
seemed untroubled by the concerns of the other Linux kernel hackers. After
all, said
Marcin, "Breakage is the price you have to pay for
advancements.
"
Linus, for the most part, seemed to agree; he merged almost every patch from Marcin through IDE 115, posted on August 9.
All this changed on August 16, when Linus, without fanfare, deleted the entire 2.5 IDE subsystem and replaced it with the "foreport" of the 2.4 IDE layer, done by Jens Axboe and others. The word from Linus is that Marcin got tired of all the criticism and quit; Marcin, himself, has been silent since then. It is telling, though, that Linus responded by simply deleting and replacing the entire body of 2.5 IDE work, rather than trying to find somebody who would continue that task. Either Linus came to agree with other kernel hackers about the quality of the reworked IDE code, or he concluded that nobody else would be willing to work with that code.
The end result is that six months worth of Marcin's work, in the form of 115 IDE patches, has just been dumped into the bit bucket.
And that is an example of the harsh side of participating in the kernel bazaar. One can work for months, see that work apparently accepted, then have it vanish in a moment. Linus has said numerous times that the doesn't much care about the feelings of kernel hackers; he is far more concerned about the quality of the code. This approach may well be part of why Linus is a good manager for Linux development - in the end, the code quality must remain high or the whole thing will collapse under its own weight. But it also explains why kernel hackers occasionally get frustrated and leave the kernel development community. The bazaar can be fun and effective, but it's not always nice.
The GNOME Human Interface Guidlines
The GNOME project has announced the release of version 1.0 of the GNOME Human Interface Guidelines (HIG). The HIG is, according to the announcement:
Leaving aside the hype, some examination of this 130-page document shows that it is, indeed, an impressive piece of work. The HIG examines many aspects of the usability of graphical applications, from window layouts, color selections, icon design, etc. through to things like how to label menu entries. A simple example of the sort of work that has been done:
Like many things in the usability arena, this conclusion seems obvious - in retrospect.
Even after years of human factors research, creating highly usable applications still requires a great deal of plain hard work. Application designers are often blind to things they do that confuse their users. Creation of the best desktop applications available requires more than just great hacking; it requires serious attention to all of the little things that make those applications really work for the people who will use them. The HIG, thus, is a great contribution to the free software community, in that it will help to focus and guide that attention.
The HIG is also the sort of work that free software developers are not supposed to be good at. What self-respecting, ego-driven, itch-scratching free software hacker is going to bother with human factors research, after all? Such claims have been increasingly hard to defend for some time; the HIG is just one more example of what the free software community is really capable of.
One other quote from the announcement is worth a look:
A true gesture toward cooperation could certainly have been done in a less public and challenging way. It is true, though, that the creation of a common interface document could be a good way for the two projects to work together. The creation of a more consistent desktop environment across the two projects would help both - as would a more formal approach to human factors in general. And both projects could join this work while maintaining their own code bases. It's worth some thought.
The obligatory LWN status update
There is not a whole lot to report this week with regard to LWN's status and life expectancy. We are still in "discussions" with our credit card clearing company. We are still hacking on the subscription code (it's mostly complete) but are not sure if we will be able to accept credit cards to pay for those subscriptions. Hopefully all of this will settle out before too long. Meanwhile, we're doing what we can to continue to produce the best news available for the Linux and free software community. Thanks, as always, for your continuing support.
Page editor: Jonathan Corbet
Inside this week's LWN.net Weekly Edition
- Security: Konqueror and digital certificates
- Kernel: IDE: what now?; hastening thread death; how random is random enough?
- Distributions: Lycoris and Ericom Software Announce Desktop/LX InterConnect; New distributions: a-Linux, ThizLinux, and xbox-linux
- Development: libsndfile 1.0.0, ALSA 0.3.0rc3, MySQL 3.23.52, Bogofilter 0.2, AFPL Ghostscript 7.22, WaveSurfer 1.4.3, Legasynth 0.4.1, Mozilla 1.0.1rc and 1.1rc, KDE 3.0.3, GNOME 2.0.1, Pygame 1.5.2, GIMP 1.3.8, GnuCash 1.6.7, LyX 1.2.1, Objective Caml 3.06, OpenMCL 0.13.
- Commerce: August 2002 Netcraft Web Server Survey; LinuxWorld winners, Trolltech, CodeWeavers, and more.
- Press: LinuxWorld coverage, Embedded Linux Platform Spec, Turbolinux sells Linux business, Linux is saving money for more businesses.
- Announcements: Bugzilla history, OpenOffice Developer's Guide CFP, AUUG Student Day, FLOSS report, We Want Linux, TPJ RIP, AFPL bug contest, Zope Community Awards.
- Letters: RAND, DMCA