SelfLinux Einleitung Die Kathedrale und der Basar Abschnitt 5 | SelfLinux-0.13.0

| Die Kathedrale und der Basar | Autor Formatierung OPL

#### 5 Wann ist eine Rose keine Rose?

Nach dem Befassen mit Linus' Verhalten und dem Entwickeln einer Theorie darüber, warum es so erfolgreich ist, traf ich eine bewusste Entscheidung, um diese Theorie an meinem neuen (und zugegebenermaßen weniger komplexen und weniger ehrgeizigen) Projekt zu testen.

Das erste, was ich aber machte, war, popclient zu vereinfachen und zu reorganisieren. Carl Harris' Implementation war robust und solide, zeigte aber eine Art von unnötiger Kompliziertheit, die für viele C-Programmierer charakteristisch ist. Für ihn war der Code das Zentrale, und die Datenstrukturen waren die Unterstützung für den Code. Das führte zu sehr schön gestaltetem Code, aber zu sehr improvisierten und unansehnlichen Datenstrukturen (wenigstens nach den hohen Standards dieses alten LISP-Hackers).

Neben dieser Verbesserung des Designs hatte ich aber noch einen anderen Nutzen im Auge, als ich den Code umschrieb. Die erste tief greifende Umstellung war, dass ich Unterstützung für IMAP einbaute. Ich schrieb die Protokoll-Automaten in einen generischen Treiber plus drei Tabellen mit Methoden um (jeweils eine für POP2, POP3 und IMAP). Diese und die vorhergehenden Änderungen illustrieren ein allgemeines Prinzip, das Programmierer im Auge behalten sollten, speziell bei Sprachen, die dynamisches Typisieren nicht von Haus aus unterstützen:

> 9. Smarte Datenstrukturen und dummer Code funktionieren viel besser als umgekehrt.

Brooks, Kapitel 9: Also zeige mir Deinen [Code], aber verhülle Deine [Datenstrukturen], und ich werde auf ewig im Dunkeln tappen. Zeige mir aber Deine [Datenstrukturen] und ich werde Deinen [Code] gar nicht brauchen, denn ich weiß, wie er aussieht.

Eigentlich redete er von Flussdiagrammen und Tabellen, aber unter Beachtung der dreißig Jahre, die seither vergangen sind, ist die kleine Anpassung zulässig.

Zu diesem Zeitpunkt (Anfang September 1996, sechs Wochen nach der Stunde 0 des Projekts), dachte ich, dass eine Namensänderung angebracht sei -- immerhin war das Programm kein reiner POP-Klient mehr. Ich zögerte aber, weil es noch keine wirklich neuen Erweiterungen im Design gab. Meine Fassung von popclient musste erst eine eigene Identität entwickeln.

Das änderte sich aber, und zwar radikal, als fetchmail lernte, wie man abgeholte Mail an das SMTP-Port weiterreicht. Ich werde das gleich näher erläutern, vorher aber noch Folgendes: Ich habe meine Entscheidung schon erwähnt, dieses Projekt als Test für meine Hypothese zu verwenden, die ich mir über Linus Torvalds' Erfolg gebildet hatte. Was genau bedeutet das? Die Frage ist berechtigt, hier also, was ich tat:

1. Ich veröffentlichte früh und häufig Freigaben (fast immer wenigstens alle zehn Tage; während der Zeiten intensiver Entwicklung eine pro Tag).
2. Ich fügte meiner wachsenden Beta-Liste jeden hinzu, der mich zu fetchmail kontaktierte.
3. Ich verschickte ausführliche und in lockerem Tonfall gehaltene Ankündigungen, wann immer ich eine Freigabe machte, und ermunterte meine Leute, am Prozess teilzuhaben.
4. Ich hörte auf meine Betatester und befragte sie regelmäßig zu Design-Entscheidungen und lobte sie wann immer sie Patches oder Anregungen lieferten.

Diese simplen Maßnahmen zahlten sich unmittelbar aus. Vom Anfang des Projekts an bekam ich Bugreports von einer Qualität, für die die meisten Entwickler alles und ihren linken Arm hergeben würden; oft waren auch gute Korrekturen beigelegt. Ich bekam konstruktive Kritik zu hören, Fanpost und wohldurchdachte Anregungen für neue Features. Das führt uns zu:

> 10. Wenn man seine Betatester wie die wertvollste Ressource behandelt, werden sie als Reaktion darauf zur wertvollsten Ressource werden.

Eine interessante Maßnahme hinter fetchmails Erfolg ist die schiere Größe der Beta-Liste, die fetchmail-friends. Im Augenblick der Abfassung dieses Textes enthält sie 249 Mitglieder und wächst jede Woche um zwei oder drei.

Tatsächlich ist die Liste zum Zeitpunkt der Überarbeitung im Mai 1997 von einem Zenit von 300 wieder geschrumpft, und das aus einem interessanten Grund. Mehrere Leute haben mich gebeten, sie von der Liste zu nehmen, weil fetchmail so gut funktioniert, dass es für sie keine Veranlassung mehr gibt, am Gedankenaustausch teilzunehmen! Dies ist vielleicht ein für reife Basar-artige Projekte normaler Lebensabschnitt.