Kommunikation
Die Fähigkeit klar zu schreiben ist vielleicht die Wichtigste, die
man in einer Open-Source-Umgebung haben kann. Auf lange Sicht ist sie
sogar wichtiger als Programmierbegabung. Ein sehr guter Programmierer
mit schlechten Kommunikationsfähigkeiten kann nur eines nach dem
anderen erledigen, und hat selbst dann vielleicht Schwierigkeiten,
andere zu überzeugen. Ein schlechter Programmierer, der aber gut
kommuniziert, kann viele Leute koordinieren und überzeugen, viele
verschiedene Dinge zu machen , und hat dadurch einen wesentlichen Einfluss
auf die Richtung und Dynamik des Projekts.
Es scheint keinen großen Zusammenhang zu geben, in die eine oder andere
Richtung, zwischen der Fähigkeit guten Code zu schreiben und der
Fähigkeit mit seinen Mitmenschen zu kommunizieren. Es gibt einen
gewissen Zusammenhang zwischen der Fähigkeit zu Programmieren und
technische Angelegenheiten gut zu beschreiben, aber das ist nur ein
winziger Teil der Kommunikation in einem Projekt. Viel wichtiger ist
die Fähigkeit mit seinem Publikum einfühlsam umzugehen, seine
Nachrichten und Kommentare aus der Sicht anderer zu sehen, und andere
dazu zu bringen ihre eigene Nachrichten mit einer ähnlichen
Objektivität zu sehen. Gleichermaßen ist es wichtig zu bemerken, wenn
ein bestimmtes Nachrichtenmedium oder eine Kommunikationsmethode nicht
mehr gut funktioniert, vielleicht weil es nicht mit einer zunehmenden
Anzahl an Nutzern skaliert, und sich dann die Zeit zu nehmen dagegen
etwas zu tun.
Hiervon ist alles in der Theorie offensichtlich – was in
der Praxis schwierig macht, ist dass in Umgebungen der Entwicklung
freier Software eine verblüffend viele verschiedene Mechanismen gibt,
sowohl was das Publikum angeht als auch bei der Kommunikation. Soll
eine gegebener Gedanke in einer E-Mail an den Verteiler verfasst
werden, als Anmerkung in dem Bugtracker oder als Kommentar in dem
Quellcode? Wenn man eine Frage in einem öffentlichem Forum
beantwortet, wie viel Wissen kann man von "dem Lesenden" erwarten,
vor dem Hintergrund das derjenige der die Frage gestellt hat nicht
der einzige ist der die Rückmeldung lesen könnte? Wie können die
Entwickler eine konstruktive Verbindung mit den Nutzern aufrecht
erhalten, ohne von Anfragen für Funktionen, fälschliche Bug-Meldungen,
und allgemeinem Geschwätz überschwemmt zu werden? Woran kann man
erkennen, wann ein Medium die Grenzen seiner Kapazität erreicht hat,
und was man dagegen machen kann?
Lösungen zu diesen Problemen sind für gewöhnlich nur Teillösungen,
da jede bestimmte Lösung letztendlich durch Wachstum oder Änderungen
an der Struktur des Projekts obsolet gemacht werden kann. Sie sind oftmals
auch ad hoc, da sie improvisierte
Reaktionen auf dynamische Situationen sind. Alle Beteiligten müssen sich
darüber im klaren sein, wann und wie Kommunikationen festgefahren werden
können, und an Lösungen beteiligt sein. Leuten zu helfen das zu erreichen
ist ein großer Teil der Verwaltung eines Open-Source-Projekts. Die folgenden
Abschnitte handeln davon wie Sie Ihre eigene Kommunikation
abwickeln, als auch wie Sie die Aufrechterhaltung der Kommunikationsmittel
zur Priorität für alle im Projekt machen können.Es hat
im Bezug auf dieses Thema viele akademische Untersuchungen gegeben; siehe
zum Beispiel Group Awareness in Distributed Software
Development von Gutwin, Penner, und Schneider (diese waren
ehemals online verfügbar, scheinen aber mittlerweile zumindest zeitweise
verschwunden zu sein; benutzen Sie eine Suchmaschine um es zu finden).
Du bist was du schreibst
Bedenken Sie folgendes: Das einzige was irgend jemand über Sie
im Internet weiß, kommt von dem was Sie schreiben, oder was andere
über Sie schreiben. Es mag sein, dass Sie als Person geistreich,
scharfsinnig und charismatisch sind – wenn Ihre E-Mails aber
ausschweifend und unstrukturiert sind, wird man von Ihnen annehmen,
dass Sie wirklich so sind. Oder vielleicht sind Sie wirklich persönlich
wirklich ausschweifend und unstrukturiert, aber keiner muss das je
erfahren, wenn Ihre Nachrichten deutlich und informativ sind.
Ihrem Schreiben Mühe zu widmen kann sich in großem
Maße auszahlen. Der langjährige Hacker an freier Software Jim Blandy
erzählt folgende Geschichte:
Damals 1993, arbeitete ich für die Free Software Foundation,
und wir machten gerade Beta-Tests der Version 19 von GNU Emacs.
Wir machten ungefähr jede Woche einen Release, und Leute probierten
es aus und reichten Bug-Meldungen bei uns ein. Es gab einen Kerl den
keiner von uns vorher persönlich getroffen hatte, der aber tolle
Arbeit leistete: Seine Meldungen waren immer klar und brachten uns
direkt zum Problem, und wenn er selber einen Fix anbot, war er fast
immer richtig. Er war einfach erstklassig.
Bevor die FSF Code, der von jemand anderem geschrieben
wurde benutzen kann, lassen wir sie etwas Papierkram erledigen, um
ihre urheberrechtlichen Interessen an dem Code der FSF zuzuweisen.
Einfach den Code von komplett Fremden einzusetzen lädt geradezu auf
eine rechtliche Katastrophe ein.
Also sandte ich dem Kerl die Formulare per E-Mail zu und sagte
ihm: "Hier ist ein bisschen Papierkram den wir brauchen, es hat
folgendes zu bedeuten, Du unterschreibst hier, dein Arbeitgeber den
hier, und dann können wir anfangen deine Fixes einzusetzen. Vielen
Dank."
Er sickte mir eine Antwort zurück, indem er sagte, "Ich habe
keinen Arbeitgeber."
Also sagte ich, "In Ordnung, das macht nichts, lass es einfach
von deiner Universität stempeln und schicke es zurück."
Nach einer gewissen Zeit, schrieb er mir wieder zurück und
sagte, "Naja, eigentlich... bin ich dreizehn Jahre alt und lebe noch
bei meinen Eltern".
Da der Junge nicht wie ein Dreizehnjähriger schrieb, wusste
keiner, dass er einer war. Im Folgenden sind ein paar Möglichkeiten,
mit denen Ihr Schriftverkehr auch einen guten Eindruck hinterlassen
kann.
Struktur und Formatierung
Tappen Sie nicht in die Falle alles so zu schreiben, als wäre es
eine SMS. Schreiben Sie vollständige Sätze mit Punkt und Komma, und
nutzen Sie wenn nötig einen Absatzwechsel. Am wichtigsten ist das bei
E-Mails und anderen ausformulierten Nachrichten. Im IRC oder anderen
ähnliche flüchtigen Foren, ist es im allgemeinen in Ordnung wenn man
nicht auf Groß- und Kleinschreibung achtet, sich komprimiert ausdrückt, usw.
Achten Sie nur darauf, dass Sie diese Gewohnheiten nicht auf formalere,
langlebigere Plattformen übertragen. E-Mails, Dokumentation,
Bug-Meldungen und andere Schriftstücke, für die eine längere Lebensdauer
vorgesehen ist, sollten mit normaler Grammatik, Rechtschreibung
und einer verständlichen Erzählstruktur geschrieben werden. Das heißt
nicht, dass es an und für sich gut wäre, irgendwelche
Regeln zu befolgen, sondern dass diese Regeln eben
nicht willkürlich sind: Sie haben sich zu ihrer
heutigen Form entwickelt, weil sie Text lesbarer machen, und Sie sollten
sich aus diesem Grunde daran halten. Lesbarkeit ist nicht nur deshalb
erwünscht, weil es mehr Menschen ermöglicht, Ihre Texte zu lesen,
sondern weil Sie sich damit als eine Person darstellen, die sich die
Zeit nimmt, auf eine klare Art zu kommunizieren: sprich, jemand
der seinerseits Aufmerksamkeit verdient.
Insbesondere für E-Mail, haben sich erfahrene Open-Source-Entwickler
auf folgende Konventionen geeinigt:
Schicken Sie E-Mails ausschließlich im Klartext, kein HTML,
RichText, oder andere Formaten die nicht lesbar wären für
Mail-Programme die Klartext verarbeiten. Formatieren Sie Ihre Zeilen so,
dass sie um die 72 Spalten breit sind. Überschreiten Sie nicht 80 Spalten,
was de facto zur Standardbreite für
Terminals geworden ist (d.h. dass manche breitere Terminals benutzen
werden, aber niemand schmalere). Indem Sie Ihre Zeilen
auf etwas weniger als 80 Spalten fassen, lassen
Sie Platz für die Einfügung einige Stufen von Zitatkennzeichnungen in den
Rückmeldungen anderer, ohne damit Zeilenumbrüche in Ihrem Text zu
erzwingen.
Benutzen Sie echte Zeilenumbrüche. Manche
Mail-Programme machen eine Art von scheinbarem Umbruch, bei dem Sie als
Schreiber der E-Mail Zeilenumbrüche angezeigt bekommen, die nicht wirklich
existieren. Wenn die E-Mail abgeschickt wird, kann es sein, dass sie nicht
die Zeilenumbrüche aufweist, die Sie erwarten, und Ihr Text wird auf manchen
Bildschirmen an den unmöglichsten Stellen umgebrochen werden. Wenn Ihr
Mail-Programm solche Schein-Umbrüche bietet, suchen Sie nach der
Einstellung, bei der Sie die echten Zeilenumbrüche sehen, während
Sie E-Mails verfassen.
Wenn Sie Bildschirm-Ausgaben, Code-Abschnitte, oder anderen
vorformatierten Text mit einbeziehen, setzen Sie diese eindeutig von dem
Rest Ihres Textes ab, sodass selbst ein träges Auge leicht die
Grenzen zwischen dem was Sie schreiben und dem was Sie zitieren
erkennen können. (Ich hätte nie erwartet, je diesen Ratschlag zu schreiben,
als ich mit diesem Buch anfing, ich habe aber eine gewisse Anzahl an
Open-Source-Malinglisten gesehen, auf denen Leute Texte aus
verschiedenen Quellen miteinander vermischen, ohne klarzustellen, was
was ist. Die Auswirkungen sind sehr frustrierend. Es macht ihre
Nachrichten wesentlich schwerer zu verstehen, und offen gesagt lässt
es diese Personen auch ein wenig schlecht organisiert aussehen.)
Wenn Sie E-Mails von anderen zitieren, fügen Sie Ihre
Stellungnahmen dort ein, wo sie am ehesten angemessen sind, an
verschiedenen Stellen falls nötig, und schneiden Sie die Teile heraus,
die Sie nicht verwendet haben. Wenn Sie einen kurzen Kommentar
schreiben, welcher sich auf die ganze vorherige E-Mail bezieht,
ist es in Ordnung einen top-post zu machen
(also Ihren Kommentar über den zitierten Text zu stellen);
ansonsten sollten Sie die relevanten Stellen des ursprünglichen
Texts zitieren, gefolgt von Ihrer Rückmeldung.
Verfassen Sie die Betreff-Zeilen neuer E-Mails mit Sorgfalt.
Es ist die wichtigste Zeile in Ihrer E-Mail, da es jeder anderen Person
im Projekt erlaubt, zu entscheiden, ob sie mehr lesen soll oder nicht.
Moderne Mailprogramme ordnen zusammenhängende E-Mails in Threads, die
nicht nur durch die Überschrift definiert sein können, sondern auch
durch andere E-Mail-Header (welche manchmal nicht angezeigt werden).
Daraus folgt, dass wenn das Thema des Threads zu sehr abschweift, Sie die
Überschriften Ihrer E-Mails entsprechend anpassen können – und
sollten – wenn Sie antworten. Der Thread wird durch die anderen
Header intakt bleiben, die neue Überschrift wird Leuten, die auf die
Übersicht des Threads schauen, aber helfen zu erkennen, dass das Thema
sich geändert hat. Genauso sollten Sie, wenn Sie wirklich ein neues
Thema anreißen wollen, eine frische E-Mail schreiben, und nicht auf eine
bereits vorliegende antworten, indem Sie die Überschrift ändern.
Ansonsten würde Ihre neue E-Mail in denselben Thread einsortiert werden,
aus dem heraus Sie antworten, und dadurch Leuten vormachen, es ginge um
etwas, um das es tatsächlich nicht geht. Wieder wäre die Strafe nicht
allein eine Verschwendung ihrer Zeit, sondern auch ein kleiner Kratzer
in Ihrer Glaubwürdigkeit als jemand, der sicher im Umgang mit
Kommunikationsmitteln ist.
Inhalt
Wohlformatierte E-Mails locken Leser an, aber erst Inhalte fesseln sie.
Natürlich kann kein Satz festgelegter Richtlinien für guten Inhalt
garantieren, es gibt aber ein paar Prinzipien die ihn etwas
wahrscheinlicher machen.
Machen Sie Ihren Lesern die Sache leicht. Es gibt Unmengen an
Information die in jedem beliebigen aktiven Open-Source-Projekt
herumschwirren, Sie können nicht erwarten dass Ihre Lesern mit den
meisten davon vertraut wären – tatsächlich können Sie von Ihren
Lesern auch nicht erwarten, dass sie wüssten, wie sie sich über diese
Dingen informieren können. Wo immer möglich,
sollten Ihre Nachrichten Informationen so bereit
stellen, wie es für die Leser am bequemsten ist. Wenn Sie zwei
zusätzliche Minuten damit verbringen müssen, die URL zu einem
bestimmten Thread aus den Archiven der Mailingliste heraus zu graben, um
es den Lesern Ihrer E-Mail zu ersparen, ist es das wert. Wenn Sie
5 bis 10 zusätzliche Minuten damit verbringen, die Ergebnisse eines
komplexen Threads zusammen zu fassen, um Leuten einen Kontext zu geben,
in dem sie Ihre Nachricht verstehen können, dann tun Sie das. Sehen
Sie es einmal so: Je erfolgreicher ein Projekt ist, desto höher ist
das Leser/Autoren-Verhältnis, egal auf welcher Plattform. Wenn jede
Nachricht von Ihnen n Personen gelesen
wird, dann wird bei zunehmendem n der Wert zunehmen,
sich dem zusätzlichen Zeitaufwand auszusetzen, um ihn anderen zu ersparen.
Und wenn die Leute sehen, dass Sie sich selbst diese Regeln auferlegen,
werden sie ihre eigene Kommunikationen dem anpassen. Das Ergebnis ist
im Idealfall eine Zunahme der allgemeinen Effizienz des Projekts:
Wenn es die Wahl gibt zwischen dem Aufwand von n
Personen und dem einer Person, wird das Projekt letzteren vorziehen.
Meiden sie Übertreibungen. Hochspielungen in Online-Nachrichten ist
ein klassischer Fall von Wettrüsten. Zum Beispiel könnte eine Person,
die einen Bug meldet, glauben, dass die Entwickler diesem nicht
genügend Aufmerksamkeit aufbringen werden, und so wird sie den Bug als
schwerwiegenden Fehler beschreiben, ein Problem welches sie
(und all ihre Freunde/Mitarbeiter/Verwandte) daran hindert die
Software produktiv zu nutzen, obwohl es in Wirklichkeit nur ein kleines
Ärgernis ist. Übertreibungen beschränken sich aber nicht nur auf die
Nutzer – Programmierer machen bei technischen Diskussionen oft das
Gleiche, insbesondere wenn sich die Auseinandersetzung mehr um eine
Geschmackssache dreht als um Korrektheit:
"Das zu machen, würde den Code völlig unlesbar machen. Ihn
zu warten, würde zu einem Albtraum, im Vergleich dem Vorschlag
von H. Mustermann..."
Der gleiche Gedanke wird sogar stärker wenn
man ihn weniger scharf formuliert:
"Das geht, aber ich denke es ist bezüglich Lesbarkeit
und Wartbarkeit nicht so optimal. Der Vorschlag von
H. Mustermann vermeidet diese Probleme, da hier..."
Sie werden Übertreibungen nicht völlig vermeiden können, und im
Allgemeinen ist das auch nicht nötig. Im Vergleich zu anderen Formen
der Fehlkommunikation, ist Übertreiben nicht für die Allgemeinheit
schädlich – es schadet hauptsächlich den Ausübenden. Die Empfänger
können kompensieren, es ist nur dass der Sender mit jeder Nachricht
ein wenig an Glaubwürdigkeit verliert. Sie sollten deshalb im
Interesse von Ihrem Einfluss im Projekt versuchen in die moderatere
Richtung zu gehen. Auf diese Art werden Leute Sie ernst nehmen, wenn Sie wirklich einen wichtigen Hinweis machen müssen.
Bearbeiten Sie zwei mal. Bei jeder Nachricht, die länger ist als
ein mittellanger Absatz, sollten Sie, nachdem Sie der Meinung sind, dass
sie fertig ist, diese von oben bis unten erneut durchlesen, bevor Sie sie
versenden. Dieser Ratschlag wird jedem bekannt vorkommen, der einmal
an einem Schreibkurs teilgenommen hat, ist aber bei Online-Diskussionen
besonders wichtig. Da das Verfassen von Online-Nachrichten
von ständigen Unterbrechungen begleitet wird (während Sie schreiben,
müssen Sie vielleicht in andere E-Mails nachschauen, bestimmte Webseiten
besuchen, einen Befehl ausführen, um Diagnosmeldungen abzugreifen, usw.),
passiert es besonders schnell, dass man den erzählerischen Faden verliert.
Nachrichten, die mit Unterbrechungen verfasst und vor dem
Versenden nicht überprüft wurden, sind, zum Verdruss der Autoren
(möchte man zumindest hoffen), oft als solche erkennen. Nehmen Sie sich
die Zeit zu überprüfen, was Sie abschicken. Je besser der
strukturelle Zusammenhalt Ihrer Nachrichten, desto mehr werden Sie
gelesen.
Tonfall
Nachdem Sie tausende Nachrichten geschrieben haben, werden Sie
bemerken, dass Ihr Schreibstil zum knappen neigt. Das scheint in
den meisten technischen Foren der Normalfall zu sein, und an und gibt
es daran nichts falsches. Ein Grad an Knappheit, welcher im normalen
sozialen Umgang unzumutbar wäre ist für Hacker freier Software einfach
der Standard. Hier ist eine vollständig zitierte Reaktion, welche ich
einmal von einem Mailverteiler über freie Content-Management-Software
erhielt:
Können Sie möglicherweise etwas näher auf die Probleme auf die Sie
gestoßen sind, usw. eingehen?
Desweiteren:
Welche Version von Slash benutzen Sie? Das konnte ich aus Ihrer
ursprünglichen Nachricht nicht erkennen.
Wie genau haben Sie den Build des apache/mod_perl-Quellcode ausgeführt?
Haben Sie den Apache-2.0-Patch ausprobiert, über den auf slashcode.com
berichtet wurde?
Shane
Das ist jetzt mal knapp! Keine Begrüßung,
abgesehen vom Namen keine Abmeldung, und die Nachricht selbst ist
lediglich eine Aneinanderreihung von Fragen die so kompakt wie
möglich formuliert sind. Sein einziger Satz mit einer Aussage war eine
implizite Kritik an meine ursprüngliche Nachricht. Trotzdem war ich
glücklich darüber die Nachricht von Shane zu sehen, und ich fasste
die Knappheit seiner Antwort nicht als ein Anzeichen für irgend etwas
anderes als das er eine beschäftigte Person ist. Alleine die Tatsache,
dass er Fragen stellte, anstatt meine Nachricht zu ignorieren
bedeutete, dass er bereit war etwas Zeit für meinem Problem
aufzubringen.
Werden alle Leser auf diesen Schreibstil positiv reagieren?
Nicht unbedingt; es kommt auf die Person und den Kontext an. Wenn
Jemand zum Beispiel eben erst geschrieben hat das sie einen Fehler
gemacht hat (vielleicht hat sie einen Bug geschrieben), und Sie aus
vergangener Erfahrung wissen, dass diese Person dazu neigt etwas
Unsicher zu sein, auch wenn Sie trotzdem noch eine knappe Antwort
schreiben, sollten Sie es durch etwas aufwiegen was ihre Gefühle
anerkennt. Der größte Teil Ihrer Antwort mag kurz gehalten sein,
eine Analyse der Situation aus Sicht eines Ingenieurs, so kurz wie
Sie wollen. Melden Sie sich aber zum Schluss mit etwas ab, dass es
nicht als Kälte aufgefasst werden soll. Wenn Sie zum Beispiel der
Person eben erst eine Unmenge an Ratschläge gegeben haben wie sie
einen Bug beheben soll, dann melden Sie sich mit "Viel Glück, <hier
Ihr Name>" um anzudeuten, dass Sie ihnen gutes wünschen und nicht
Sauer sind. Ein strategisch platzierter Smiley oder ein anderer
Hinweis auf die Gefühlslage kann oft auch ausreichen um den
Gesprächspartner zu beruhigen.
Es mag komisch erscheinen derart auf die Gefühle des Beteiligten
zu achten, als darauf was sie sagen, aber um es kahl zu sagen,
beeinflussen Gefühle die Produktivität. Gefühle sind auch aus anderen
Gründen wichtig, selbst wenn wir uns aber ausschließlich auf nutzungsbezogene
Gebiete zu beschränken, können wir anmerken, dass unglückliche Menschen
schlechtere Software schreiben, und weniger davon. Angesichts der
begrenzten Natur der meisten elektronischen Medien, wird es jedoch
keinen offensichtlichen Hinweis darauf geben, in welcher
Stimmung sich die Person befindet. Sie werden eine wohlbegründete
Vermutung darüber anstellen müssen basierend auf a) wie die meisten
Menschen sich in einer solchen Situation fühlen, und b) was Sie über
diese Person aus vergangenen Dialogen wissen. Manche Menschen
bevorzugen eine eher unpersönliche Einstellung, und behandeln all
gleichermaßen nach ihrer oberflächlichen Erscheinung, wobei die Idee
die dahintersteckt ist, dass wenn die Beteiligte nicht offen sagt,
dass sie sich irgendwie fühlt, hat man kein Recht sie so zu behandeln
als ob das der Fall wäre. Ich mag diese Herangehensweise aus mehreren
Gründen nicht. Erstens, verhalten sich Menschen im echten Leben nicht
so, also warum sollten Sie es online machen? Zweitens, da die meisten
Interaktionen in öffentlichen Foren stattfinden, neigen Leute dazu
sich noch mehr zurück zu halten als das im privaten der Fall wäre.
Um es genauer zu sagen, sie sind oft bereit auf andere gerichtete
Gefühle auszudrücken, wie Dankbarkeit oder Unmut, nicht jedoch nach
innen gerichtete Gefühle wie Unsicherheit oder Stolz. Trotzdem
arbeiten die meisten Menschen besser, wenn sie wissen, dass andere
über ihre Verfassung im klaren sind. Indem Sie auf kleine Hinweise
achten, können Sie die meiste Zeit für gewöhnlich richtig raten,
und andere Personen motivieren weiterhin in größerem Maße beteiligt zu
bleiben als es sonst der Fall wäre.
Damit meine ich natürlich nicht, dass Sie die Rolle des
Gruppentherapeuten einnehmen sollen, der andauernd jeden dabei helfen
soll, sich über seine Gefühle im klaren zu sein. Indem Sie aber
sorgfältig auf Muster im langfristigen Verhalten von Personen achten,
werden Sie ein Gespür für sie als Individuen bekommen, selbst wenn Sie
nie von Angesicht zu Angesicht treffen. Und indem Sie auf den Ton Ihrer
Nachrichten achten, können Sie einen überraschenden Einfluss darauf
haben wie sich andere fühlen, was letztendlich dem Projekt zugute
kommt.
Unhöflichkeiten erkennen
Eine der bestimmenden Eigenschaften der Open-Source-Kultur ist
ihre ausgeprägte Auffassung darüber, was unhöflich ist und was nicht.
Obwohl die unten beschriebenen Grundsätze nicht alleine für die
Entwicklung freier Software gelten, oder auch für Software im
allgemeinen – sie wären jedem bekannt der im Bereich der Mathematik,
der technischen Wissenschaften oder im Ingenieurswesen arbeitet –
ist freie Software, mit seinen offenen Grenzen und ständigen Fluss an
Einwanderern, eine Umgebung in der diese Grundsätze besonders häufig von
Personen begegnet wird, die mit Ihnen nicht vertraut sind.
Lass uns damit anfangen, was nicht
unhöflich ist:
Technische Kritik, selbst direkte und ungepolsterte ist nicht
unhöflich. Es kann sogar eine Art von Kompliment sein: Der Kritiker
sagt implizit, dass die Zielperson es wert ist ernst genommen zu
werden und Zeit mit auf zu bringen. Das heißt, je attraktiver es
gewesen wäre die Nachricht von jemand zu ignorieren, desto eher ist es
ein Kompliment sich die Zeit zu nehmen es zu kritisieren (natürlich
ausgeschlossen ist wenn die Kritik zu einem persönlichen Angriff
oder einer anderen Form von Unhöflichkeit verfällt).
Knappe, ungeschminkte Fragen, wie die in der vorhin zitierten
E-Mail von Shane an mich, sind auch nicht unhöflich. Fragen die in einem
anderen Kontext kalt oder rhetorisch, selbst verspottend erscheinen
könnten, sind oft ernst gemeint, und haben keinen Hintergedanken außer
die Informationen so schnell wie möglich zu herauszulocken. Die
berühmte Frage vom technischen Support "Ist Ihr Computer angeschlossen?"
ist ein klassisches Beispiel hierfür. Die Person von Support muss
wirklich wissen, ob Ihr Computer angeschlossen ist, und nach den ersten
paar Tagen bei dieser Arbeit, ist sie müde geworden höflichen
Schmeicheleien ihren Fragen voranzustellen ("Entschuldigen Sie, ich
möchte lediglich vorher ein paar einfache Fragen stellen, um ein paar
Möglichkeiten aus dem Weg zu räumen. Manche davon mögen sich ziemlich
einfach anhören, haben Sie aber bitte Nachsicht..."). Mittlerweile
macht sie sich aber nicht mehr die Mühe mit der Höflichkeit, sie fragt
einfach gerade heraus: Ist es angeschlossen oder nicht? Die gleichen
Fragen werden andauernd auf den Mailverteilern freier Software
gestellt. Die Absicht ist nicht, den Empfänger zu beleidigen, sondern
schnell einige der offensichtlichsten (und möglicherweise häufigsten)
Erklärungen auszuschließen. Empfänger die das verstehen und entsprechend
reagieren gewinnen Pluspunkte eine aufgeschlossene Sicht
ohne Widerrede eingenommen zu haben. Es ist einfach ein
Aufeinandertreffen verschiedener Kulturen, und nicht die Schuld von
irgendjemandem. Erklären Sie freundlich, dass Ihre Frage (oder Kritik)
keine versteckte Bedeutung hatte; es war lediglich gedacht die
Information so schnell und effizient wie möglich zu bekommen (oder
übertragen) und sonst nichts.
Was ist als Unhöflich?
Nach dem gleichen Prinzip mit der detaillierte technische Kritik
als Kompliment aufgefasst werden kann, kann das Weglassen von
hochwertiger Kritik eine Art von Beleidigung bedeuten. Ich meine nicht
nur die Arbeit von jemandem zu ignorieren, sei es ein Vorschlag, eine Änderung
am Code oder ein die Meldung von einem Issue oder sonst etwas. Wenn Sie
nicht vorher explizit eine detaillierte Antwort versprochen haben, ist
es gewöhnlich in Ordnung einfach überhaupt nicht zu reagieren. Man wird
annehmen, dass Sie einfach keine Zeit hatten etwas zu sagen. Wenn Sie
aber doch eine Antwort geben, sollten Sie nicht knausern:
nehmen Sie sich die Zeit die Sachen wirklich zu untersuchen, geben Sie
konkrete Beispiele an wo angemessen, wühlen Sie in den Archiven herum
um verwandte Nachrichten zu finden, usw. Oder wenn Sie nicht die Zeit
haben eine solche Mühe aufzubringen, aber trotzdem irgend eine kurze
Antwort geben müssen, dann erklären Sie den Defizit offen in Ihrer
Nachricht ("Entschuldigung, ich denke es gibt hierzu eine Meldung,
hatte aber leider nicht die Zeit um danach zu suchen"). Die Hauptsache
ist die kulturelle Norm anzuerkennen, entweder indem man sie erfüllt,
oder offen zuzugeben, dass man ihr dieses mal nicht gerecht geworden
ist. In beiden Fällen wird die Norm verstärkt. Der Norm aber nicht
gerecht zu werden und gleichzeitig nicht zu erklären warum
, Sie es nicht geschafft haben Ihnen gerecht zu werden,
ist das gleiche, als ob Sie sagen würden, dass das Thema (und die
daran Beteiligten) nicht viel Ihrer Zeit wert war. Es ist besser zu
zeigen, dass Ihre Zeit wertvoll ist, indem Sie sich kurz halten als
indem Sie faul sind.
Es gibt viele andere Formen der Unhöflichkeit, die nicht nur
auf Open Source Entwicklung zutrifft und der gesunde Menschenverstand
hilft in der Regel sie zu vermeiden. Siehe auch
im Kapitel
, wenn Sie es noch nicht
gemacht haben.
Gesicht zeigen
Es gibt einen Bereich im menschlichen Gehirn, der speziell
der Erkennung von Gesichtern gewidmet ist. Es wird als "fusiformes
Gesichtsareal" (en. fusiform face area) bezeichnet und seine
Fähigkeiten sind größtenteils angeboren und nicht angelernt. Es hat
sich herausgestellt, dass die Erkennung von Gesichtern eine derart
wichtige Fähigkeit ist um zu überleben, dass wir spezielle Hardware
dafür entwickelt haben.
Internet basierende Zusammenarbeit ist deshalb psychologisch
etwas merkwürdig, da es eine enge Mitarbeit zwischen Menschen
erfordert, die fast nie die Gelegenheit bekommen sich gegenseitig mit den
intuitivsten Methoden zu identifizieren: erstens durch Gesichter,
aber auch durch Stimme, Haltung, usw. Um das zu kompensieren, sollten
Sie versuchen, überall den selben Bildschirm-Namen
verwenden. Es sollte der vordere Teil Ihrer E-Mail-Adresse
sein (der Teil vor dem @-Zeichen), Ihr Nutzername im IRC,
der Name Ihres Kontos im Projektarchiv, im Bug Tracker usw. Dieser
Name ist Ihr online "Gesicht": Ein Kürzel um Sie zu identifizieren,
welches manche der gleichen Funktionen erfüllt wie Ihr Gesicht,
auch wenn es leider nicht die eingebaute Hardware im Gehirn anregt.
Der Bildschirm-Name sollte eine intuitive Permutation Ihres
echten Namens sein (meiner, zum Beispiel ist "kfogel"). In manchen
Situationen wird es sowieso von Ihrem kompletten Namen begleitet,
zum Beispiel im Kopf einer E-Mail:
Von: "Karl Fogel" <kfogel@irgendeinedomain.com>
Tatsächlich gibt es zwei Sachen in dem Beispiel auf die man
achten sollte. Wie vorhin erwähnt, gleicht der Bildschirm-Name dem
echten auf eine intuitive Art. Der echte Name ist aber auch
echt. Also kein erfundener wie:
Von: "Super Hacker" <superhacker@irgendeinedomain.com>
Es gibt einen berühmten Cartoon von Paul Steiner, in der Ausgabe vom
5 Juli 1993 der Zeitung The New Yorker, welches
einen Hund an einem Terminal zeigt, der zu einem anderen
verschwörerisch herunterschaut und sagt: "Im Internet weiß keiner, dass
du ein Hund bist". Diese Denkart ist es wahrscheinlich, die hinter
einer Vielzahl an selbstverherrlichenden soll-wohl-cool-sein
Online-Identitäten liegen, die Leute sich selber geben – als ob
die Leute glauben würden man wäre tatsächlich
ein toller Hacker wenn man sich "Super Hacker" nennt. Tatsache bleibt
aber: Selbst wenn keiner weiß das Sie ein Hund sind, sind Sie immer
noch ein Hund. Eine glorreiche Online-Identität beeindruckt nie die
Leser. Statt dessen gibt es ihnen den Eindruck, als würden Sie eher
auf das Erscheinungsbild achten als auf den Inhalt, oder dass Sie
einfach nur unsicher sind. Benutzen Sie Ihren echten Namen für alle
Dialoge, oder wenn Sie aus irgend einem Grund anonym bleiben müssen,
dann erfinden Sie einen Namen der sich wie ein gewöhnlicher anhört
und bleiben Sie ab da bei ihm.
Es gibt noch ein paar weitere Sachen die Sie machen können um
Ihr Online-Gesicht attraktiver zu machen, abgesehen davon, dass Sie es
konsistent halten. Wenn Sie einen Titel haben (wie "Doktor" oder
"Professor"), sollten Sie nicht mit Ihm herum stolzieren, oder auch nur
erwähnen, außer wenn es direkt für die Diskussion bedeutend ist. Im
Allgemeinen neigt die Kultur von Hacker und der freien Software dazu,
das vorzeigen von Titel als etwas ausschließendes und ein Zeichen von
Unsicherheit zu betrachten. Es ist in Ordnung wenn Ihr Titel als Teil
Ihrer Signatur am ende jeder E-Mail die Sie abschicken erscheint,
benutzen Sie es jedoch niemals als um Ihre Position in einer Diskussion
zu verstärken – der Versuch wird garantiert zurückschlagen. Sie
wollen, dass man die Person respektiert, nicht den Titel.
Wo wir gerade von Signaturen sprechen: halten Sie sie kurz und
geschmackvoll, oder lassen Sie sie besser gleich weg. Vermeiden Sie
lange rechtliche Klausel für den Haftungsausschluss die an jede E-Mail
angehängt werden, insbesondere wenn Sie eine Stimmung ausdrücken die
nicht mit der Beteiligung an einem freien Software-Projekt vereinbar
sind. Der folgende Klassiker dieser Gattung erscheint zum Beispiel am
Ende jeder Nachricht von einem bestimmten Nutzer auf einem
öffentlichen Verteiler bei dem ich angemeldet bin:
WICHTIGER HINWEIS
Wenn Sie diese E-Mail fehlerhafterweise erhalten haben oder den
Haftungsausschluss unserer E-Mails lesen wollen, wenden Sie sich bitte
an die folgende Erklärung under nehmen Sie mit dem Absender Kontakt
auf.
This communication is from Deloitte & Touche LLP. Deloitte &
Touche LLP is a limited liability partnership registered in England
and Wales with registered number OC303675. A list of members' names
is available for inspection at Stonecutter Court, 1 Stonecutter
Street, London EC4A 4TR, United Kingdom, the firm's principal place of
business and registered office. Deloitte & Touche LLP is
authorised and regulated by the Financial Services Authority.
This communication and any attachments contain information which is
confidential and may also be privileged. It is for the exclusive use
of the intended recipient(s). If you are not the intended
recipient(s) please note that any form of disclosure, distribution,
copying or use of this communication or the information in it or in
any attachments is strictly prohibited and may be unlawful. If you
have received this communication in error, please return it with the
title "received in error" to IT.SECURITY.UK@deloitte.co.uk then delete
the email and destroy any copies of it.
E-mail communications cannot be guaranteed to be secure or error free,
as information could be intercepted, corrupted, amended, lost,
destroyed, arrive late or incomplete, or contain viruses. We do not
accept liability for any such matters or their consequences. Anyone
who communicates with us by e-mail is taken to accept the risks in
doing so.
When addressed to our clients, any opinions or advice contained in
this e-mail and any attachments are subject to the terms and
conditions expressed in the governing Deloitte & Touche LLP client
engagement letter.
Opinions, conclusions and other information in this e-mail and any
attachments which do not relate to the official business of the firm
are neither given nor endorsed by it.
Für jemanden der lediglich ab und an ein paar Fragen stellen möchte,
erscheint dieser riesige Haftungsausschluss etwas albern aber verursacht
wahrscheinlich keinen dauerhaften Schaden. Wenn diese Person sich
jedoch aktiv an dem Projekt beteiligen wollte, würde dieser Rechtliche
Textblock eine heimtückischere Wirkung haben. Es würde mindestens zwei
möglicherweise schädliche Signal aussenden: Erstens, dass diese Person
nicht die komplette Kontrolle über seine Werkzeuge hat – er ist in
irgend einem E-Mail-System von einem Unternehmen, welches an jede E-Mail
eine nervige Botschaft anhängt, und er hat keine Möglichkeit es zu
umgehen – und zweitens, dass er wenig oder keine Unterstützung von
seiner Organisation für seine Aktivitäten bei freier Software hat.
Zugegeben, die Organisation hat ihm ganz klar nicht direkt verboten an
öffentliche Verteiler zu schreiben, aber sie lässt seine Nachrichten
eindeutig unfreundlich aussehen, als ob das Risiko vertrauliche
Informationen herauszulassen über allens anderen Prioritäten steht.
Wenn Sie für eine Organisation arbeiten, welche darauf besteht,
solche Signaturen an alle abgehenden E-Mails anzuhängen, dann sollten
Sie in Betracht ziehen, sich eine kostenlose E-Mail-Adresse anzulegen,
zum Beispiel bei ,
, oder , und
benutzen Sie diese Adresse für das Projekt.
Vermeidung häufiger Fallstricke
Schreiben Sie nicht ohne Veranlassung
Eine häufiger Fehler bei der Beteiligung an einem Online-Projekt
ist zu denken, dass Sie auf alles reagieren müssen. Das müssen Sie
nicht. Erstens wird es für gewöhnlich mehr Threads geben, über die Sie
den Überblick behalten können, zumindest nachdem das Projekt die
ersten paar Monate überschritten hat. Zweitens wird das meiste in den Theras
bei denen Sie sich entschieden haben, sie zu verfolgen, keiner Antwort
erfordern. Gerade Entwicklerforen neigen dazu von drei Arten von
Nachrichten beherrscht zu werden:
Nachrichten die etwas nicht triviales vorschlagen
Nachrichten die Unterstützung oder Widerstand für
oder gegen etwas ausdrücken was jemand anderes
gesagt hat
Zusammenfassende Nachrichten
Von diesen erfordert keine an und für sich
eine Rückmeldung, insbesondere wenn Sie sich auf der Grundlage von dem
was Sie bisher in dem Thread gesehen haben, sicher sein können, dass
jemand anderes wahrscheinlich sowieso das sagen wird, was Sie eh gesagt
hätten. (Machen Sie sich keine Sorgen, dass Sie in einer Schleife
gefangen werden, bei dem jeder auf den anderen wartet, weil jeder die
gleiche Taktik verfolgt; es gibt fast immer
Irgendjemanden der das Bedürfnis hat sich in die
Schlacht zu stürzen. Fragen Sie sich erstens: Wissen Sie was
Sie erreichen wollen? Und zweitens: Wird dieses Ziel nicht erreicht
werden, ohne dass Sie etwas sagen?
Zwei gute Gründe Ihre Stimme bei einem Thread einzulegen, sind a)
wenn Sie einen Fehler in einem Vorschlag sehen, und vermuten, dass Sie
die einzige sind, der es sieht, und b) wenn Sie sehen, dass in der
Kommunikation etwas schief läuft und Sie wissen, dass Sie es richten
können indem Sie eine klärende Nachricht schreiben. Es ist im
allgemeinen auch in Ordnung eine Nachricht zu schicken, nur um jemanden
für etwas zu danken, oder um "Ich auch!" zu sagen, da ein Leser bei
solchen Nachrichten sofort erkennen kann, dass sie keiner weiteren
Antwort oder Handlung bedürfen und deshalb endet die geistige
Anstrengung die sie erfordern sauber mit der letzten Zeile der E-Mail.
Selbst dann sollten Sie zwei mal darüber nachdenken, bevor Sie etwas
sagen; es ist immer besser Menschen wünschen zu lassen, dass Sie mehr
schreiben, als dass die weniger schreiben. (Siehe den zweiten Teil von
für weiteres darüber wie man sich auf
betriebsamen Mailverteilern verhalten soll.)
Produktive kontra unproduktive Threads
Auf einem betriebsamen Mailverteiler haben Sie zwei Pflichten.
Eines ist herauszufinden, worauf Sie achten müssen und
was Sie ignorieren können. Das andere ist, sich derart zu verhalten,
dass Sie es vermeiden Rauschen zu erzeugen: Sie
wollen nicht nur, dass Ihre eigene Nachrichten ein hohes
Signal/Rausch-Verhältnis
haben, sondern, dass es die Art von Nachrichten sind, die
andere dazu anregen entweder Nachrichten mit einem
ähnlich hohen Signal/Rausch-Verhältnis zu schreiben, oder überhaupt
nicht zu schreiben.
Um zu sehen wie Sie das erreichen können, lassen Sie uns den Kontext
bedenken in dem so etwas passiert. Was sind einige der Ecksteine von
unproduktiven Threads?
Argumente die bereits aufgeworfen wurden fangen an
wiederholt zu werden, als ob der Absender denkt, dass keiner
sie beim erstem mal gehört hat.
Eine Zunahme an Übertreibung und Beteiligung während
die der Einsatz immer kleiner wird.
Eine Mehrheit der Kommentare stammt von Personen die
wenig oder gar nichts machen, während diejenigen die dazu
neigen Sachen erledigt zu bekommen ruhig sind.
Viele Ideen werden diskutiert, ohne dass klare
Vorschläge gemacht werden. (Natürlich fängt jede interessante
Idee als eine ungenaue Vision an; die wichtige Frage ist in welche
Richtung sie sich von da weiterentwickelt. Erscheint es so als ob der
Thread die Vision in etwas konkreteres verwandelt, oder
schweift es ab in unter Unter-Visionen, Neben-Visionen und
Auseinandersetzungen über Grundsatzfragen?)
Nur weil ein Thread anfangs nicht produktiv ist, bedeutet es
nicht, das es Zeitverschwendung ist. Es kann sich um ein wichtiges
Thema drehen, bei dem die Tatsache, dass es nicht vorankommt um so
beunruhigender ist.
Einen Thread in eine nützliche Richtung zu führen, ohne aggressiv
zu sein, ist eine Kunst. Es wird nicht funktionieren, Leute einfach
abzumahnen, ihre Zeit nicht zu verschwenden, oder Sie darum zu bitten
nicht zu schreiben, es sei denn Sie haben etwas konstruktives
beizutragen. Es mag natürlich sein, dass Sie das privat denken, aber
wenn Sie es laut sagen, werden Sie beleidigend sein. Statt dessen
müssen Sie Bedingungen für den weiteren Fortschritt vorschlagen –
geben Sie den Leuten eine Route, einen Weg welcher zu den Ergebnissen
führt, die Sie haben wollen, jedoch ohne dass Sie sich anhören, als
würden Sie das Verhalten diktieren. Der Unterschied liegt größtenteils
im Ton. Folgendes ist zum Beispiel schlecht:
Diese Diskussion führt nirgendwo hin. Können wir
bitte dieses Thema so lange fallen lassen, bis jemand einen
Patch hat, um einen der Vorschläge zu implementieren? Es hat
keinen Sinn immer wieder die gleichen Sachen zu sagen. Code
spricht lauter als Worte, Leute.
Wohingegen folgendes gut ist:
Verschiedene Vorschläge wurden in diesem Thread
gemacht, bei keinem wurden aber die Details ausgearbeitet,
zumindest nicht so weit um darüber abzustimmen. Trotzdem sagen
wir derzeit nichts neues; wir wiederholen einfach nur was
vorher schon gesagt wurde. Derzeit wäre es also wahrscheinlich
das beste, wenn die folgenden Nachrichten entweder
ausgearbeitete Vorschläge beinhalten, oder einen Patch. Dann
hätten wir wenigstens etwas festes worauf wir reagieren könnten
(d.H. Konsens über den Vorschlag erreichen oder den Patch
anwenden und Testen).
Vergleichen Sie die zweite Herangehensweise mit der ersten. Die
Zweite zieht keinen Strich zwischen Ihnen und die anderen, noch
beschuldigt es die Teilnehmer die Diskussion zu verzetteln.
Es ist die Rede von
"wir", was wichtig ist, ob Sie vorher tatsächlich an dem Thread
beteiligt waren oder nicht, da es alle daran erinnert, dass selbst
diejenigen die bisher ruhig geblieben sind, trotzdem noch einen
Anteil an seinem Ausgang haben. Die Nachricht beschreibt warum der Thread
nirgendwo hinführt, macht es aber ohne Abwertungen oder Verurteilungen
– es hält lediglich leidenschaftslos einige Tatsachen fest. Am
wichtigsten ist, dass es eine positive Vorgehensweise anbietet, anstatt dass
man das Gefühl bekommt, als würde die Diskussion abgebrochen werden
(eine Maßnahme die dazu verleiteten dürfte zu rebellieren),
man wird es als eine Möglichkeit ansehen, wird die Unterhaltung
auf eine konstruktivere Ebene zu führen. Dies ist ein Normwert den
man natürlich erfüllen will.
Sie werden nicht immer wollen, dass ein Thread es auf die nächste
höhere konstruktive Ebene schafft – manchmal werden Sie einfach nur
wollen das er verschwindet. Der Sinn von Ihrer Nachricht ist dann, das
eine oder das andere herbeizuführen. Wenn Sie schon an der Art wie der
Thread bisher verlaufen ist, erkennen können, dass keiner die von Ihnen
vorgeschlagenen Maßnahmen wirklich machen wird,
haben Sie den Thread effektiv beendet ohne dass es danach aussieht. Es
gibt natürlich keinen narrensicheren Weg einen Thread zu beenden, und
selbst wenn es den gäbe, würden Sie ihn nicht einsetzen wollen. Die
Beteiligten aber darum zu bitten, entweder sichtbaren Fortschritt zu
machen, oder aufzuhören Nachrichten zu schicken, ist wenn Sie es
diplomatisch anstellen, ohne weiteres vertretbar. Hüten Sie sich jedoch
davor Threads voreilig zu schließen. Eine gewisse Menge an spekulativem
Gerede kann, je nach Thema, produktiv sein, und darum zu bitten, dass
man es zu schnell klärt, wird den kreativen Ablauf ersticken, und Sie
zusätzlich als ungeduldig erscheinen lassen.
Erwarten Sie von keinem Thread, dass er sofort aufhört. Es wird
wahrscheinlich immer noch ein paar Nachrichten nach Ihrer geben,
entweder weil Sie gleichzeitig mit jemand anderem gepostet haben,
oder weil Leute
immer das letzte Wort haben wollen. Das ist nichts, worüber Sie sich
Sorgen machen müssten und Sie müssen nicht erneut ein Schreiben
schicken. Lassen Sie den Thread einfach auslaufen, oder nicht auslaufen
wie immer der Fall auch sein mag. Sie können nicht die absolute
Kontrolle haben; andererseits, können Sie über viele Threads gesehen,
eine statistisch signifikante Wirkung zu haben.
Je weicher das Thema, desto länger die Debatte
Obwohl Diskussionen bei jedem Thema mäandrieren können, geht die
Wahrscheinlichkeit dafür hoch sobald die technische Schwierigkeit runter
geht. Schließlich ist die Anzahl der Teilnehmer die dem Thema folgen können
um so kleiner, je schwieriger das Thema ist. Diejenigen die dann folgen können,
sind wahrscheinlich die erfahrensten Entwickler, die bereits tausende
Male vorher an solchen Diskussionen teilgenommen haben, und wissen,
welches Verhalten wahrscheinlich zu einem Konsens führt, mit dem alle
leben können.
Konsens ist deshalb am schwersten zu erreichen bei technischen
Fragen, die einfach zu verstehen sind und bei denen man leicht eine
Meinung haben kann, sowie bei "weichen" Themen, wie Organisation,
Öffentlichkeitsarbeit, Finanzierung, usw. Menschen können sich ewig
über solche Themen unterhalten, da es keine nötige Qualifikation
dafür gibt, keine klaren Möglichkeiten um zu entscheiden (selbst im
Nachhinein) ob eine Entscheidung richtig war oder falsch, und weil
es manchmal eine erfolgreiche Taktik ist einfach länger zu warten
als andere Diskussionsteilnehmer.
Das Prinzip, dass die Menge an Diskussion umgekehrt proportional
dazu ist, wie komplex das Thema ist, hat es schon lange gegeben, und
ist allgemein unter dem Begriff Bikeshed Effect
(de. Fahrradschuppen-Effekt) bekannt. Hier ist die Erklärung von
Poul-Henning Kamp davon, aus einer nunmehr berühmten E-Mail an
BSD-Entwickler:
Es ist eine lange Geschichte, bzw. eher eine alte Geschichte,
aber sie ist auf jeden Fall ziemlich kurz. C. Northcote Parkinson
schrieb Anfang der 1960'er ein Buch namens "Parkinsons Gesetz",
welches eine Menge Einblicke in die Dynamik von Management beinhaltet.
[...]
Bei dem spezifischen Beispiel welches mit einem Fahrradschuppen
zu tun hat, ist die andere entscheidende Komponente ein Atomkraftwerk,
was schätze ich die Zeit in der das Buch geschrieben wurde
widerspiegelt.
Parkinson zeigt, wie Sie zu einem Vorstand gehen können und
Zustimmung für den Bau einer multi-millionen oder gar Milliarden
Euro teuren Atomkraftwerk bekommen können, wenn Sie aber einen
Fahrradschuppen bauen wollen, werden Sie sich in endlosen Diskussionen
verzetteln.
Parkinson erklärt, dass das daran liegt, dass ein Atomkraftwerk
so gewaltig, so kostspielig und so kompliziert ist, das Menschen es
nicht begreifen können, und eher als es zu versuchen, fallen Sie auf
die Annahme zurück, dass jemand anderes bereits alle Details
überprüft hat vor es so weit gekommen ist. Richard P. Feynmann gibt
in seinen Büchern ein paar interessante und treffende Beispiele die
mit Los Alamos zu tun haben.
Einen Fahrradschuppen andererseits kann jeder übers Wochenende
bauen und trotzdem noch genügend Zeit übrig haben um das Spiel im
Fernsehen zu schauen. Egal wie gut Sie sich vorbereiten, egal wie
vernünftig Sie bei Ihrem Vorschlag also sind, irgend jemand wird die
Chance ergreifen, um Ihnen zu zeigen, dass er seine Arbeit macht, dass
er aufpasst, dass er da ist.
In Dänemark nennen wir das "seinen Fingerabdruck hinterlassen".
Es geht um den persönlichen Stolz und Ansehen, es geht darum irgendwo
drauf zeigen zu können und zu sagen "Da! Das habe ich
gemacht". Es ist ein starker Wesenszug bei Politikern,
aber auch in den meisten Menschen vorhanden, wenn sie dazu die
Gelegenheit bekommen. Denken Sie einfach an Fußabdrücke im nassen
Zement.
(Seine komplette Nachricht ist auch sehr lesenswert. Siehe ; siehe auch
.)
Jeder der jemals an der Entscheidungsfindung in einer Gruppe
beteiligt war, wird erkennen worüber Kamp redet. Es ist jedoch für
gewöhnlich unmöglich alle zu überreden es zu
vermeiden Fahrradschuppen anzumalen. Das beste was Sie machen können,
ist darauf hinzuweisen, dass das Problem existiert sobald es auftaucht,
und Ihre Senior-Entwickler – die Personen deren
Nachrichten am meisten Gewicht tragen – dazu überreden, frühzeitig
Ihre Pinsel nieder zu legen, damit zumindest sie nicht zum Rauschen
beitragen. Fahrradschuppen-Anmal-Partys werden nie komplett verschwinden,
aber Sie können sie verkürzen und weniger häufig machen, indem Sie das
Bewusstsein für sie in der Projektkultur verinnerlichen.
Vermeiden Sie Heilige Kriege
Ein heiliger Krieg ist eine Debatte, die
oft, aber nicht immer über eine relativ unbedeutende Angelegenheit
geführt wird, welche nicht anhand der Vorzüge verschiedener Argumente
zu klären ist, bei dem aber Leute leidenschaftlich genug sind um
trotzdem weiter darüber zu argumentieren, in der Hoffnung das ihre
Seite sich durchsetzen wird. Heilige Kriege sind nicht ganz das selbe
wie das Anmalen von Fahrradschuppen. Leute die Fahrradschuppen anmalen
sprechen für gewöhnlich schnell Ihre Meinung (weil sie es können),
fühlen sich aber nicht sonderlich stark an diese Meinung gebunden,
und werden manchmal sogar andere, nicht kompatible Meinungen äußern,
um zu zeigen, dass Sie alle Seiten der Angelegenheit verstehen. Bei
einem heiligen Krieg hingegen wird Verständnis für andere Seiten
als Schwäche aufgefasst. Bei einem heiligen Krieg weiß jeder, dass
es eine richtige Antwort gibt; sie sind sich nur nicht darüber einig
welche es ist.
Wenn ein heiliger Krieg erst einmal angefangen hat, kann es im
allgemeinen nicht zur Zufriedenheit von allen aufgelöst werden. Es
nützt nichts während einem heiligen Krieg darauf hinzuweisen, dass
man sich in einem heiligen Krieg befindet. Jeder weiß das schon. Ein
leider häufiges Merkmal von heiligen Kriegen sind
Meinungsverschiedenheiten über die Frage ob die
Debatte sich überhaupt durch weitere Diskussion auflösen lässt. Von
außen betrachtet, ist es klar, dass keine Seite die Meinung der anderen
ändert. Von innen betrachtet, benimmt sich die andere Seite
stumpfsinnig und denkt nicht ganz klar, sie kommt aber vielleicht zur
Besinnung, wenn man sie nur genügend einschüchtert. Ich sage jetzt
nicht, dass es nie eine richtige Seite bei einem
heiligen Krieg gibt. Manchmal gibt es eine – und natürlich ist es
bei denen an den ich bisher teilgenommen habe immer meine gewesen. Das
macht aber keinen Unterschied, weil es keinen Algorithmus gibt, um
überzeugend zu demonstrieren, dass die eine oder andere Seite richtig
ist.
Eine verbreitete, aber nicht zufriedenstellende Art, wie Leute
versuchen heilige Kriege zu lösen, ist zu sagen "Wir haben bereits viel
mehr Zeit und Energie bei der Diskussion hiervon verbraucht, als es
wert ist! Können wir es bitte einfach fallen lassen"? Es gibt dabei
zwei Probleme. Erstens wurde diese Zeit und Energie bereits aufgebracht,
und sie kann nie wieder zurückgewonnen werden – die einzige Frage
die jetzt noch übrig bleibt ist, wieviel mehr man
investieren muss? Wenn einige Personen der Meinung sind, dass nur ein
wenig mehr Diskussion das Thema zum Abschluss bringen wird, dann macht
es immer noch Sinn (aus ihrer Sicht) weiter zu machen.
Bei der Bitte das Thema fallen zu lassen ist das andere Problem,
dass der Status Quo es einer Seite erlauben würde, den Sieg durch
Untätigkeit zu erklären. Und in manchen Fällen ist der Status Quo
sowieso nicht akzeptabel: Alle sind sich darüber einig,
dass irgendeine Entscheidung
getroffen, irgendeine Maßnahme ergriffen werden muss. Das Thema
fallen zu lassen, wäre schlimmer für alle als
den Streit aufzugeben. Da das Dilemma aber für alle gleichermaßen gilt,
ist es immer noch möglich ewig darüber zu streiten, was getan werden
soll.
Wie sollten Sie als heilige Kriege handhaben?
Die erste Antwort ist, die Dinge so einzurichten, dass sie gar
nicht erst passieren. Das ist nicht so hoffnungslos wie es sich anhört:
Sie können einige immer wiederkehrende heilige Kriege
vorausahnen: Sie tendieren zu Themen wie Programmiersprachen, Lizenzen
(siehe im Kapitel ), Änderung
des reply-to Feldes (siehe im Kapitel ) sowie ein paar andere
Themen. Jedes Projekt hat auch ein oder zwei ganz eigene
heilige Kriege, womit langjährige Entwickler schnell vertraut werden.
Die Techniken um heilige Kriege aufzuhalten, oder zumindest ihren
Schaden zu begrenzen, sind überall ziemlich die gleichen. Selbst wenn
Sie sich sicher sind, dass Ihre Seite recht hat, versuchen Sie
irgendeine Möglichkeit zu finden um Mitgefühl
und Verständnis für die Argumente die die anderen Seite macht
auszudrücken. Oftmals ist das Problem bei einem heiligen Krieg, dass
jede Seite ihre Mauern so hoch wie möglich gebaut hat, und klar
gemacht hat, dass jede andere Meinung schlichtweg albern ist, wird
Kapitulation oder die Änderung seiner Meinung psychologisch
unerträglich: Es wäre nicht nur ein Geständnis, dass man falsch lag,
sondern sich sicher gewesen zu sein und trotzdem
falsch. Sie können dieses Geständnis für die andere Seite schmackhaft
machen, ist indem Sie selber Ungewissheit zeigen – gerade
indem Sie zeigen, dass Sie die Argumente die sie machen verstehen und
sie zumindest vernünftig finden, wenn auch nicht ganz überzeugend.
Zeigen Sie eine Geste, welche Raum lässt, für eine gegenseitige
Geste lässt, und die Situation wird sich gewöhnlich verbessern. Es ist
weder wahrscheinlicher oder unwahrscheinlicher, dass Sie das Ergebnis,
das Sie ursprünglich wollten erreichen, zumindest können Sie dadurch
aber unnötigen Kollateralschaden an der Moral des Projekts vermeiden.
Wenn ein heiliger Krieg nicht vermieden werden kann, entscheiden
Sie sich frühzeitig wie sehr sie die Sache kümmert, und seien Sie
bereit öffentlich aufzugeben. Wenn Sie das tun, können Sie sagen, dass
Sie aussteigen, weil ein heiliger Krieg es nicht wert ist, drücken Sie
dabei aber keine Bitterkeit aus und nutzen Sie die Gelegenheit
nicht als eine letzte Gelegenheit um gegen die
Argumente der Gegenseite zu argumentieren. Aufzugeben ist nur effektiv
wenn es taktvoll gemacht wird.
Heilige Kriege über Programmiersprachen sind ein Spezialfall, da
dazu neigen sehr technisch zu sein, dennoch fühlen sich viele Leute
qualifiziert an Ihnen teil zu nehmen, und der Einsatz ist sehr hoch,
da das Resultat bestimmen kann, in welcher Sprache ein Großteil des
Codes vom Projekt geschrieben wird. Die beste Lösung ist es, die
Sprache frühzeitig zu wählen, mit Unterstützung durch einflussreiche
Entwickler, und es dann auf der Grundlage zu verteidigen, dass sie
sich alle wohl fühlen in dieser Sprache zu schreiben,
nicht auf der Grundlage, dass es besser ist als
irgend eine andere Sprache, die man sich statt dessen hätte aussuchen
können. Lassen Sie die Unterhaltung nie zu einem akademischen Vergleich
verschiedener Programmiersprachen verfallen (das scheint, aus irgendeinem
Grund, besonders of zu passieren, wenn jemand Perl aufbringt); das ist
einfach ein Thema des Todes in welches Sie sich weigern müssen
hineingezogen zu werden.
Für ein eher historischen Hintergrund über heilige Kriege, siehe
, und
die Veröffentlichung von Danny Cohen welches den Begriff populär .
Der "Laute Minderheit"-Effekt
Bei jedem Mailverteiler ist es leicht, für eine kleine
Minderheit den Eindruck zu erwecken, dass eine Menge Dissens gibt,
indem Sie den Verteiler mit einer Menge langer E-Mails überfluten.
Es ist ein eine art Obstruktionspolitik, mit dem Unterschied, dass
der Eindruck von ausgedehntem Dissens noch stärker ist, da es auf eine
beliebige Anzahl einzelner Nachrichten aufgeteilt ist und die meisten
Leute werden sich nicht die Mühe machen mitzuverfolgen wer was wann
gesagt hat. Sie werden nur den instinktiven Eindruck haben, dass das
Thema sehr kontrovers ist, und warten, bis die Aufregung sich gelegt
hat.
Sehr klar zu Belegen, wie klein die tatsächliche Anzahl der
Dissidenten ist im Vergleich zu denen die zustimmen ist die beste Art
gegen diesen Effekt anzukommen. Um die Ungleichheit zu vergrößern,
sollten Sie im privaten Leute ansprechen die größtenteils ruhig
geblieben sind, von denen Sie aber vermuten, dass Sie der Mehrheit
zustimmen. Sagen Sie nichts, was darauf hindeutet, dass die Dissidenten
absichtlich versucht haben den Eindruck den sie hinterlassen zu
verstärken. Wahrscheinlich war das nicht der Fall, und selbst wenn,
gäbe es keinen strategischen Vorteil darauf hinzuweisen. Alles was Sie
tun müssen, ist eine Gegenüberstellung der echten Zahlen, und Leute
werden erkennen, dass ihr intuitiver Eindruck der Situation nicht der
Wirklichkeit entspricht.
Dieser Ratschlag gilt nicht nur für Angelegenheiten mit klaren
Positionen für oder gegen etwas. Sondern für jede Diskussion bei der
viel Lärm gemacht wird, aber nicht klar ist, ob die meisten die
Angelegenheit als ein echtes Problem ansehen. Nach
einer gewissen Zeit, wenn Sie darüber einstimmen, dass die Meldung
keiner Reaktion wert ist, und sehen können, dass sie es nicht geschafft
hat an Zug zu gewinnen (selbst wenn es eine Menge E-Mails hervorgebracht
hat), können Sie einfach öffentlich feststellen, dass es keinen Zug
gewinnt. Wenn der "Laute Minderheit"-Effekt aufgetreten war, wird Ihre
Nachricht wie eine Atemzug frischer Luft wirken. Der Eindruck den die
meisten Leute bisher von der Diskussion hatten, wird etwas düster
gewesen sein: "Hmm, es scheint eine große Sache zu sein, weil es
wirklich eine Menge Nachrichten gibt, aber ich sehe keinen echten
Fortschritt". Indem Sie erklären, wie die Art der Diskussion es hat
scheinen lassen, als wäre es stürmischer als in Wirklichkeit, werden
Sie es im Nachhinein eine neue Gestalt geben, wodurch Leute ihr
Verständnis von dem was passiert ist neu gestalten können.
Schwierige Leute
Schwierige Leute sind im Umgang in elektronischen Foren nicht
einfacher als im echten Leben. Mit "schwierig" meine ich nicht "unhöflich".
Unhöfliche Leute nerven, aber sie sind nicht unbedingt schwierig.
Dieses Buch hat bereits behandelt, wie man mit denen umgeht: Machen Sie
eine Bemerkung beim ersten mal, und ab dann, sollten Sie sie entweder
ignorieren oder sie wie alle anderen behandeln. Wenn sie weiterhin
unhöflich sind, werden sie sich meistens derart unbeliebt machen, dass
sie keinen Einfluss auf andere im Projekt haben, also sind sie ein in
sich abgeschlossenes Problem.
Die wirklich schwierigen Fälle sind Leute die nicht sonderlich
unhöflich sind, die aber die Arbeitsabläufe im Projekt derart
manipulieren oder missbrauchen, dass es die Zeit und Energie anderer
auffrisst, dem Projekt jedoch keinen Nutzen bringt.
Für eine ausführliche Diskussion einer Subspezies
dieser Personen, siehe:Help Vampires: A
Spotter's Guide. Um Hoy zu zitieren: "Es ist so
normal, dass man seine Uhr danach stellen mann. Der Zerfall einer
Community ist genauso vorhersagbar wie der Zerfall von nuklearen
Isotopen. Sobald ein Open Source Projekt, Sprache usw. seine Halb-
wertszeit erreicht, kommen sie und nehmen das Leben aus der Community.
Sie sind die Vampire der Hilfe. Und ich bin hier um
sie zu stoppen…".
Solche Menschen suchen oft nach Lücken in den Abläufen des Projekts,
um sich selber
mehr Einfluss zu verschaffen als es sonst der Fall wäre. Das ist viel
heimtückischer als schlichte Unhöflichkeit, weil weder das Verhalten
noch der Schaden für einen beiläufigen Beobachter offensichtlich ist.
Ein klassisches Beispiel ist die Verschleppungstaktik bei der
jemand (der sich natürlich immer so vernünftig wie möglich anhört)
immer wieder behauptet, dass die Angelegenheit die zur Debatte steht,
nicht für eine Klärung bereit ist und weitere mögliche Lösungen
anbietet, oder neue Sichten auf alte Lösungen, wenn in wirklich
derjenige merkt, dass ein Konsens oder eine Wahl sich langsam anbahnt,
und ihm gefällt die Richtung nicht in der sie wahrscheinlich geht. Ein
weiteres Beispiel ist, wenn eine Debatte die sich keinem Konsens
annähert, die Gruppe aber versucht wenigstens die Eckpunkte der
Meinungsverschiedenheit klar zu stellen und eine Zusammenfassung für
alle zu produzieren, auf der sich alle von da an beziehen können. Der
Quertreiber, der weiß, dass die Zusammenfassung zu einem Ergebnis
führen könnte, welches ihm nicht gefällt, wird oft versuchen selbst
die Zusammenfassung hinauszuzögern, indem er schonungslos die Fragen
verkompliziert, was darin beinhaltet sein soll, entweder indem er
Einspruch erhebt oder indem er unerwartete neue Punkte vorstellt.
Handhabung schwieriger Leute
Um solchem Verhalten entgegenzuwirken hilft es, die Mentalität
derjenigen zu verstehen, die es ergreifen. Menschen machen es im
Allgemeinen nicht bewusst. Keiner wacht morgens auf und sagt sich:
"Heute werde ich Verwaltungsverfahren zynisch manipulieren, um ein
irritierender Quertreiber zu sein". Statt dessen geht solches
Verhalten oftmals ein halb paranoides Gefühl voraus, von den
Interaktion und den Entscheidungen in der Gruppe ausgeschlossen zu
werden. Die Person fühlt sich nicht ernst genommen, oder (in
schwerwiegenderen Fällen), dass es fast schon eine Verschwörung gegen
ihn ist – dass die anderen Mitglieder des Projekts sich entschieden
haben, einen exklusiven Club zu bilden, in dem er kein Mitglied ist.
Das rechtfertigt dann, in seinen Augen, die Regeln wörtlich zu nehmen
und anzufangen die Abläufe des Projekts formal zu manipulieren, um alle
anderen zu zwingen Ihn ernst zu nehmen. Im
Extremfall, kann die Person sogar glauben, dass er einen einsamen Kampf
ausficht, um das Projekt vor sich selbst zu retten.
Es liegt in der Natur solch eines Angriffs von innen, dass nicht
jeder es zur gleichen Zeit bemerken wird, und manche werden es
überhaupt nicht sehen, bis man ihnen aussagekräftige Beweise vorlegt.
Das bedeutet, dass es eine Menge Arbeit sein kann es zu neutralisieren.
Es reicht nicht sich selbst zu überzeugen, dass es passiert; Sie müssen
genügend Beweise sammeln, um andere auch zu überzeugen, und dann müssen
Sie diese Beweise wohl überlegt verbreiten.
Wenn man bedenkt wie viel Arbeit es ist dagegen anzukämpfen, ist
es oft besser, es einfach eine Weile lang zu tolerieren. Betrachten
Sie es als eine parasitäre aber leichte Krankheit: Wenn es nicht zu
sehr das Projekt behindert, kann das Projekt es sich leisten infiziert
zu bleiben, und Medizin könnte schädliche Nebenwirkungen haben. Wenn es
jedoch zu schädlich wird um es zu tolerieren, dann ist es Zeit etwas
dagegen zu machen. Fangen Sie an Notizen und Muster zu sammeln, die Sie
erkennen. Stellen Sie sicher Verweise auf die öffentlichen Archive mit
einzubeziehen – das ist eines der Gründe warum das Projekt alles
protokolliert, also können Sie sie genau so gut auch nutzen. Sobald Sie
einen guten Fall aufgebaut haben, fangen Sie an private Unterhaltungen
mit den anderen Beteiligten am Projekt zu führen. Sagen Sie ihnen nicht
was Sie beobachtet haben; statt dessen, fragen Sie zuerst, was sie
beobachtet haben. Das kann Ihre letzte Gelegenheit sein, ungetrübte
Rückmeldung zu erhalten, wie andere das Verhalten des Störenfrieds
sehen; wenn Sie erst einmal angefangen haben öffentlich darüber zu
reden, werden die Meinungen polarisiert werden und keiner wird sich
daran erinnern können wie er vorher darüber gedacht hat.
Wenn private Diskussionen darauf hindeuteten, dass zumindest ein
paar andere das Problem sehen, dann ist es Zeit etwas zu unternehmen.
Ab dann müssen Sie wirklich vorsichtig sein, denn
es ist sehr leicht für diese Person es danach aussehen zu lassen als
würden Sie unfairerweise auf ihr herum hacken. Was immer Sie auch tun,
beschuldigen Sie sie nicht, die Abläufe im Projekt arglistig
missbraucht zu haben, paranoid zu sein oder im Allgemeinen, alles was
Sie vermuten, dass es wahrscheinlich wahr ist. Ihre Strategie sollte es
sein, sowohl vernünftiger und eher besorgt um das Wohl des Projekts zu
sein, mit dem Ziel entweder das Verhalten der Person zu reformieren,
oder Sie dazu zu bringen permanent zu verschwinden. Abhängig davon, ob
andere Entwickler, und Ihr Verhältnis mit ihnen, kann es vorteilhaft
sein, zuerst im privaten Verbündete zu sammeln. Oder auch nicht; dass
kann auch nur Feindseligkeit hinter den Vorhängen erzeugen, wenn Leute
denken, dass Sie eine nicht angemessene flüster-Kampagne ergreifen.
Denken Sie daran, dass obwohl die andere Person vielleicht
derjenige ist, die sich zerstörerisch verhält, werden Sie
diejenige sein, die zerstörerisch erscheint, wenn Sie eine
öffentliche Beschuldigung machen, welche Sie nicht untermauern können,
und es so sanft wie möglich sagen, aber trotzdem noch direkt sind. Sie
werden die betreffende Person vielleicht nicht überzeugen können, aber
das ist in Ordnung, so lange Sie alle anderen Überzeugen können.
Fallbeispiel
Ich erinnere mich nur an eine Situation, in mehr als 10 Jahren
Arbeit an freier Software, wo die Sachen derart schlimm wurden, dass
wir tatsächlich jemanden darum bitten mussten, komplett seine Nachrichten
einzustellen. Wie es so oft der Fall ist, war er nicht unhöflich, und
wollte aufrichtig hilfreich sein. Er wusste nur nicht wann er schreiben
sollte und wann er es lieber lassen sollte. Unsere Mailinglisten waren für
die Öffentlichkeit frei zugänglich, und er schrieb so oft Nachrichten,
und stellte bei so vielen verschiedenen Themen Fragen, dass es für die
Gemeinschaft zu einem Problem im Geräuschpegel führte. Wir hatten
bereits versucht, ihn nett darum zu bitten etwas mehr vor seinen
Nachrichten nach Antworten zu recherchieren, aber es zeigte keine
Wirkung.
Die Strategie die letztendlich funktionierte, ist ein perfektes
Beispiel, wie man einen starken Fall aufbaut, basierend auf neutralen
und messbaren Daten. Einer unserer Entwickler schürfte etwas in den
Archiven herum, und schickte dann im privaten folgende Nachricht an ein
paar Entwickler. Der Übeltäter (der dritte Name in der nachfolgenden
Liste, hier als "H. Mustermann" aufgeführt) hatte eine sehr kurze
Geschichte mit dem Projekt und hatte weder Code noch Dokumentation
beigetragen. Trotzdem war er die drittaktivste Person auf den
Mailinglisten:
Von: "Brian W. Fitzpatrick" <fitz@collab.net>
An: [... Liste der Empfänger wegen Datenschutz ausgespart...]
Betreff: Der Energieabfall in Subversion
Datum: Mit, 12 Nov 2003 23:37:47 -0600
In den letzten 25 Tagen, waren die folgenden 6 Personen auf den svn
[dev|users] Verteilern am aktivsten:
294 kfogel@collab.net
236 "C. Michael Pilato" <cmpilato@collab.net>
220 "H. Mustermann" <hmustermann@problemposter.com>
176 Branko Čibej <brane@xbc.nu>
130 Philip Martin <philip@codematters.co.uk>
126 Ben Collins-Sussman <sussman@collab.net>
Ich würde sagen, dass fünf dieser Personen etwas zu Subversion
beitragen, welches bald Version 1.0 erreichen wird.
Ich würde auch sagen, dass einer dieser Personen beständig Zeit und
Energie von den anderen 5 wegnimmt, gar nicht erst von dem Verteiler
insgesamt zu sprechen, und dadurch (wenn auch unbeabsichtigt) die
Entwicklung von Subversion ausbremst. Ich hab keine Analyse der
Threads gemacht, aber ein vgrep meiner Subversion-Mails sagt mit, dass
auf jede E-Mail von dieser Person, mindestens ein mal von mindestens zwei
der anderen fünf Entwickler geantwortet wurde.
Ich denke das irgendein radikaler Eingriff hier nötig ist, selbst wenn
wir die angesprochene Person verschrecken. Nettigkeiten und
Freundlichkeit haben bereits keine Wirkung gezeigt.
dev@subversion ist ein Mailverteiler um die Entwicklung eines
Versionsverwaltungsystems zu unterstützen, keine Gruppentherapie.
-Fitz, im Versuch durch drei Tage an SVN-Mails durchzuarbeiten, welche
er angehäuft hat
Obwohl es zuerst nicht so aussehen mag, war das Verhalten von
H. Mustermann ein klassisches Beispiel für den Missbrauch von Abläufen
im Projekt. Er hat nichts offensichtliches gemacht, wie eine Abstimmung
hinauszuzögern, sondern machte sich die Richtlinie des Verteilers
zunutze, dass Mitglieder selber die Moderatoren sind. Wir überließen
es dem Urteilsvermögen von jedem einzelnen, wann man zu welchen Themen
etwas schreibt. Wir hatten deshalb nichts worauf wir zurückgreifen
konnten, bei jemand der ein solches Urteilsvermögen entweder nicht
hatte, oder nicht benutzte. Es gab keine Regel auf die wir hätten
verweisen konnten und sagen konnten, dass dieser Kerl es gebrochen
hat, jeder wusste jedoch, dass seine häufigen Nachrichten zu einem
echten Problem wurden.
Die Strategie von Fitz war, im Nachhinein, meisterhaft. Er
sammelte eindeutige und messbare Beweise, verteilte sie dann aber
diskret, indem er sie zuerst an ein paar Leute sandte, deren
Unterstützung bei jeder drastischen Maßnahme entscheidend wäre. Sie
stimmten überein, dass irgend eine Maßnahme nötig war, und schließlich
riefen wir J. Random telefonisch an, beschrieben ihm direkt das Problem,
und baten ihn darum, seine Nachrichten einfach einzustellen. Er hat
niemals wirklich verstanden warum; wenn er dazu in der Lage gewesen
wäre, dann hätte er wahrscheinlich schon am Anfang ein angemessenes
Urteilsvermögen aufgebracht. Er willigte aber ein, seine Nachrichten
einzustellen, und die Mailinglisten wurden wieder brauchbar. Dass
diese Strategie funktionierte, lag wohl zum Teil auch an der impliziten
Drohung, dass wir seine Nachrichten auch durch die Moderations-Software
hätten eingrenzen können, die normalerweise dazu benutzt
wird, Spam zu verhindern (siehe im Kapitel ). Der Grund warum wir
diese Option als Rücklage hatten, war das Fitz die nötige Unterstützung
zuerst von entscheidenden Personen gesammelt hatte.
Handhabung von Wachstum
Der Preis vom Erfolg ist bei groß in der Open-Source-Welt.
Während Ihre Software beliebter wird, nimmt die Anzahl der Menschen zu,
die auftauchen um nach Informationen zu suchen, dramatisch zu,
während die Anzahl der Menschen die in der Lage sind Informationen
bereitzustellen sehr viel langsamer zunimmt. Desweiteren, gäbe es
selbst wenn das Verhältnis ausgeglichen wäre immer noch das Problem,
mit der Art wie die meisten Open-Source-Projekte Kommunikation
handhaben. Betrachten Sie zum Beispiel Mailverteiler. Die meisten
Projekte haben Mailverteiler für allgemeine Fragen von Nutzern –
manchmal heißt der Verteiler "users", "discuss", "help" oder irgend
etwas anderes. Unabhängig von Namen, ist der Sinn des Verteilers immer
der gleiche: Einen Ort zur Verfügung zu stellen, wo Leute auf ihre
Fragen Antworten bekommen können, während andere zuschauen und
(vermutlich) aus der Beobachtung dieses Austauschs Wissen aufsaugen.
Diese Mailverteiler funktionieren sehr gut, bis zu ein paar
Tausend Nutzern, und/oder ein paar hundert Nachrichten am Tag. Irgendwo
danach fängt das System jedoch an zusammenzubrechen, weil jeder der
angemeldet ist jede Nachricht sieht; wenn die Anzahl der Nachrichten
an einem Verteiler über das hinaus geht, was eine einzige Person am Tag
verarbeiten kann, wird der Verteiler zu einer Last für seine
Mitglieder. Stellen Sie sich zum Beispiel vor, wenn Microsoft einen
solchen Verteiler für Windows XP hätte. Windows XP hat Hunderte von
Millionen von Nutzern; wenn auch nur ein Promille von denen in einer
vierundzwanzigstündigen Zeitspanne Fragen hätte, dann bekäme dieser
Verteiler theoretisch Hunderte von Tausende von Nachrichten am Tag!
Solch einen Verteiler könnte es natürlich niemals geben, denn keiner
bliebe bei ihm angemeldet. Dieses Problem beschränkt sich nicht auf
Mailverteiler; die gleiche Logik lässt sich anwenden, auf IRC,
Online-Diskussionsforen, sogar jedes System in dem eine Gruppe die
Fragen von Einzelnen hört. Die Implikationen sind bedenklich: Das
gewöhnliche Open-Source-Modell von massiv paralleler technischer
Unterstützung skaliert schlicht und einfach nicht auf der Ebene, die
für Weltherrschaft nötig ist.
Es wird keine Explosion geben, wenn die Foren anfangen
überzulaufen. Es wird nur einen leisen Folge negativer Rückmeldungen
geben: Leute melden sich von den Verteilern ab, oder verlassen das
IRC, oder hören zumindest auf sich die Mühe zu machen Fragen zu stellen,
da sie sehen können, dass man Sie in dem ganzen Lärm nicht gehört
werden. Sowie immer mehr Leute diese im hohen Maße vernünftige Wahl
treffen, wird die Aktivität auf dem Forum aussehen als wäre es auf
einer annehmbaren Stufe. Es es bleibt genau deshalb annehmbar, weil
die Vernünftigen (oder zumindest erfahrenen) Leute anfangen an
anderen Orten nach Informationen zu suchen – während die
unerfahrenen zurück bleiben und weiterhin Nachrichten schreiben. Mit
anderen Worten, während das Projekt wächst, ist eine weitere Nebenwirkung
von nicht-skalierbaren Kommunikationsmodellen, dass
die durchschnittliche Qualität sowohl der Fragen, als auch der Antworten
dazu neigt schlechter zu werden, was es danach aussehen lässt, als
wären die neuen Nutzer blöder als es ehemals der Fall war, obwohl das
wahrscheinlich nicht der Fall ist. Es ist nur, dass das
Kosten/Nutzen-Verhältnis dieser Foren mit einer hohen Bevölkerung
weniger wird, also fangen diejenigen mit mehr Erfahrung natürlich
zuerst an woanders nach Antworten zu suchen. Die
Kommunikationsmechanismen anzupassen, um mit dem Wachstum des Projekts
umzugehen, beinhaltet deshalb zwei verwandte Strategien:
Zu erkennen, wann bestimmte Teile eines Forums
nicht unter unbegrenztem Wachstum
leiden, selbst wenn das für das Forum insgesamt der Fall ist,
und diese Teile in neue, speziellere Foren zu Trennen (d.H.
lassen Sie das Gute nicht vom Schlechten herunterziehen).
Stellen Sie sicher, dass viele automatisierte
Informationsquellen zur Verfügung stehen, und dass Sie
organisiert, aktuell, und leicht auffindbar gehalten werden.
Strategie (1) ist gewöhnlich nicht all zu schwer. Die meisten
Projekte fangen mit einem Hauptforum an: Ein Mailverteiler für
allgemeine Diskussionen, auf dem Ideen für neue Funktionen, Fragen zum
Aufbau der Software, und programmier-Probleme zerlegt werden
können. Jeder der an dem Projekt beteiligt ist, ist auf dem Verteiler.
Nach einer Weile, wird es für gewöhnlich offensichtlich, dass der
Verteiler sich in mehrere unterschiedliche Unterverteiler, auf
bestimmten Themen basierend, aufgeteilt hat. Zum Beispiel geht es in
manchen Threads eindeutig um Entwicklung und Aufbau des Codes; andere
sind eher Benutzerfragen, von der Art "Wie mache ich X?"; es gibt
vielleicht eine dritte Familie die sich um die Verarbeitung von
Bug-Meldungen und Erweiterungs-Wünsche dreht; und so weiter. Eine
beliebige Person mag sich natürlich an vielen verschiedenen
Thread-Arten beteiligen, das Wichtige ist aber, dass nicht viel Überlappung
zwischen den verschiedenen Arten gibt. Sie könnten in separate
Verteiler aufgeteilt werden ohne irgend eine schädliche Balkanisierung
zu verursachen, da die Threads selten mehrere Themen überspannen.
Diese Aufteilung wirklich zu machen, ist ein Vorgang mit zwei
Schritten. Sie werden einen neuen Verteiler (oder einen IRC-Kanal, oder
was immer es auch sein soll), und dann müssen Sie welche Zeit auch
immer nötig ist, um Leute zu nerven und erinnern die neuen Foren
entsprechend zu nutzen. Letzteres kann Wochen
andauern, letztendlich werden es die Leute aber kapieren. Sie müssen
es sich nur zum Prinzip machen, dem Absender immer zu sagen, wenn er
an das falsche Ziel geschickt hat, und es auf eine sichtbare Art tun,
damit andere dazu ermutigt werden, beim umleiten mitzuhelfen. Es ist
auch nützlich, eine Webseite mit einem Wegweiser zu allen Verteilern
bereit zu haben; Ihre Rückmeldungen können einfach auf diese Seite
verweisen und als Bonus, mag der Empfänger etwas darüber lernen, nach
Richtlinien zu suchen, vor er eine Nachricht schreibt.
Strategie (2) ist ein anhaltender Vorgang, welcher die ganze
Lebensdauer des Projekts überdauern kann und mit vielen Beteiligten
zu tun haben kann. Natürlich handelt es sich dabei zum Teil auch um
die Frage eine aktuelle Dokumentation zu haben (siehe
im Kapitel
) und weisen Sie Leute darauf
hin. Es ist aber auch viel mehr als das; die Abschnitte die folgen,
behandeln diese Strategie im detail.
Auffällige Nutzung der Archive
Typischerweise, werden alle Kommunikationen in einem
Open-Source-Projekt
(außer manchmal IRC-Unterhaltungen) archiviert. Die Archive
sind öffentlich, können durchsucht werden und referenzen darauf bleiben
Stabil: Dass heißt, sobald ein Stück Information unter einer bestimmten
Adresse aufgezeichnent wird, bleibt es ewig an dieser Adresse.
Benutzen Sie diese Archive so viel wie möglich, und so auffällig
wie möglich. Selbst wenn Sie die Antwort auf eine Frage aus dem Kopf
wissen, wenn Sie denken, dass es eine Referenz auf die gleiche Frage
in den Archiven gibt, welche die Antwort beinhaltet, nehmen Sie sich
die Zeit es auszugraben und zu präsentieren. Jedes mal wenn Sie das
auf eine öffentlich sichtbare Art tun, lernen manche Leute zum ersten
mal, dass es die Archive gibt, und sie zu durchsuchen, Antworten
hervorbringen kann. Indem Sie auf die Archive referenzieren, bestärken
Sie auch die soziale Norm, Informationen nicht zu duplizieren. Warum die
gleiche Antwort an zwei verschiedenen Stellen haben? Wenn die Anzahl
der Stellen an der es gefunden werden kann, auf ein minimum beschränkt
wird, werden Leute die es vorher gefunden haben sich eher daran
erinnern wonach sie suchen müssen um es wieder zu finden. Gut
platzierte Referenzen tragen auch allgemein zu der Qualität der
Suchergebnisse bei, da Sie den Rang der referenzierten Ressourcen in
Suchmachinen erhöhen.
Es gibt Zeiten, wann die Verdopplung von Informationen jedoch
Sinn macht. Nehmen wir zum Beispiel an, es gäbe bereits eine
Rückmeldung in den Archiven, nicht von Ihnen, welche sagt:
Es scheint, dass Ihre Scanley-Indexe verfrobbt wurden. Führen Sie diese
Schritte aus, um sie zu entfrobben:
1. Schalten Sie den Scanley-Server aus.
2. Lassen Sie das 'Entfrobb'-Programm, welches mit Scanley
ausgeliefert wird, aus.
3. Starten Sie den Server.
Monate später, sehen Sie dann eine weitere Nachricht, welche
andeutet, dass die Indexe von jemand verfrobbt wurden. Sie suchen in
den Archiven und finden obige Rückmeldung, sehen aber, dass ein paar
Schritte Fehlen (vielleicht aus versehen, oder weil die Software sich,
seitdem die Nachricht geschrieben wurde, geändert hat). Die eleganteste
Art das zu handhaben, ist es eine neue vollständigere Nachricht zu
schreiben, und die alte Information explizit als obsolet zu markieren,
indem Sie es erwähnen:
Es scheint, dass Ihre Scanley Indexe verfrobbt wurden. Wir haben
dieses Problem im July gesehen und H. Mustermann schrieb eine
Lösung bei http://blahblahblah/blah. Unten ist eine vollständigere
Beschreibung wie Sie Ihre Indexe entfrobben können, basierend auf
der Anleitung von H. Mustermann aber ein wenig erweitert:
1. Schalten Sie den Scanley-Server aus.
2. Wechseln Sie zum Benutzer, unter dem Scanley normalerweise läuft.
3. Lassen Sie mit diesem Benutzer das 'Entfrobb'-Programm über die
Indexe laufen.
4. Lassen Sie Scanley per Hand laufen, um zu sehen, ob die Indexe jetzt
funktionieren.
5. Starten Sie den Server neu.
(In einer idealen Welt wäre es möglich, eine Anmerkung an die
alte Nachricht anzuhängen, welche sagt, dass eine neuere Version der
Information zur Verfügung steht, und auf die neue Nachicht hinzuweisen.
Mir ist allerdings keine Archivierungssoftware bewusst, welche eine
"obsolet durch" Funktion anbietet, vielleicht wäre es ein wenig
schwierig, auf eine Art zu implementieren, welche die Vorgabe eines
Archivs, eine wortgetreue Aufzeichnung zu sein, nicht verletzen würde.
Das ist ein weiterer Grund, warum es eine gute Idee ist, Webseiten zu
erstellen, die der Beantwortung von häufigen Fragen gewidmet sind.)
Archive werden wahrscheinlich am häufigsten nach Antworten zu
technischen Fragen durchsucht, ihre Bedeutung für das Projekt geht
jedoch weit darüber hinaus. Wenn die formalen Richtlinien eines
Projekts seine in einer Satzung festgelegten Gesetze sind, sind die
Archive seine allgemeinen Gesetze: Eine Aufzeichnung aller Diskussionen
die geführt wurden, und wie sie erreicht wurden. Bei jeder
wiederkehrenden Diskussion, ist es heutzutage quasi bindend, mit einer
Suchen in den Archiven anzufangen. Das erlaubt es Ihnen, die Diskussion
mit einer Zusammenfassung des derzeitigen Standes anzufangen,
Einsprüche vorauszuahnen, Konterargumente vorzubereiten, und
möglicherweise Sichtweisen zu entdecken, an der Sie noch nicht gedacht
hatten. Die anderen Beteiligten, werden auch erwarten
, dass Sie eine Durchsuchung des Archivs gemacht haben.
Selbst wenn vorangehende Diskussionen nirgendwo hingeführt haben,
sollten Sie Verweise darauf einbeziehen, wenn Sie das Thema wieder
aufgreifen, damit Leute sich selber davon überzeugen können a) dass
sie nirgends hingeführt haben, und b) dass Sie Ihre Hausaufgaben
gemacht haben, und desshalb wahrscheinlich etwas sagen, was noch keiner
zuvor gesagt hat.
Behandeln Sie alle Ressourcen wie Archive
Alle vorhergehenden Ratschläge gelden für mehr als nur die
Archive von Mailverteilern. Bestimmte Informationsstücke an einer
stabilen, leicht auffindbaren Adresse zu haben, sollte ein
Organisationsprinzip alle Informationen des Projekts sein. Lass uns
die FAQ des Projekts als Fallstudie betrachten.
Wie nutzen Leute eine FAQ?
Sie wollen es nach bestimmten Worten und Begriffen
durchsuchen.
Sie wollen darin stöbern, Informationen aufsaugen, ohne
zwangsläufig nach Antworten zu bestimmten Fragen zu suchen.
Sie erwarten, dass Suchmachinene wie Googel über den Inhalt
der FAQ bescheid wissen, damit Suchergebnisse Einträge der
FAQ beinhalten können.
Sie wollen Leute direkt auf bestimmte Einträge in der FAQ
verweisen können.
Sie wollen neues Material zu der FAQ hinzufügen können,
bedenken Sie aber, dass das sehr viel weniger geschiedt, als
die Antworten aufgerufen werden – in einer FAQ wird sehr
viel öfter geschieben als gelesen.
Punkt 1 impliziert, dass die FAQ in irgend einem textuellen
Format zur verfügung stehen sollte. Punkte 2 und 3 implizieren, dass
die FAQ als HTML Seite zur verfügung stehen sollte, zusätzlich
impliziert Punkt 2, dass diese HTML Datei auf eine lesbare Art
aufgebaut sein soll, (d.H. Sie werden etwas Einfluss auf sein
Aussehen), und sollte ein Inhaltsverzeichnis haben. Punkt 4 bedeutet,
dass jeder einzelne Eintrag in der FAQ einen HTML benannten
Verweis (en. "anchor") zugewiesen haben sollte, ein tag
welches es Leute erlaubt, eine bestimmte Stelle in der Seite auf eine
bequeme Art zu erreichen (siehe im Kapitel
), in einem Format
welches leicht zu bearbeiten ist.
Benannte Verweise und ID-Attribute
Es gibt zwei Möglichkeiten einen Browser dazu zu bringen an
einer bestimmte Stelle in einer Webseite zu springen: benannte
Verweise und id Attribute.
Ein benannter Verweis is lediglich ein
normaler HTML Verweis (<a>...</a>),
aber mit ein "name" Attribut:
<a name="meinEtikett">...</a>
Neuere Versionen von HTML unterstützen eine generisches
id-Attribut, welches an jedem HTML-Element
angehängt werden kann, nicht nur an <a>.
Zum Beispiel:
<p id="meinEtikett">...</p>
Sowohl benannte Verweise als auch id-Attribute werden auf die
gleiche Art benutzt. Eines hängt eine Raute und den Bezeichner an
eine URL, um den Browser dazu zu bringen direkt zu der Stelle in der
Seite zu springen:
http://meinprojekt.beispiel.de/faq.html#meinEtikett
Praktisch alle Browser unterstützen benannte Verweise; die
meisten modernen Browser unterstützen das id-Attribut. Um sicher zu
gehen, würde ich Ihnen empfehelen, entweder nur benannte Verweise zu
benutzen, oder benannte Verweise und
id-Attribute zusammen (natürlich mit dem gleichen Bezeichner für beide
bei einem gegebenen Paar). Benannte Verweise können sich nicht nicht
selber Abschließen – selbst wenn es keinen Text in dem Element
gibt, müssen Sie es trotzdem in der vollständigen form Ausschreiben:
<a name="meinEtikett"></a>
...obwohl es normalerweise etwas Text, wie den Titel von dem
Abschnitt geben würde.
Ob Sie einen benannten Verweis benutzen oder ein id-Attribut
oder beides, denken Sie daran, dass der Bezeichner nicht für
jemandem sichtbar ist, der zu der Stelle blättert, ohne den
Bezeichner zu benutzen. Solch eine Person mag aber vielleicht den
Bezeichner für eine bestimmte Stelle herausfinden wollen, um zum
Beispiel die URL an einem Freund als Antwort zu schicken. Um ihnen
dabei zu helfen, fügen Sie einen title-Attribut
an dasselbe Element bei dem Sie das "name" und/oder
id-Attribut hizugefügt haben:
<a name="meinEtikett"
title="#meinEtikett">...</a>
Wenn der Mauszeiger über den Text innerhalb des Elements platziert
wird, auf den das title-Attribut angewandt wurde, werden
die meisten Browser einen kleinen Kasten aufklappen, in dem der Titel
angezeigt wird. Ich füge normalerweise das Raute-Zeichen hinzu, um
die Leute daran zu erinnern, es am Ende der URL zu platzieren um beim
nächsten Mal direkt an diese Stelle zu springen.
Die FAQ zu formatieren, ist ledigleich eines der Beispiele, wie
Sie eine Ressource vorzeigbar machen können. Die gleichen Eigenschaften
– direkte Durchsuchbarkeit, Verfügbarkeit für größere
Suchmaschinen, stabile Referenzen, und (wo möglich) Bearbeitbarkeit
– gelten für andere Webseiten, den Quellcode-Baum, den Bugtracker
usw. Es ist zufällig so, dass die meiste Software zur
Archivierung von Mailinglisten schon lange erkannt haben, wie
wichtig diese Eigenschaften sind, weshalb Mailverteiler dazu neigen,
diese Funktionen von sich aus eingebaut zu haben, während andere
Formate unter Umständen etwas zusätzliche Mühe seitens des wartenden
( behandelt, wie Sie diese Bürde
der Wartung über viele Entwickler verteilen können).
Festschreiben von Traditionen
Während das Projekt Geschichte und Komplexität ansammelt, nimmt
die Menge an Daten zu, die ein neuer Teilnehmer sich aneignen muss.
Solche die schon seit langen bei dem Projekt sind, konnten die
Konventionen des Projekts im laufe der Zeit lernen und erfinden. Sie
werden sich oft nicht der riesigen Menge an Traditionen die sich
angesammelt hat bewusst sein, und mögen überrascht sein, wie viele
Fehlschritte neue Mitglieder scheinbar machen. Natürlich, liegt das
nicht daran, dass die Neuen von einer schlechteren Qualität sind als
vorher; es ist lediglich, dass Sie einer größeren bürde der kulturellen
Anpassung als in der Vergangenheit gegenüberstehen.
Die Traditionen, die ein Projekt ansammelt haben genau soviel
damit zu tun, wie man komunizieren und Informationen bewahren, wie es
um die Festhaltung von Standards und andere technische Kleinigkeiten
geht. Wir haben uns bereits beide Standards im Kapitel
sowie und
im Kapitel
jeweils, und mit
Beispielen angeschaut. In diesem Abschnitt, geht es darum, wie man
solche Richtlinien aktuell hält, während das Projekt sich weiter
entwickelt, insbesondere Richtlinien darüber, wie Kommunikation
gehandhabt wird, denn das sind diejenigen die sich am meisten ändern
wärend das Projekt an Größe und Komplexität zunimmt.
Erstens, halten Sie ausschau danach, wie Leute verwirrt werden.
Wenn Sie die gleichen Situationen immer wieder auftauchen sehen,
insbesondere bei neue Beteiligten, ist die Wahrscheinlichteit groß,
dass eine Richtlinie dokumentiert werden muss, es aber noch nicht
ist. Zweitens, werden Sie nicht müde die gleichen Sachen immer wieder
zu sagen, und klingen Sie nicht, als würden Sie
langsam davon müde werden. Sie und die anderen Verteranen im Projekt
werden sich oft wiederholen müssen; es ist ein unausweichliche
Nebenwirkung von dem Ankommen von Neuankömmlinge.
Jede Webseite, jede Nachrich im Mailverteiler, und jeder
IRC-Kanal sollte als eine Werbefläche betrachtet werden – nicht für
kommerzielle Werbung, sondern für Werbung über die Ressourcen Ihres
eigenen Projekts. Was Sie auf dieser Fläche anbringen, hängt ab von der
Demographie von denen die es wahrscheinlich lesen werden. Ein IRC-Kanal
für Benutzerfragen zum Beispiel, wird wahrscheinlich Leute anlocken,
die noch nie zuvor mit dem Projekt zu tun hatten – oftmals jemand
der eben erst die Software installiert hat, und eine Frage hat, die er
gleich beantwortet haben möchte (schließlich hätte er es statt dessen
an den Mailverteiler schicken können, wenn es hätte warten können,
was wahrscheinlich weniger von seiner Zeit insgesamt in anspruch
genommen hätte, obwohl es länger gedauert hätte, bis er eine Antwort
erhalten hätte). Leute machen für gewöhnlich keine permanente
Investition in einem IRC-Kanal; sie tauchen auf, stellen ihre Frage und
gehen wieder.
Desshalb, sollte das Thema des Kanals auf Leute abgesehen sein,
die technische Fragen genau jetztüber die Software
haben, eher als sagen wir, Leute die sich vielleicht auf längere Sicht
an dem Projekt beteiligen wollen und für die Richtlinien für den Umgang
innerhalb der Gemeinschaft eher angebracht wären. Ein wirklich
betriebsammer Kanal handhabt es folgendermaßen (Vergleichen Sie es, mit
dem früheren Beispiel in
im Kapitel ):
Sie reden jetzt in #linuxhelp
Das Thema für #linuxhelp ist Bitte LESEN Sie
http://www.catb.org/~esr/faqs/smart-questions.html &&
http://www.tldp.org/docs.html#howto BEVOR Sie Fragen stellen | Regeln
für den Kanal finden Sie bei http://www.nerdfest.org/lh_rules.html |
Bitte schauen Sie sich http://kerneltrap.org/node/view/799 bevor Sie
Fragen über einen Upgrade nach Kernel 2.6.x stellen | Speicher Abfrage
möglich: http://tinyurl.com/4s6mc -> update nach 2.6.8.1 oder
2.4.27 | hash algo Katastrophe: http://tinyurl.com/6w8rf
| reiser4 weg
Bei Mailverteilern ist die "Werbefläche" eine kleine Fußnote,
die an jeder Nachricht angehängt wird. Die meisten Projekte schreiben
Anweisungen zur Anmeldung/Abmeldung dort, und vielleicht einen Hinweis
auf die Webseite des Projekts oder auch von der FAQ. Sie denken
vielleicht, das jeder der an dem Veriteiler angemeldet ist, wissen
würde, wie man diese Informationen findet, und das ist wahrscheinlich
auch der Fall – aber viel mehr Leute als nur die angemeldeten
sehen diese Nachrichten des Verteilers. Auf eine archivierte Nachricht,
kann von vielen Stellen aus verwiesen werden; tatsächlich werden manche
Nachrichten derart bekannt, dass sie letztendlich mehr Leser erhält,
als der gesamte Verteiler angemeldete Nutzer hat.
Formatierung kann einen großen Unterschied machen. Im
Subverison-Projekt zum Beispiel hatten wir eingeschränkten Erfolg
bei der Verwendung der Methode zur Filterung von Bugs, beschrieben in
im Kapite
. Viele falsche
Bug-Meldungen wurden immer noch von unerfahrenen Personen eingereicht, und
jedes mal, als das geschah, musste der Absender auf genau die gleiche
Art aufgeklärt werden, wie die 500 Personen vor ihm. Eines tages,
nahdem bei einem unserer Entwickler schließlich der Faden gerissen war,
und irgend einen armen Nutzer zugeflamed hatte, der die Richtlinien
für den Bugtracker nicht sorgfältig genug gelesen hatte, entschied
sich ein anderer Entwickler, dass dieses Muster schon viel zu lange
gelaufen war. Er schlug vor, dass wir die erste Seite des Bugtrackers
neu formatieren sollten, so dass der wichtigste Teil, die Vorgabe den
Bug zuerst auf dem Mailverteiler oder im IRC zu diskutieren, vor
man einen Bug meldet, in riesigen, fetten, roten Buchstaben auf einem
gelben Hintergrund, in der Mitte der Seite über alles andere stehen
würde. Das machten wir (Sie können das Ergebnis bei folgender Seite
sehen ),
und das Ergebnis, war ein merklicher Abfall in der Anzahl der falschen
Bug-Meldungen. Wir bekommen sie natürlich immer noch
– das wird immer der Fall sein – aber die Menge ist wesentlich
weniger geworden, selbst wärend die Anahl der Nutzer zunimmt. Die Folge
ist, dass die Bug-Datenbank nicht nur weniger Müll enthält, sondern,
dass diejenigen die auf diese Meldungen reagieren, besser gelaunt
bleiben und eher freundlich bleiben, wenn sie auf einer der
nunmehr seltenen Falschmeldungen reagieren. Das verbessert sowohl das
Erscheinungsbild des Projekts als auch die psychische Verfassung seiner
Freiwilligen.
Die Lektion die wir hierraus ziehen konnten war, dass es nicht
ausreichte, die Richtlinien einfach nur nieder zu schreiben. Wir
mussten sie auch dort platzieren wo sie von denjenigen gefunden werden,
die sie am meisten brauchen, und sie so formatieren, dass ihr status
als Einführungsmaterial sofort für Personen klar wird, die noch nicht
mit dem Projekt vertraut sind.
Statische Webseiten sind nicht die einzige Ort um für die Bräuche
des Projekts zu werben. Eine bestimmte Menge an interaktiver Kontrolle
(im sinne von freundlichen Hinweisen, nicht grober Zurechtweisung) ist
auch notwendig. Jede Überprüfungm auch die Überprüfung von Commits,
beschrieben in
im Kapitel , sollten auch
eine Evaluierung in wiefern es mit den Normen des Projekts
übereinstimmt oder nicht, insbesondere im Bezug auf Konventionen über
die Kommunikation.
Ein weiteres Beispiel aus dem Subversion-Projekt: Wie einigten
uns auf die Konvention wonach "r12908" für "Revision 12908 des
Projektarchivs der Versionsverwaltung." Das klein geschriebene vorangehende
"r" ist einfach zu schreiben und da es lediglich die halbe höhe der
Zahlen ist, ergibt es einen leicht zu ekennnenden Textblock, wenn man
es mit den Zahlen kombiniert. Sich auf diese Konventien zu einigen,
bedeutet natürlich nicht, dass jeder gleich anfangen wird, sie gleich
zu benutzen. Deshalb, wenn eine Commit-E-Mail mit folgendem Kommentar
eintrifft:
------------------------------------------------------------------------
r12908 | qsimon | 02-02-2005 14:15:06 -0600 (Mit, 02 Feb 2005) | 4 Zeilen
Patch vom Freiwilligen H. Mustermann <hmustermann@gmail.com>
* trunk/contrib/client-side/psvn/psvn.el:
Einige Rechtschreibfehler in revision 12828 behoben.
------------------------------------------------------------------------
...gehört es zur Überprüfung des Commits, zu sagen "Übrigens,
benutze bitte die 'r12828', nicht die 'revision 12828' schreibweise um
auf vergangene Änderungen zu verweisen." Das ist nicht einfach nur
pedantisch; es ist genau so wichtig um es automatisch parsen zu können,
wie für die menschliche Leserschaft.
Indem Sie das allgemeine Prinzip verfolgen, dass es kanonische
Methoden geben sollte, um auf häufige Entitäten zu verweisen und dass
man diese verweis Methoden überall auf eine konsistente Art verwenden
sollte, exportiert das Projekt in Wirklicheit gewisse Standards. Diese
Standards ermöglichen es andere, Werkzeuge zu schreiben, welche die
Kommunikationen des Projekts auf andere brauchbarere Arten zu
presentieren – zum Beispiel könnte eine Revision mit dem Format
"r12828" in einen Link zu der Seite des Projektarchivs verwandelt werden.
Das wäre schwieriger, wenn die Revision als "revision 12828"
geschrieben würde, sowohl weil diese Form durch einen Zeilenumbruch
getrennt werden könnte, und weil es weniger eindeutig ist (das Wort
"revision" wird häufig alleine erscheinen, und gruppen von Zahlen
erscheinen heufig alleine, wohingegen die Kombination "r12828 sich nur
auf eine Revisionsnummer beziehen kann). Ähnliche Bedenken gelten für
die Meldungsnummern im Bugtracker, FAQ Einträge (tipp: Benutzen Sie
eine URL mit einem benannten Verweis, wie in beschrieben), usw.
Selbst bei Einträgen, wo es keinen offensichtlichen kurze,
kanonische Form gibt, sollten Leute dazu ermutigt werden, wesentliche
Informationen einheitlich anzugeben. Wenn man zum Beispiel auf eine
Nachricht im Mailverteiler verweist, geben Sie nicht nur den
Absender und die Überschrift an; geben Sie auch die URL im Archiv
und den Message-ID-Header an. Letzteres erlaubt
es Leute die ihre eigene Kopie des Mailverteilers haben, (manche
Leute halten offline Kopieen, zum Beispiel auf einem Laptop für die
Nutzung auf Reisen) eindeutig die richige Nachricht zu identifizieren,
selbst wenn sie keinen Zugriff auf die Archive haben. Der Absender und
die Überschrift würden dazu nicht ausreichen, weil dieselbe Person
vielleicht mehrere Nachrichten im selben Thread schreibt, sogar am
selben Tag.
Je mehr ein Projekt wächst, desto wichtiger wird diese Art von
Konsistenz. Konsistent bedeutet, dass überall wo Leute hinschauen,
sie die gleichen Muster in verwendung sehen, also wissen sie auch sie
selber zu befolgen. Das wiederum, verringert die Anzahl der Fragen die
sie stellen müssen. Die Bürde millionen Leser zu haben ist nicht
größer, als die einen zu haben; Probleme der Skalierbarkeit fangen nur
dann aufzutreten, wann ein gewisser Prozentsatz dieser Leser Fragen
stellen. Wärend ein Projekt wächst, muss es desshalb diesen
Prozentsatz verringern, indem es die Dichte und Verfügbarkeit von
Informationen erhöht, damit jede beliebige Person eher das findet,
wonach sie sucht, ohne fragen zu müssen.
Keine Unterhaltungen im Bugtracker
Bei jedem Projekt, welches aktiv seinen Bugtracker benutzt,
gibt es immer die Gefahr, dass dieser Tracker sich selbst in ein
Diskussionsforum verwandelt, obwohl der Mailverteiler in
Wirklichkeit besser wäre. Für gewöhnlich, fängt es ganz unschuldig an:
Jemand hängt einen Kommentar an eine Meldung, sagen wir mit einem
Lösungsvorschlag, oder einem unvolständigen Patch. Jemand anderes
sieht das und bemerkt, dass es Probleme mit der Lösung gibt, und hängt
einen weiteren Kommentar an um sie zu schildern. Die erste Person
antwortet wiederrum, auch wieder mit einem Kommentar an der Meldung...
und so geht es weiter.
Das Problem dabei ist erstens, dass der Bugtracker ein ziemlich
unbequemer Ort ist, um eine Unterhaltung zu führen, und zweitens,
dass andere Leute vielleicht nicht zuschauen – schließlich erwarten
Sie, dass Diskussionen über die Entwicklung auf dem Entwickler
Verteiler stattfinden, also ist das der Ort an dem sie suchen. Es mag
sein, dass sie überhaupt nicht bei dem Verteiler für Änderungen im
Bugtracker angemeldet sind, und wenn sie es sind, kann es sein, dass sie
es nicht sonderlich gründlich verfolgen.
Aber wo genau bei dem Ablauf ging etwas schief? War es als die
ursprüngliche Person ihre Lösung an die Meldung anhängte – hätte
sie lieber eine Nachricht an den Verteiler schreiben sollen? Oder war
es als die zweite Person in der Meldung reagierte, anstatt an den
Verteiler?
Es gibt keine eine richtige Antwort, aber es gibt eine allgemeine
Regel: Wenn Sie lediglich Daten an einer Meldung anhängen, dann machen
Sie es auf dem Tracker, wenn Sie aber eine Unterhaltung
anfangen, dann machen Sie es auf dem Mailverteiler. Es
mag sein, dass Sie nicht immer erkennen können, was der Fall ist,
nutzen Sie aber einfach Ihre Urteilsvermögen. Wenn Sie zum Beispiel,
einen Patch anhängen, welches eine möglicherweise kontroverse Lösung
beinhaltet, kann es sein, dass Sie vorrausahnen können, das Leute
Fragen darüber haben werden. Obwohl Sie also normalerweise den Patch
an die Meldung anhängen würden (angenommen Sie wollen nicht oder lönnen
nicht direkt einen Commit der Änderung machen), wäre es in diesem Fall
vieleicht eher angemessen statt dessen, eine Nachricht an den
Mailverteiler zu schicken. In jedem Fall wird es aber einen Punkt geben,
an dem die eine oder andere Partei erkennen kann, dass es gleich von
dem einfachen Anhängen von Informationen zu einer echten Unterhaltung
übergeht – in dem Beispiel mit dem dieser Abschnitt anfing, wäre
das die zweite Person, welche in dem Moment, wo er bemerkt, dass es
Probleme mit dem Patch gibt, hätte vorrausahnen können, dass eine echte
Diskussion sich gleich entwickelt, und desshalb in dem angemessenen
Medium gehalten werden sollte.
Um einen Vergleich zur Mathematik zu führen, wenn die
Information danach aussieht, als würde es schnell konvergieren, dann
stellen Sie es gleich in den Bugtracker; wenn es danach aussieht
als würde es divergieren, dann wäre ein Mailverteiler oder ein
IRC-Kanal der bessere Ort.
Das bedeutet nicht, dass es niemals Austausche auf dem Bug
Tracker geben sollte. Dem Meldenden nach weiteren Details einer
Anleitung zur Reproduktion zu fragen, neigt beispielsweise dazu ein im
hohen maße konvergenter Ablauf zu sein. Die Rückmeldung wird
wahrscheinlich keine neuen Probleme hervorbringen, es wird lediglich
die Informationen erweitern, die bereits erfasst wurden. Es gibt
keinen Grund den Mailverteiler mit diesem Vorgang abzulenken; Sie
können es durchaus in den Kommentaren des Bugtrackers erledigen.
Gleichermaßen gilt, wenn Sie sich ziemlich sicher sind, dass der Bug
fälschlicherweise gemeldet wurde (d.h. kein Bug ist), dann können Sie
es gleich in der Meldung sagen. Selbst auf ein kleines Problem bei einer
vorgeschlagenen Lösung hinzuweisen ist in Ordnung, angenommen es ist
kein Problem welches die Lösung gänzlich verhindert.
Wenn Sie andererseits philosophische Angelegenheiten über den
Ramen der Meldung oder das Verhalten der Anwendung aufbringen, können
Sie sich sicher sein, dass andere Entwickler beteiligt sein wollen.
Die Diskussion wird wahrscheinlich eine weile lang divergieren, bevor
es konvergiert, also schreiben Sie an den Mailverteiler.
Verlinken Sie immer von der Meldung auf den Thread im
Mailverteiler. Es ist immer noch wichtig für jemand der die Meldung
verfolgt, in der Lage zu sein, die Diskussion zu erreichen, selbst wenn
die Meldung selber nicht das Forum der Diskussion ist. Die Person die
den Thread anfängt, mag das ein wenig aufwendig finden, aber in
Open-Source-Kultur hat im allgemeinen der Autor die Verantwortung: Es ist
viel wichtiger Sachen für duntzende oder hunderte Leute die den Bug
möglicherweise lesen als für die drei oder fünf die darüber schreiben.
Es ist in Ordnung, wichtige Schlussfolgerungen oder
Zusammenfassungen aus der Listen-Diskussion in die Meldung zu
übertragen, wenn das es für die Leser einfacher macht. Ein häufiger
Ablauf ist es, eine E-Mail-Diskussion anzufangen, einen Link an den
Thread in der Meldung zu schreiben, und dann sobald die Diskussion
zu Ende ist, die finale Zusammenfassung in die Meldung zu kopieren
(zusammen mit einem Link zu der Nachricht welche die Zusammenfassung
beinhaltet), damit jemand die sich die Meldung anschaut, leicht
erkennen kann, welche Lösung beschlossen wurde, ohne irgendwo anders
hinclicken zu müssen. Man merke an, dass die gewöhnliche Problematik
doppelter Informationen hier nicht gibtm da sowohl Archive als auch
Kommentare in einer Meldung, im allgemeinen sowieso statische,
unveränderliche Daten sind.
Öffentlichkeit
Bei freier Software gibt es einen relativ glatten Übergang
zwischen rein internen Diskussionen und öffentlichen Bekanntmachungen.
Das liegt zum Teil daran, dass die Zielgruppe immer schlecht bestimmbar
ist: Angesichts, dass die meisten oder alle Nachrichten öffentlich
zugänglich sind, hat das Projekt nicht die volle Kontrolle darüber,
welchen Eindruck die Öffentlichkeit bekommt. Jemand – sagen wir
ein Mitarbeiter – kann die Aufmerksamkeit
von Millionen Lesern auf eine Nachricht richten, von der keiner vermutet
hätte, dass sie jemals außerhalb des Projekts gesehen werden würde.
Das ist eine Tatsache des Lebens, mit der alle Open-Source-Projekte
leben müssen, in der Praxis aber, ist das Risiko für gewöhnlich klein.
Im algemeinen, sind die Bekanntgaben die das Projekt am ehesten
öffentlich verbreiten will, diejenigen die auch am ehesten bekannt
werden, angenommen Sie nutzen die richtigen Mechanismen darauf
hinzuweisen, wie berichtenswert es ist für die Öffentlichkeit ist.
Für großere Bekanntgaben, gibt es allgemein vier Hauptkanäle der
Verbreitung, auf den Melungen so gleichzeitig wie möglich gemacht
werden sollten:
Die erste Seite Ihres Projekts wird wahrscheinlich
von mehr leuten gesehen, als irgend ein anderer Teil des
Projekts. Wenn Sie eine wirklich große Ankündigung haben,
schreiben Sie einen paar kurzen Sätze dorthin. Sie sollten
eine kurze Zusammenfassung sein die auf die Pressemitteilung
(siehe unten) für weitere Informationen verweist.
Gleichzeitig, sollten Sie auch einen "Nachrichten"
oder "Pressemitteilungen" Bereich auf der Webseite haben
wo die Bekanntgabe im detail erläutert werden kann. Der
Sinn von einer Pressemitteilung liegt zum Teil darin, ein
einziges kanonisches "Bekanntgabe-Objekt" zu haben, auf
das andere Seite verlinken können, also stellen Sie sicher,
dass es entsprechend strukturiert ist: entweder als eine
Webseite für jede neue Version, als diskreten Eintrag in
einem Blog, oder als irgend eine andere Art Entität auf
die verlinkt werden kann, und die trotzdem eindeutig
von anderen Veröffentlichungen imselben Bereich zu
unterscheiden ist.
Wenn Ihr Projekt einen RSS-Feed hat, stellen Sie
sicher, dass die Ankündigung auch dort veröffentlicht wird.
Das mag automatisch passieren wenn Sie die Pressemitteilung
erstellen, abhängig davon, wie Ihre Webseite eingerichtet
ist. (RSS ist eine Methode, um
Nachrichten-Zusammenfassungen mit einer Menge Metadaten an
"Abonenten" zu verteilen, zu verbreiten, also Leute die ein
Interesse gezeigt haben, diese Zusammenfassungen zu
bekommen. Siehe
für weitere Informationen über RSS.)
Wenn es in der Ankündigung um eine neue Version der
Software geht, dann aktualisieren Sie den Eintrag Ihres Projekts
bei (siehe in dem es darum geht diesen Eintrag
überhaupt erst anzulegen). Jedes mal, wenn Sie einen
Freshmeat-Eintrag aktualisieren, geht dieser Eintrag auf die
Änderungsliste von Freashmeat für den Tag. Die Änderungsliste
wird nicht nur auf Freashmeat selber aktualisiert, sondern auf
verschiedenen anderen Portalen (inklusive ) welches erwartungsvoll von einer Horde
Menschen beobachtet wird. Freshmeat bietet auch die gleichen
Daten mittels eines RSS-Feed an, damit Leute die den RSS-Feed
von Ihrem projekt aboniert haben, die Ankündigung trotzdem
durch den von Freshmeat sehen.
Schreiben Sie eine E-Mail an den Verteiler für
Ankündigungen (en. announcement) ihres Projekts. Der Name von
diesem Verteiler sollte wirklich "announce" sein, d.h.
announce@ihrprojekt.org, weil das
mittlerweile so ziemlich zum Standard geworden ist, und Ihr
Projekt sollte klarstellen, dass es einen sehr geringen
Betrieb hat, ausschließlich für Projekt Ankündigunen. Die
meisten dieser Ankündigunen werden sich um neue Versionen der
Software drehen, gelegentlich aber andere Ereignisse, wie eine
Spendaktion, die Entdeckung einer Sicherheitslücke (siehe
) später
in diesem Kapitel, oder eine größere Änderung in der
Richtung des Projekts können dort auch gemeldet werden. Da es
ein Verteiler mit geringem Betrieb ist und nur für wichige
Sachen benutzt wird, hat der announce
Verteiler typischerweise die höchste Anzahl an Anmeldungen von
allen Verteilern in Ihrem Projekt (das bedeutet natürlich, dass
Sie es nicht missbrauchen sollten – überlegen Sie genau vor
Sie etwas schreiben). Um zu vermeiden, dass jeder beliebige,
oder schlimmer noch, Spam durchkommt, muss der
announce Verteiler immmer moderiert werden.
Versuchen Sie die Ankündigunen an all diesen Stellen zur gleichen
Zeit zu machen, so nahe wie möglich. Manche werden vielleicht verwirrt,
wenn Sie eine Ankündigung auf dem Verteiler sehen, aber keinen
entsprechenden Eintrag auf der Webseite des Projekts oder seinen
Pressemitteilungen, welches dem entspricht. Wenn Sie die die
verschiedenen Änderungen (E-Mails, Bearbeitung der Webseite, usw.)
aufreihen und alle in einem Zug abschicken, können Sie das Fenster der
inkonsistenz sehr klein halten.
Bei einem weniger wichtigen Ereignis, können Sie manche oder
alle obigen Kanäle ausschließen. Das Ereignis wird immer noch von
der Öffentlichkeit entsprechend seiner Wichtigkeit bemerkt werden.
Während zum Beispiel eine neue Version der Software ein großes
Ereignis ist, ist lediglich das Datum für eine neue Version
festzulegen, wenn auch einigermaßen Berichtenswert, nich annähernd so
wichtig wie die neue Version selbst. Ein Datum festzulegen ist eine
E-Mail an die täglichen Mailverteiler wert (nicht an den "announce"
Verteiler), und eine aktualisierung der Zeitplan oder der Status-Seite,
aber nicht mehr.
Sie werden vielleicht trotzdem dieses Datum in anderen
Diskussionen im Internet auftauchen sehen, überall dort, wo Leute an
dem Projekt interesiert sind. Leute die auf Ihren Verteilern
herumschleichen, lediglich horchen und nie etwas sagen, sind nicht
unbedingt an andern Stellen still. Mundpropaganda sorgt für eine sehr
weite Verbreitung; Sie sollten darauf zählen, und selbst kleine
Ankündigunen sorgfältig ausarbeiten, derart, dass eine korrekte
übertragung der Informationen ermutigt wird. Insbesondere Nachrichten,
von denen Sie erwarten, dass sie zitiert werden, sollten einen klaren
für die Zitierung gedachten Anteil haben, genau so, als ob Sie eine
formale Pressemitteilung schreiben würden. Zum Beispiel:
Nur eine Information über den aktuellen Stand:
Wir planen die Version 2.0 von Scanley mitte August 2005 zu
veröffentlichen. Sie können immer
http://www.scanley.org/status.html auf Aktualisierungen
überprüfen. Die große neue Funtion wird die Suche mit
Regulären Ausdrücken sein.
Andere neue Funktionen sind unter anderem: ...
Es wird auch verschiedene Bugfixes geben, unter
anderem: ...
Der erste Absatz ist kurz, gibt die zwei wichtigsten Informationen
(Datum der Veröffentlichung und die wichtige neue Funktion), und eine
URL die man für weitere Nachrichten besuchen kann. Wenn dieser Absatz
das einzige ist, was über den Bildschirm von jemanden läuft, sind Sie
immer noch auf einem guten Weg. Die übrige E-Mail könnte verloren gehen
ohne das wesentlich am Ihnalt zu beeinflussen. Manchmal werden Leute
sowieso auf die ganze E-Mail verlinken, aber genau so oft, werden Sie
nur einen kleinen Teil zitieren. Wenn man letztere Möglichkeit bedenkt,
können Sie es ihnen auch genau so gut einfach machen, und bei dem
Geschäft etwas Einfuss darüber haben, was zitiert wird.
Bekanntgabe von Sicherheitslücken
Eine Sicherheitslücke zu handhaben ist anders, als jede andere Art
von Bug-Meldung zu handhaben. Bei freier Software, ist es fast schon
eine religiöse Überzeugung alles offen zu machen. Jeder Schritt der im
Ablauf der normalen Bug handhabung ist für alle sichtbar, denen es
interesiert: Das Eintreffen einer ersten Meldung, die darauf folgende
Diskussion, und die letztendliche Behebung.
Sicherheitslücken sind anders. Sie können die Daten und
möglicherweise die Rechner von Nutzer kompromitieren. Solche Probleme
offen zu diskutieren käme dem weltweiten Bewerben ihrer Existenz gleich
– inklusive gegenüber allen Parteien, die vielleicht einen
böswilligen Nutzen aus dem Bug ziehen könnten. Selbst den Fix zu
commiten, kündigt effektiv die Existenz des Bugs an (es gibt potentielle
Angreifer, welche die Commit-Kommentare öffentlicher Projekte
verfolgen, systematisch auf der Suche nach Änderungen, die auf
Sicherheitsprobleme in dem noch nicht geänderten Code hinweisen). Die
meisten Projekte haben sich auf ungefär die gleichen Schritte
festgelegt, um diesen Konflikt zwischen Offenheit und Geheimhaltung
zu handhaben, basierend auf folgende Richtlinien:
Reden Sie nicht öffentlich über den Bug bis ein Fix
verfügbar ist; stellen Sie dann den Fix zu genau der selben
Zeit zur Verfügung wie Sie den Bug bekanntgeben.
Denken Sie sich diesen Fix so schnell wie möglich
aus – insbesondere wenn jemand von außerhalb des Projekts
den Bug gemeldet hat, denn dann wissen Sie, dass es zumindest
eine Person außerhalb des Projekts gibt, der in der Lage ist
die Lücke auszunutzen.
In der Praxis, führen diese Prinzipien zu einer ziemlich
standardisierte reihe an Schritten, welche in den Abschnitten weiter
unten beschrieben werden.
Empfang der Meldung
Ein Projekt muss offensichtlich die Möglichkeit habem Meldungen
über Sicherheitslücken von jedem zu bekommen. Die gewöhnlichen Adressen
für Bug-Meldungen reichen aber nicht aus, da sie auch von jedem
beobachtet werden können. Führen Sie desshalb einen getrennten
Mailverteiler um Bug-Meldungen über Sicherheitslücken zu bekommen. Dieser
Verteiler darf keine öffentlich zugänglichen Archive haben, und
seine Anmeldungen müssen strengstens überwacht werden – nur
langjährige, vertrauenswürdige Entwickler dürfen auf den Verteiler
sein. Wenn Sie eine formale Definition darüber haben wollen was
"vertrauenswürdig" ist, können Sie "jeder der seit zwei oder mehr
Jahren commit Zugriff hat" verwenden, um Bevorzugung zu vermeiden.
Das ist die Gruppe die Sicherheitslücken handhaben wird.
Im Idealfall sollte der Sicherheits-Verteiler nicht vor Spam
geschützt oder moderiert werden, da Sie nicht wollen, dass eine
wichtige Meldung gefiltert oder verzögert wird, nur weil an dem
Wochenende keine Moderatoren online waren. Wenn Sie doch Software zum
automatischen Schutz vor Spam benutzen, versuchen Sie es mit einer
hohen Toleranz zu konfigurieren; es ist besser ein paar Spam-Mails
durchkommen zu lassen, als eine Meldung zu verpassen. Damit der
Verteiler effektiv ist, müssen Sie natürlich seine Adresse bewerben;
in anbetracht, dass er nicht moderiert wird, wenn überhaupt, nur leicht
vor Spam geschützt wird, versuchen Sie nie seine Adresse ohne irgend
eine Art verschleierung der Adresse zu verbreiten, wie in im Kapitel beschrieben.
Glücklicherweise, muss die Verschleierung der Adresse sie nicht
unbedingt unleserlich machen; siehe , und schauen Sie
sich den HTML Quellcode für die Seite als Beispiel an.
Entwickeln Sie den Fix im stillen
Was macht der sicherheits Verteiler also wenn es eine Meldung
bekommt? Die erste Aufgabe ist zu evaluieren wie schwerwiegend und
dringend es ist:
Wie ernst ist die Lücke? Erlaubt es einen
böswilligen Angreifer den Computer von jemanden der Ihre
Software benutzt zu übernehmen? Oder gibt es lediglich
Informationen darüber, wie groß manche ihrer Dateien sind?
Wie leicht ist es die Lücke auszunutzen? Kann ein
Angriff automatisiert werden, oder erfordert es Wissen über
bestimmte Umstände, wohlbegründete Vermutungen und Glück?
Wer hat Ihnen das Problem
gemeldet? Die Antwort auf diese Frage ändert natürlich nichts an
der Natur der Lücke, aber es gibt Ihnen eine Idee davon, wie
viele andere darüber bescheid wissen könnten. Wenn die Meldung
von einem der eigenen Mitglieder des Projekts kommt, können Sie
es etwas gelassener nehmen (aber nur ein bisschen), da Sie
ihnen Vertrauen können, dass sie es keinen anderen gesagt
haben. Wenn es andereseits in einer E-Mail von
anonymer14@globalehacker.net kam, dann
sollten Sie lieber so schnell wie möglich etwas unternehmen.
Die Person hat Ihnen einen Gefallen getan, indem sie Ihnen
überhaupt über das Problem informiert hat, aber Sie haben
keine Ahnung wie viele weitere sie darüber bescheid gesagt hat,
oder wie lange sie warten wird, vor sie die schwachstelle in
einem laufenden System ausnutzen wird.
Man merke an, dass die Unteschiede von denen wir hier reden oft
nur eine enge Spanne zwischen dringend und
extrem dringend ist. Selbst wenn die Meldung
von einer bekannten, wohl gesinnten Quelle kommt, könnte es immer noch
andere im Netz geben, die diesen Bug schon vor langem entdeckt haben,
und es nur nicht gemeldet haben. Der einzige Fall bei dem es nicht
dringen ist, ist wenn der Bug von sich aus die Sicherheit nicht
ernsthaft Kompromitiert.
Das "anonyer@globalehacker.net" Beispiel
ist im übrigen nicht schertzhaft gemeint. Es kann durchaus sein, dass
Sie Bug-Meldungen von anonymen Personen bekommen, die mit Ihren Worten
nie ganz klar stellen ob sie auf Ihrer Seite sind oder nicht. Es macht
keinen Unterschied: Wenn Sie eine Sicherheitslücke an Sie gemeldet
haben, werden sie das gefühl haben Ihenen eine Gefallen getan zu haben,
und Sie sollten entsprechend antworten. Danken Sie ihnen für die
Meldung, geben Sie ein Datum an vor dem Sie vorhaben einen öffentlichen
Fix freizugeben, und halten Sie sie den Kontakt. Manchmal werden sie
Ihnen ein Datum geben – das heißt, eine
implizite Drohung den Bug an einem bestimmten Datum bekannt zu geben,
ob Sie bereit sind oder nicht. Das mag sich nach einschüchterndem
Machtspiel anfühlen, aber es ist wahrscheinlich eher eine vorsorgliche
Maßnahme die sich aus vergangener Enttäschung mit nicht reagierenden
Software-Produzenten, welche die Sicherheitsmeldungen nicht ernst
genug nahmen. In jedem Fall, können Sie es sich nicht leisten, dieser
Person auf die Nerven zu gehen. Wenn der Bug ernst ist, hat er
schließlich Wissen, welches Ihren Nutzern ernste Probleme bereiten
könnte. Behandeln Sie solche Personen gut, und hoffen Sie darauf, dass
sie auch gut behandelt werden.
Eine weitere Person die häufig Bugs meldet, ist der Sicherheitsprofi,
jemand der davon lebt, Code zu überprüfen und sich auf dem
Laufenden über die neusten Software-Schwachstellen hält. Diese Leute
haben für gewöhnlich Erfahrung mit beiden Seiten des Zauns – sie
haben sowohl Meldungen gemacht als auch bekommen, wahrscheinlich mehr
als die meisten in Ihrem Projekt. Auch sie werden wahrscheinlich ein
Frist setzen, vor dem eine Lücke geschlossen werden muss, vor sie an
die öffentlichkeit gehen. Die Frist mag etwas verhandelbar sei, das
hängt aber vom Meldenden ab; Fristen sind unter Sicherheitsexperten
so ziemlich als die einzige Möglichkeit anerkannt worden, Organisationen
zuverlässig dazu zu bringen, sich um Sicherheitsprobleme zeitnah zu
kümmern. Betrachten Sie die Frist also nicht als unhöflich, sie ist
eine altehrwürdige Tradition und es gibt gute Gründe dafür.
Sobald Sie wissen wie schwerwiegend und dringend eine Lücke ist,
können Sie sich an dem Fix zu schaffen machen. Es gibt manchmal einen
Kompromiss zwischen einen eleganten Fix und es schnell zu machen; das
ist der Grund warum Sie sich vorher über die Dringlichkeit einigen
müssen vor Sie anfangen. Halten Sie die Diskussion über den Fix
natürlich auf die Mitglieder des Sicherheitsverteilers beschränkt,
sowie auf den ursprünglichen Meldenden (wenn die beteiligt sein möchte)
und solche Entwickler die aus technischen Gründen herangezogen werden
müssen.
Committen Sie den Fix nicht zum Projektarchiv. Halten Sie ihn als
Patch bereit bis zum Datum der Bekanntgabe. Wenn Sie es committen
würden, selbst mit einem unscheinbaren Kommentar, könnte jemand die
Änderung bemerken und verstehen. Sie wissen nie, wer Ihr Projektarchiv im
Auge behält und warum sie vielleicht interesiert sein könnten.
Commit-E-Mails
abzuschalten würde nichts bringen; erstens weil sich die Lücke
in der Reihe der E-Mails verdächtig aussehen würde, und die Daten wären
immer noch im Projektarchiv. Machen Sie einfach die ganze Entwicklung
in einem Patch und halten Sie ihn an einem privaten Ort, vielleicht ein
getrenntes privates Projektarchiv, das nur denjenigen bekannt ist, die
schon über den Bug Bescheid wissen. (Wenn Sie eine dezentralisierte
Versionsverwaltung benutzen wie Arch oder SVK, können Sie die Arbeit
mit kompletter Versionsverwaltung machen und dieses Projektarchiv einfach
vorm Zugriff für Ausenstehende schützen.)
CAN/CVE-Nummer
Sie haben vielleicht eine CAN-Nummer oder
eine CVE-Nummer im Zusammenhang mit
Sicherheitsproblemen gesehen. Diese Zahlen sehen für gewöhnlich zum
Beispiel so "CAN-2004-0397" oder so "CVE-2002-0092" aus.
Beide Zahlenarten repräsentieren den gleichen Entitätstyp:
Ein Eintrag in der Liste von "Common Vulnerabilities and Exposures"
(de. "Verbreitete Schwachstellen und Aufdeckungen") die bei
gepflegt wird. Der Sinn dieser
Liste ist es standardisierte Namen für alle bekannte
Sicherheitsprobleme zur verfügung zu stellen, damit jeder einen
eindeutigen, kanonischen Namen bei der Diskussion eines solchen hat,
und einen zentralen Ort zu haben, um mehr Informationen zu bekommen.
Der einzige Unterschied zwischen einer "CAN"-Nummer und einer
"CVE"-Nummer ist, dass erstere einen Kandidaten-Eintrag repräsentiert,
welches noch nichtbestätigt wurde, und letzteres einen bestätigten
Eintrag repräsentiert. Beide Typen sind jedoch für die Öffentlichkeit
sichtbar, und die Nummer für einen Eintrag ändert sich nicht, wenn Sie
bestätigt wird – der "CAN"-Prefix wird einfach mit "CVE" ersetzt.
Ein CAN/CVE-Eintrag entält selber nicht eine vollständige
Beschreibung von dem Bug und wie Sie sich vor ihm schützen.
Stattdessen, enthält es eine kurze Beschreibung und eine Liste von
Verweisen auf externe Ressourcen (wie die Archive des Verteilers) wo
Leute detalliertere Infomationen nachschlagen können. Der wirkliche
Sinn von ist einen wohl
organisierten Ort zu haben, in dem jede Schwachstelle einen Namen
haben und eine klare Route zu weiteren Daten haben kann. Siehe
als Beispiel für einen Eintrag. Beachten Sie, dass Verweise sehr kurz
gehalten sein können, mit Quellen die als kryptische Abkürzungen
erscheinen. Ein Schlüssel zu diesen Abkürzungen befindet sich bei
.
Wenn Ihre Schwachstelle die Kriterien für ein CVE erfüllt, kann
es sein, dass Sie dafür eine CAN-Nummer bekommen wollen. Der Prozess
dafür ist absichtlich umständlich gehalten: Im Prinzip müssen Sie
jemanden kennen, oder jemanden kennen der jemand anderen kennt. Das ist
nicht so verrückt wie es sich anhören mag. Damit die CVE-Redaktion
es vermeiden kann von unechten oder schlecht geschriebenen Vorschlägen
überwältigt wird, nehmen Sie nur Vorschläge von Quellen, die sie bereits
kennen und denen Sie vertrauen. Damit Ihre Lücke in der Liste aufgenommen
wird, müssen Sie desshalb einen Pfad von Bekanntschaften von Ihrem
Projekt hin zu der CVE-Redaktion finden. Fragen Sie bei Ihren
Entwicklern nach; einer von Ihnen wird wahrscheinlich jemand anderen
kennen der bereits durch den CAN-Prozess gelaufen ist, oder der jemand
kennt der es gemacht hat, usw. Der Vorteil dieser Methode ist auch,
das irgendwo in der Kette jemand sein kann, der genug weiß, um Ihnen
sagen zu können, dass a) es nicht als Lücke oder Aufdeckung nach den
Kriterien von MITRE zählen würde, es also keinen Sinn hat es
vorzuschlagen, oder b) dass die Lücke bereits eine CAN- oder CVE-Nummer
hat. Letzteres kann passieren, wenn der Bug
bereits auf einer andern Liste für Sicherheitsberatung veröffentlicht
wurde, zum Beispiel bei oder auf
dem BugTraq-Mailverteiler bei
. (Wenn das passiert ist,
ohne das Ihr Projekt davon erfahren hat, dann sollten Sie sich sorgen
machen, was noch möglicherweise abläuft worüber Sie nichts wissen.)
Wenn Sie überhaupt eine CAN/CVE-Nummer bekommen, werden Sie sie
wahrscheinlich im frühen Stadium Ihrer Bug-Untersuchung bekommen, damit
alle weitere Kommunikation sich auf diese Nummer beziehen kann.
CAN-Einträge stehen unter einem Embargo bis zu dem
Veröffentlichungsdatum; Der Eintrag wird als leerer Platzhalter
existieren (damit Sie den Namen nicht verlieren), es wird aber keine
Informationen über die Lücke enthüllen, bist zu dem Datum an dem Sie
den Bug und den Fix bekanntgeben.
Weitere Informatione über den CAN/CVE-Prozess kann bei
gefunden
werden, und eine besonders klare Darstellung von dem Nutzen eines
Open-Source-Projekts der CAN/CVE-Nummern befindet sich auf .
Vorankündigung
Sobald Ihr Sicherheitsteam (also die Entwickler die auf dem
sicherheits Verteiler sind, oder die zu einer bestimmten Meldung
herangezogen wurden) eine Fix bereit hat, müssen Sie entscheiden
wie Sie es Verbreiten wollen.
Wenn Sie den Fix einfach zu Ihrem Projektarchiv committen, oder
sonstwie der Welt bekanntgeben, zwingen Sie effektiv alle die Ihre
Software benutzen sofort zu aktualisieren oder das Risiko einzugehen,
gehackt zu werden. Es ist deshalb manchmal angemessen, für bestimmte
Nutzer eine Vorankündigung zu machen. Das gilt
insbesondere bei Client-Server-Software, bei dem es wenige wohl
bekannte Server geben kann, die verlockende Ziele für Angreifer sind.
Die Administratoren dieser Server wären dankbar darüber einen
zusetzlichen Tag oder zwei für die Aktualisierung zu haben, damit
Sie bereits geschützt sind, wenn die Lücke öffentlich bekannt wird.
Vorankündigung bedeutet lediglich eine E-Mail an diese
Administratoren zu senden, vor dem Veröffentlichungsdatum, in dem Sie
ihnen über die Lücke bescheid geben und wie sie es beheben können. Sie
sollten eine Vorankündigung nur an Personen schicken, die Sie diese
diskrete Information anvertrauen können. Die Qualifikation um eine
Vorankündigung zu erhalten hat also zwei Bedingungen: Der Empfänger
muss eine große Installation in Betrieb haben, wichtige Server bei dem
eine Kompromitierung etwas ernstes wäre, und der
Empfänger muss jemanden sein, der sich über das Sicherheitsproblem vor
dem Veröffentlichungsdatum verplappert.
Senden Sie jede E-Mail mit einer Vorankündigung einzeln (eines
nach dem anderen) an jedem Empfänger. Senden Sie nicht
an die komplette Liste von Empfängern auf ein mal, da sie
dann ihre gegenseitigen Namen sehen würden – was zur Folge hat,
dass Sie im Grunde genommen jedem Empfänger über die Tatsache
aufmerksam machen, dass jeder andere Empfänger
möglicherweise die Sicherheitslücke auf seinem Empfänger hat. Es an
alle mittels einem blinden CC (BCC) zu schicken ist auch keine gute
Lösung, da manche Administratoren ihre Mail-Konten mit Spam-Filtern
schützen, die entweder BCC-Mails blockieren, oder ihre Priorität
reduzieren, da heutzutage sehr viel Spam mit BCC verschickt wird.
Hier ist ein Beispiel E-Mail für eine Vorankündigung:
Von: Ihr Name hier
An: admin@grosser-bekannter-server.de
Antwort-an: Ihr Name hier (nicht die Adresse des Sicherheitsverteilers)
Betreff: Vertrauliche Meldung einer Scanly-Sicherheitslücke.
Diese E-Mail ist eine vertrauliche Vorankündigung einer
Sicherheitsmeldung zum Scanley-Server.
Bitte leiten Sie keinen Teil dieser E-Mail an irgend jemand weiter. Die
öffentliche Bekanntgabe wird nicht vor dem 19. Mai stattfinden, und
wir würden die Information gerne bis dann unter Verschluss halten.
Sie erhalten diese E-Mail, da (wir denken, dass) Sie einen Scanley-Server
betreiben, und wir ihn lieber gepatcht hätten, bevor die Sicherheitslücke
am 19ten Mai bekannt gegeben wird.
Verweise:
===========
CAN-2004-1771: Scanley Speicherüberlauf in Abfragen
Sicherheitslücke:
==============
Der Server kann dazu gebracht werden, beliebige Befehle auszuführen,
wenn die Locale des Servers falsch konfiguriert ist und der Client
eine fehlerhafte Abfrage macht.
Sicherheitsgrad:
=========
Sehr ernst, kann die Ausführung von beliebigen Code auf dem Server
zur Folge haben.
Provisorische Lösungen:
============
Die 'natural-language-processing'-Einstellung in der
scanley.conf auf 'off' zu stellen, schließt die Sicherheitslücke.
Patch:
======
Der folgende Patch gilt für Scanley 3.0, 3.1, und 3.2.
Eine neu Version (Scanley 3.2.1) wird am oder kurz vor dem 19. Mai
veröffentlicht werden, damit es zur gleichen Zeit verfügbar istm wie
die Bekanntgabe der Lücke. Sie können dem Patch jetzt anwenden oder
einfach auf die neue Version warten. Der einzige Unterschied
zwischen 3.2 und 3.2.1 wird diese Patch sein.
[...Patch folgt hier...]
Wenn Sie eine CAN-Nummer haben, geben Sie sie bei der
Vorankündigung mit an (wie oben gezeigt), selbst wenn die Information
unter Verschluss steht und die MITRE Seite desshalb leer sein wird. Die
CAN-Nummer erlaubt es dem Empfänger mit sicherheit zu wissen, dass der
Bug über den sie eine Vorankündigung bekommen haben, der gleiche ist
von dem sie später durch öffentliche Kanäle erfahren, also müssen sie
sich keine Sorgen darüber machen, ob weitere Schritte notwendig sind,
was genau der Sinn einer CAN/CVE-Nummer ist.
Verteilen Sie den Fix öffentlich
Der letzte Schritt bei der Handhabung einer Sicherheitslücke, ist
den fix öffentlich zu verteilen. Sie sollten in einer einzigen,
umfangreichen Meldung, das Problem beschreiben, die CAN/CVE-Nummer
angeben, falls vorhanden, beschreiben wie das Problem zu umgehen ist,
und wie es permanent 'gefixed' werden kann. 'Fix' bedeutet für
gewöhnlich auf eine neuere Version der Software zu aktualisieren,
obwohl es manchmal die Anwendung von einem Patch bedeuten kann,
insbesondere wenn die Software sowieso meistens vom Quellcode-Format
aus betrieben wird. Wenn Sie doch eine neue Version machen, sollte
es sich von einer existierenden Version durch genau diesen
sicherheits-Patch unterscheiden. So können konservative
Administratoren, aktualisieren, ohne sich sorgen zu machen, was sie
noch beeinflussen könnten; sie müssen sich also keine Sorgen über
zukünftige Upgrades machen, da der sicherheits Patch als Folge in
allen zukünftigen Versionen enthalten sein wird. (Details der
Abläufe für neue Versionen werden in
im Kapitel
behandelt.)
Ob der öffentliche Fix eine neue Version zur Folge hat oder
nicht, machen Sie die Meldung mit ungefähr der der gleichen Priorität
wie Sie eine neue Version machen würden: Senden Sie eine E-Mail an den
announce Verteiler des Projekts, machen Sie eine
neue Pressemitteilung, aktualisieren Sie den Freshmeat-Eintrag, usw.
Während Sie nie versuchen sollten, die Existenz einer Sicherheitslücke
herunterzuspielen, aus Sorge um den Ruf des Projekts, können Sie
durchaus den Ton und die Gewichtung der Sicherheitsmeldung anpassen,
um den Ernst des Problems zu entsprechen. Wenn die Sicherheitslücke
nur eine kleine Offenlegung von Informationen ist, nicht eine Lücke
die es erlaubt den kompletten Computer des Anwenders zu übernehmen,
mag es keinen all zu großen Wirbel gerechtfertigen. Sie können sich
sogar Entscheiden den announce Verteiler damit
abzulenken. Wenn das Projekt schließlich jedes mal Wolf schreit,
werden sich die Nutzer denken, dass die Software weniger sicher ist,
als das tatsächlich der Fall ist, und es möglicherweise nicht glauben
wenn Sie wirklich ein riesiges Problem ankündigen müssen. Siehe
als eine
gute Einführung zu dem Problem der Beurteilung wie schwerwiegend eine
Sicherheitslücke ist.
Im Allgemeinen, wenn Sie sich nicht sicher sind, wie Sie ein
Sicherheitsproblem behandeln sollen, suchen Sie sich jemand Erfahrenen
und reden Sie darüber. Lücken zu handhaben und zu bewerten, ist
größtenteils eine angelernte Fähigkeit und es ist leicht, die ersten
paar Male Fehler zu machen.
Zum Umgang mit Sicherheitslücken siehe auch die
Richtlinien der Apache Software Foundation unter
. Sie
bieten eine ausgezeichnete Checkliste, anhand derer Sie prüfen können,
ob Sie alle Punkte sorgfältig bedacht haben.