Somebody sent me this link today to a page that describes some problems the Debian team is having with the release schedule for their new Linux distribution. It seems that they’re having trouble creating reliable boot floppies. Boot floppies? My first response was “is this a joke?” Apparently it isn’t. As the follow-up messages indicate, this is a real issue, and the question is: “Why?”
A couple of posters spout the silly B.S. that the problem is the “rampant idealism” of the Debian team: “Debian developers insisting that it be done ‘right.'” “Debian is not driven by marketing-created illusions like ‘release deadlines’.” Whereas the lack of a release deadline is fact, I doubt very seriously that it’s the cause of the problem. Much the reverse, I suspect: there’s no release deadline because the developers can’t say with any confidence when they’ll be able to make the thing work. And the reason for that is, as one poster put it:
I think a large part of it is that the installer is extremely fragile — either because it runs in a very unusual environment and performs a lot of low-level tricks to do so, because its code is simply not robust, or both. It seems to break whenever anything else in the base system changes — and pretty much everything there changes in each release, including this one.
Another poster points out the obvious: the installer (which makes up a large portion of what goes onto the boot floppies) isn’t used and tested on a regular basis like other packages are. The installer only gets tested when release time comes around. By then, of course, so many things have changed that the underlying assumptions upon which the installer is built have changed. The implication is that testing, not development, is the problem. In his final paragraph, he suggests making the installer simpler in order to “insulate it from a poor testing regime.” As if testing is the problem.
When are programmers going to learn that testing is their job? A programmer’s task isn’t finished until he has tested his code in all supported environments. Volunteer or not, if you accept the task of writing code, then you also incur the responsibility of testing it. Anybody who thinks he’s too good for testing is simply a spoiled brat, and not much of a programmer. Any marginally bright person can bang out almost-working code all day.