1 ********************************************
2 Projektmanagement für freie Software - HOWTO
3 ********************************************
5 :Author: Benjamin "Mako" Hill, [mako {at} debian.org]
7 :Author: Übersetzung: Robert F Schmitt, [bobfspm {at} arepo.org]
12 ======================== ============== ==============
13 Revision v0.3.2 15. April 2002 Benutzer: bch
14 Revision v0.3.1 18. Juni 2001 Benutzer: bch
15 Revision v0.3 5. Mai 2001 Benutzer: bch
16 Revision v0.2.1 10. April 2001 Benutzer: bch
17 Revision v0.2 8. April 2001 Benutzer: bch
18 Revision v0.01 27. März 2001 Benutzer: bch
19 (Ursprüngliche Revision)
20 ======================== ============== ==============
23 Dieses HOWTO ist konzipiert für Leute mit
24 Programmiererfahrung und ein paar Fähigkeiten
26 Management eines Software-Projektes, für
28 die Welt der freien Software neu ist.
29 Dieses Dokument ist gedacht als ein
30 Führer zu nichttechnischen Aspekten
31 des freien Software-Projektmanagements und
33 geschrieben als Crashkurs für die sozialen
34 Fähigkeiten, die kommerziellen Entwicklern
36 beigebracht werden, die aber über Wohl und
38 eines freien Softwareprojektes entscheiden
46 Beim Überfliegen von freshmeat.net findet
48 von Gründen für die Existenz dieses HOWTOS
50 ist übersät mit ausgezeichnet geschriebenen
52 nützlichen Programmen,
53 die ins Universum der vergessenen freien
56 Diese düstere Szene führte mich zu der Frage
59 Dieses HOWTO versucht, eine Menge Sachen
60 (vermutlich zu viele) zu erledigen, aber
62 nicht diese Frage beantworten und wird es
63 nicht versuchen. Was dieses HOWTO versucht,
64 ist, deinem freien Software-Projekt
65 eine Überlebenschance zu verschaffen -
66 einen Vorsprung. Wenn du ein Stück Schrottcode
68 das niemanden interessiert, kannst
69 du dieses HOWTO lesen, bis du es im
70 Schlaf aufsagen kannst, und dein Projekt
72 vermutlich fehlschlagen. Andererseits kannst
75 relevantes Stück Software schreiben und jede
76 Anweisung in diesem HOWTO befolgen
77 und deine Software schafft es vielleicht
80 Manchmal ist das Leben so. Jedoch wage ich
82 ein Stück vor und sage, daß du, wenn du ein
83 großes relevantes Stücke Software schreibst
84 und den Rat dieses HOWTOs ignorierst,
85 vermutlich häufiger scheitern wirst.
87 Eine Menge Informationen in diesem HOWTO
88 sollte man gesunden Menschenverstand nennen.
89 Selbstverständlich, wie jede mögliche Debatte
90 über Schnittstellen zeigt, was gesunder
91 Menschenverstand für manche Programmierer
93 sich als völlig unintuitiv für andere.
94 Nachdem ich die Grundlagen dieses HOWTOs
96 Softwareentwicklern bei einigen Gelegenheiten
98 habe, stellte ich fest,
99 daß ich durch das Schreiben dieses HOWTOs
101 Hilfsmittel zur Verfügung stellen könnte,
102 und ein Forum für Programmierer um Ideen
103 auszutauschen darüber, was für sie funktioniert
107 Wie jeder zugeben würde, der je involviert
109 dem Anschein nach nie enden wollende Kette
111 Urheberrechtsstreitigkeiten, erweist sich
113 Abschnitt Juristendeutsch als wichtig.
117 Copyright-Informationen
118 .......................
120 Dieses Dokument ist (c) 2002 von Benjamin "Mako" Hill
121 und wird unter den Bedingungen der Free Documentation
122 License veröffentlicht.
124 Es besteht die Erlaubnis, dieses Dokument zu kopieren,
125 zu verteilen und/oder zu modifizieren, unter den
126 Bedingungen der GNU Free Documentation License, in
127 der Version 1.1 oder jeder späteren von der Free
128 Software Foundation publizierten Version, ohne
129 unveränderliche Abschnitte, Frontseiten- oder
130 Rückseitentexte. Eine Kopie der Lizenz
131 kann im Anhang A gefunden werden.
138 Es kann keine Verbindlichkeit für den Inhalt dieses
139 Dokuments angenommen werden. Die Nutzung der beschriebenen
140 Konzepte, Beispiele und anderen Inhalte geschieht auf
141 eigene Gefahr. Da dies eine neue Veröffentlichung dieses
142 Dokumentes ist, können Fehler und Ungenauigkeiten
143 zu finden sein, die natürlich deinem Projekt (und
144 möglicherweise deinem System) Schaden zufügen
145 könnten. Laß' Vorsicht walten, denn wenn es auch
146 sehr unwahrscheinlich ist, kann der Autor keine
147 Verantwortung für diese Dinge übernehmen.
149 Alles Copyrights werden von ihren jeweiligen Inhabern
150 gehalten, es sei denn es wird ausdrücklich etwas
151 anderes vermerkt. Der Gebrauch irgendeines Begriffes
152 in diesem Dokument sollte nicht so interpretiert werden,
153 daß er die Gültigkeit irgendeines eingetragenen
154 Warenzeichens oder einer Dienstleistungsmarke
157 Die Nennung bestimmter Produkte oder Marken sollte
158 nicht als Werbung gesehen werden.
165 Diese Version ist Teil des dritten pre-release-
166 Zyklus dieses HOWTO. Es ist geschrieben,
168 Entwicklern zur Verfügung gestellt zu werden,
169 für Kritik und Brainstorming. Bitte berücksichtige,
170 daß diese Version des HOWTOs noch
171 in einem Säuglingsstadium ist und noch weitgehend
172 verbessert werden wird.
174 Die neueste Versionsnummer dieses Dokumentes
175 sollte auf dem Projekthomepage immer verzeichnet
176 werden, die unter yukidoke.org gehosted wird.
178 Die neueste Version dieses HOWTO wird immer
179 von der gleichen Webseite in einer Vielzahl
180 von Formaten zur Verfügung gestellt:
183 - HTML (einzelne Seite).
185 - Komprimiertes Postscript.
186 - Komprimierter SGML-Quellcode.
188 (Anm. des Übers.: Die deutsche Version ist
190 liegt also im Klartext und als HTML-Version
196 In dieser Version darf ich die Unterstützung
197 folgender Personen anerkennen:
199 Debian-Mitentwickler Martin Michlmayr
200 und Vivek Venugopalan, die mich Informationen
201 und Verbindungen zu extrem interessanten
202 Artikeln schickten. Ich habe beide der Bibliographie
203 hinzugefügt und ich habe Informationen von
204 beiden dem HOWTO hinzugefügt. Danke an Andrews
205 Shugg, der einige Störungen im Dokument unterstrich.
206 Auch grosses Danke an Sung Wook Her (AKA
207 RedBaron) die die erste Übersetzung des HOWTOs
208 ins Koreanische macht. Ich bin glücklich
210 zu sehen, daß Leute sich bisher am HOWTO
211 erfreut und davon profitiert haben.
213 Ältere Danksagungen, die ich noch nicht herausnehmen
214 möchte, schließen ein: Josh Crawford,
215 Andy King und Jaime Davila, die alle das
217 im Ganzen gelesen haben und mir Feedback
220 hat, Änderungen und Verbesserungen an diesem
221 Dokument zu machen. Ich kann nicht dir Kerle
222 genug für deine Hilfe danken. Ein extra Danke
224 an Andy King, der dieses mehrmals las und
226 um das Leben einfacher zu machen für mich.
228 Karl Fogel, demr Autor von Open Source Development
229 with CVS (erschienen im Verlag Coriolis Open
232 Buches sind im Netz verfügbar.
234 (Anm. des Übers.: Das Buch ist inzwischen vollständig
235 online unter der GPL verfügbar)
237 225 Seiten des Buches sind unter der GPL verfügbar und
238 stellen das beste Tutorial über CVS dar,
239 das ich je gesehen habe. Der Rest
240 des Buches behandelt "die Herausforderungen
242 die philosophischen Aspekte, die dem Betreiben
243 eines Open Source-Projektes mit CVS zugrunde
245 Das Buch macht seine Arbeit gut, was das
247 einiger der Themen angeht, die in diesem
249 vorgestellt werden, und noch viel mehr.
250 Die Webseite des Buches hat Informationen
251 zur Bestellung des Buches und stellt einige
252 Übersetzungen der Kapitel über CVS zur Verfügung.
254 Wenn du ernsthaft daran interessiert bist, ein freies
255 Software-Projekt zu betreiben, wirst
256 du dieses Buch haben wollen. Ich versuchte,
257 Fogel in den Abschnitten dieses HOWTO zu erwähnen,
258 wo ich wußte, daß ich direkt seine
259 Ideen borgte. Wenn ich irgendwelche übersehen
261 tut es mir leid. Ich werde versuchen, solche
262 Stellen in zukünftigen Versionen zu korrigieren.
264 Karl Fogel kann unter
265 <kfogel (at) red-bean (Punkt) com> erreicht
268 Wer auch Hilfsmaterial und Inspiration für
270 HOWTO zur Verfügung stellt ist Eric
271 S. Raymond mit seinen fruchtbaren, schlüssigen
272 und sorgfältig ausgearbeiteten Argumenten
274 Lawrence Lessig, der mich erinnert hat
275 an den Wert freier Software.
277 möchte ich allen Benutzern und Entwicklern
278 danken, die in am Debian-Projekt beteiligt
280 Das Projekt hat mir ein Zuhause,
281 einen Ort verschafft, um für freie Software
282 zu werben, einen Ort, von wo aus man
283 etwas verändern kann,
284 einen Ort, um von denen zu lernen, die
285 an der Bewegung viel länger beteiligt sind
287 und Beweis eines freien Software-Projektes,
288 das definitiv, definitiv funktioniert.
290 Vor allem möchte ich Richard Stallman für
291 seine Arbeit an der Free Software Foundation
292 danken und dafür, nie aufzugeben. Stallman
294 und artikuliert die philosophische Grundlage,
295 die mich zur freien Software zieht und
296 die mich zum Schreiben eines
297 Dokumentes motiviert, um sicherzustellen,
301 RMS kann immer per Email erreicht werden
302 unter <rms (at) gnu (Punkt) org>.
309 Feedback ist immer und zweifellos willkommen
310 zu diesem Dokument. Ohne deine Zusendungen
311 und Input würde dieses Dokument nicht bestehen.
312 Glaubst du, daß etwas fehlt? Zögere nicht,
313 mit mir in Verbindung zu treten, wenn ich
314 ein Kapitel, einen Abschnitt oder
315 einen Unterabschnitt schreiben soll oder
317 du einen schreiben willst. Ich möchte, daß
319 Dokument ein Produkt des freien Softwareentwicklungs-
320 Prozesses ist, den es anpreist und ich
321 glaube, daß sein letztlicher Erfolg in
322 seiner Fähigkeit, dies zu tun liegt. Bitte
324 Ergänzungen, Anmerkungen und
325 Kritiken an folgende Emailaddresse:
326 <mako (at) debian.org>.
333 Ich weiß, daß nicht jeder Englisch spricht.
334 Übersetzungen sind nett und ich hätte es
336 daß dieses HOWTO die Art internationaler
337 Publizität erfährt, die durch übersetzte
341 Ich bin von einem Leser kontaktiert worden,
343 eine Übersetzung ins Koreanische verspricht.
344 Jedoch ist dieses HOWTO noch jung, und abgesehen
345 von dem Versprechen des Koreaners ist Englisch
346 alles, was zur Zeit verfügbar ist. Wenn du
347 helfen oder eine Übersetzung machen möchtest,
348 gewinnst du meinen äußersten Respekt und
349 Bewunderung und wirst Teil eines
350 coolen Prozesses sein dürfen. Wenn du überhaupt
351 interessiert bist, bitte nicht zögern,
352 mit mir in Verbindung zu treten: <mako (at) debian.org>.
356 Beginnen eines Projektes
357 ------------------------
359 Ohne große Zweifel ist der Anfang
360 die schwierigste Periode im Leben eines Projektes,
361 um erfolgreiches Projektmanagement für freie
363 zu leisten. Das Schaffen einer festen Grundlage
365 darüber, ob dein Projekt blüht oder eingeht
366 und stirbt. Es ist auch das Thema, an dem
367 am meisten direktes Interesse von jedermann
368 besteht, der dieses Dokument als Tutorial
371 Das Beginnen eines Projektes schließt ein
372 Dilemma mit ein, mit dem du als Entwickler
373 versuchen mußt klarzukommen: kein möglicher
374 Benutzer für dein Programm ist an einem Programm
375 interessiert, das nicht funktioniert, während
376 der Entwicklungsprozeß, den du etablieren
378 die Einbeziehung der User als Grundvoraussetzung
381 Es ist in diesen gefährlichen Ausgangsmomenten,
382 daß jedermann, der daran arbeitet, ein freies
383 Software-Projekt zu beginnen versuchen muß,
384 eine Balance zwischen diesen Voraussetzungen
386 Eine der wichtigsten Arten, die jemand,
387 der ein Projekt zu beginnen versucht, in
388 Richtung dieser Balance bearbeiten kann,
389 ist, in dem er auf eine festes Framework
391 Entwicklungsprozeß hinarbeitet durch einige
393 Vorschläge, die in diesem Abschnitt erwähnt
398 Wählen eines Projektes
399 ......................
401 Wenn du dieses Dokument liest, hast du wahrscheinlich
402 bereits eine Idee für ein Projekt. Wahrscheinlich
403 füllt es auch eine als solche wahrgenommene
404 Lücke, indem es etwas tut, das kein
405 anderes freies Software-Projekt tut oder
406 indem es etwas in einer Weise tut, die
407 einzigartig genug ist, um ein nagelneues
409 Software zu erfordern.
413 Deine Idee identifizieren und artikulieren
414 ++++++++++++++++++++++++++++++++++++++++++
416 Eric S. Raymond schreibt darüber, wie freie
417 Software-Projekte beginnen in seinem Essay,
418 "die Kathedrale und den Basar," der als
419 Pflichtlektüre für jeden freien
420 Software-Entwickler dient.
421 Er ist online verfügbar.
423 In "Die Kathedrale und der Basar" erklärt
424 Raymond uns daß
\84jede gute Softwarelösung
425 beginnt, indem sie eine Stelle kratzt, die
427 Entwickler juckt." Raymonds jetzt weithin
429 Hypothese ist, daß neue freie Software-Programme
431 erster Linie geschrieben werden, um ein
432 spezifisches Problem zu lösen, dem der Entwickler
435 Wenn du eine Idee für ein Programm hast,
436 ist die Chance hoch, daß es
437 auf ein spezifisches Problem oder "Jucken"
439 das du gerne gekratzt sehen würdest. Diese
441 ist das Projekt. Artikuliere sie offen.
442 Formuliere sie aus. Beschreibe das Problem,
443 das du in Angriff nimmst im Detail. Der Erfolg
444 deines Projektes im Anpacken eines bestimmten
445 Problems ist an deine Fähigkeit gekoppelt,
446 dieses Problem früh schon klar zu identifizieren.
447 Finde genau heraus, was dein Projekt nach
451 Monty Manley artikuliert den Wert dieses
452 Ausgangsschrittes in einem Essay, "Managing
453 Projects the Open Source Way." Wie der
454 folgende Abschnitt zeigen wird, gibt es eine
455 Menge Arbeit, die erledigt werden muß, bevor
456 Software überhaupt bereit ist kodiert zu
458 Manley sagt, "Ein OSS-Projekt richtig zu
460 daß ein Entwickler in erster Linie vermeiden
462 zu früh Code zu schreiben!"
470 Wenn du deine Idee auswertest, mußt du dir
472 Fragen stellen. Dieses sollte
473 geschehen, bevor du in diesem HOWTO einen
474 Schritt weiter machst.
476 freie Software-Entwicklung Modell wirklich
477 das richtige für dein Projekt?
479 Offensichtlich bist du, da das Programm dein
481 definitiv daran interessiert, es in Code
482 implementiert zu sehen.
483 Weil aber ein Hacker, der aleine programmiert,
485 als eine Unternehmung freier Software-Entwicklung
487 mußt du dir eine zweite Frage stellen: Ist
491 Manchmal ist die Antwort ein einfaches "Nein."
492 Wenn du einen Satz Skripte schreiben möchtest,
493 um deine MP3-Sammlung auf deiner Maschine
494 zu sortieren, ist möglicherweise das Modell
496 Software-Entwicklung nicht die beste Wahl.
498 Wenn du jedoch einen Satz
499 Skripte schreiben möchtest, um jedermanns
501 sortieren, könnte ein freies Software-Projekt
502 eine nützliche Lücke füllen.
504 Glücklicherweise ist das Internet ein grosser
505 und vielseitiger Ort, daß die Chance besteht,
506 daß dort draußen irgendwo irgendjemand ist,
508 Interessen teilt und der das selbe "Jucken"
510 Es ist die Tatsache, daß es also
511 viele Leute mit so vielen ähnliche Bedürfnissen
512 und Wünschen gibt, die die dritte Hauptfrage
513 aufwirft: Hatte jemand bereits deine Idee
514 oder ein recht ähnliche?
518 Ähnliche Projekte finden
519 ++++++++++++++++++++++++
521 Es gibt Orte im Netz, die du aufsuchen
522 kannst, um zu versuchen, eine Antwort auf die obige Frage
523 zu finden. Wenn du Erfahrung mit der
524 free software community hast, bist du
525 vermutlich bereits mit vielen dieser Seiten
526 vertraut. Alle im folgenden aufgeführten Quellen
527 bieten Suchfunktionen in ihren Datenbanken an:
532 freshmeat.net beschreibt sich selbst als, "der
533 größte Index des WWW für Linux- und Open Source-Software"
534 und sein Renommee diesbezüglich ist absolut
535 unvergleichlich und unbestritten.
536 Wenn du etwas nicht auf freshmeat finden kannst,
538 daß du (oder sonstwer) es überhaupt finden wirst.
543 Slashdot bietet "News for Nerds. Stuff
544 that matters," wozu gewöhnlich
545 Diskussionen über freie Software, Open Source,
546 Technologie und Nachrichten/Veranstaltungen
547 für Freaks gehören. Es ist nicht ungewöhnlich,
548 daß besonders interessante
549 Entwicklungsbestrebungen hier verkündet werden,
550 also ist die Seite definitiv einen Besuch wert.
555 SourceForge beherbergt und unterstützt
556 eine wachsende Anzahl an Open Source-/
557 Free Software-Projekten. Es wird auch
558 schnell zur Basis und Pflichthaltestelle
559 für Entwickler freier Software.
560 SourceForges "software map" und seine "new release"-
561 Seiten sollten unbedingt aufgesucht werden, bevor man
562 mit einem neuen freien Software-Projekt loslegt.
563 SourceForge liefert auch eine "Code Snippet"-Bibliothek,
564 die nützliche wiederverwendbare Codeteile in einer
565 Reihe von Sprachen enthält, was für jedes
566 Projekt nützlich werden kann.
568 Google und Googles Linuxsuche
569 #############################
571 Google und Googles Linuxsuche bieten
572 leistungsfähige Netzsuchen an, die Leute ans
573 Tageslicht bringen können, die an ähnlichen Projekten
574 arbeiten. Sie bieten kein Verzeichnis für Software
575 oder Nachrichten wie freshmeat oder slashdot,
576 sind aber einen Check wert, um sicherzustellen,
577 daß du deine Energie nicht in ein redundantes
580 Sich entscheiden, weiterzumachen
581 ++++++++++++++++++++++++++++++++
583 Sobald man erfolgreich das Gelände abgesteckt
584 und eine Vorstellung davon hat, welche Arten
585 ähnlicher freier Software-Projekte existieren,
586 muß jeder Entwickler entscheiden, ob er
587 mit seinem eigenen Projekt fortfährt. Es ist
588 selten, daß ein neues Projekt versucht, ein
589 Ziel zu erreichen, das keinem Ziel eines
590 anderen Projektes ähnlich ist oder zu ihm einen
591 Bezug hat. Jeder, der ein neues Projekt beginnt,
593 "Wird das neue Projekt Arbeit duplizieren,
594 die durch ein anderes Projekt erledigt wird?
595 Wird das neue Projekt mit einem vorhandenen Projekt
596 um Entwickler konkurrieren? Können die Ziele
597 des neuen Projektes erreicht werden,
598 indem man einem vorhandenen Projekt Funktionalität
601 Wenn die Antwort auf irgendeine dieser Fragen
602 "ja" ist, dann versuche, mit dem Entwickler des/der
603 entsprechenden existierenden Projekte(s) in Verbindung
604 zu treten und zu eruieren, ob er oder sie
605 bereit sein könnte, mit dir zusammenzuarbeiten.
607 Für viele Entwickler mag dies der allerschwierigste
608 Aspekt des freien Software-Projektmanagements
609 sein, aber er ist wesentlich. Es ist
610 einfach, durch eine Idee angestachelt und
611 vom Moment und der Aufregung eines neuen Projektes
612 ergriffen zu werden. Es ist häufig extrem schwierig,
613 aber es ist wichtig, daß jeder freie
614 Software-Entwickler sich daran erinnert, daß
615 man die Interessen der freien
616 Software-Community und die Verwirklichung der
617 eigenen Projektziele auf schnellstem Wege
618 häufig dadurch erreicht, daß man
619 keine Neuentwicklung anstrebt.
623 Deinem Projekt einen Namen geben
624 ................................
626 Wenn es auch viel Projekte gibt, die mit
627 beschreibenden Namen fehlschlagen und ohne sie
628 Erfolg haben, denke ich doch, daß es sich lohnt,
629 sich über die Benamung deines Projektes ein paar
630 Gedanken zu machen. Leslie Orchard geht dieses
631 Problem in einem Advogato-Artikel an. Sein Artikel
632 ist kurz, und ist es definitiv wert, mal überflogen
635 Zusammengefaßt empfiehlt Orchard, daß du einen
636 Namen wählst, bei dem viele Benutzer
637 oder Entwickler sowohl
639 - wissen, was das Projekt macht, und
640 - sich am nächsten Tag noch daran erinnern.
642 Ironischerweise erreicht Orchards eigenes Projekt namens "Iajitsu"
643 keines von beiden. Es hat vermutlich nichts damit zu
644 tun, daß die Entwicklung praktisch stillsteht, seit
645 der Artikel geschrieben wurde.
647 Er bringt damit aber einen wichtiges Argument auf.
648 Es gibt Firmen deren einziger Job es ist, Namen für
649 Software(-teile) zu erfinden. Sie machen damit
650 wahnsinnig viel Geld und sind es vermutlich wert.
651 Wenn du dir auch eine solche Firma vermutlich
652 nicht leisten kannst, kannst du es dir leisten,
653 aus ihrer Existenz zu lernen und über den
654 zukünftigen Namen deines Projektes ein wenig
655 nachdenken, weil es sehr wohl von Bedeutung ist.
657 Wenn es einen Namen gibt, den du unbedingt willst,
658 er aber nicht Orchards Kriterien genügt, nur zu.
659 Ich hielt "gnubile" für einen der besten Namen, die
660 ich unter freien Software-Projekten je gehört
661 habe und ich sprech immer noch darüber, obwohl
662 ich das Programm schon lange nicht mehr verwende.
663 Wenn du bei diesem Thema flexibel sein kannst,
664 hör' auf Orchards Rat. Es könnte hilfreich sein.
668 Lizensierung deiner Software
669 ............................
671 Abstrakt (und recht vereinfacht) gesagt, ist der
672 Unterschied zwischen einem Baustein freier Software
673 und einem Baustein proprietärer Software die Lizenz.
674 Eine Lizenz hilft dir als der Entwickler, indem sie
675 deine verbrieften Rechte schützt, um deine Software
676 zu deinen Bedingungen in Umlauf zu bringen, und
677 sie hilft, indem sie denen, die dir helfen möchten
678 zeigt, das sie ermutigt sind, mitzumachen.
685 Jede Diskussion über Lizenzen führt garantiert
686 zumindest zu einem kleinen "Flame War," da die Leute
687 starke emotionale Neigungen zeigen, daß einige freie
688 Software-Lizenzen besser als andere sind. Diese
689 Diskussion bringt auch die Frage nach "Open Source-Software"
690 wieder auf, und die Debatte über die Bezeichnungen
691 "Open Source-Software" und "freie Software."
692 Weil ich dieses HOWTO
693 "Projektmanagement für freie Software" betitelt habe
694 und nicht "Projektmanagement für Open Source-Software,"
695 ist meine eigenes Zugehörigkeitsgefühl wohl klar.
697 Im Versuch, mit Diplomatie einen Kompromiß zu
698 erreichen, ohne meine eigene Philosophie zu opfern,
699 empfehle ich, irgendeine Lizenz auszuwählen, die
700 zu sich an die Debian free software-Richtlinien
701 (engl. Debian Free Software Guidelines, DFSG)
702 hält. Diese Richtlinien, ursprünglich zusammengestellt
703 durch das Debian-Projekt unter Bruce Perens,
704 bilden die erste Version einer Open Source-Definition.
705 In den DFSG angegebene Beispiele freier Lizenzen sind
706 die GPL, die BSD und die Artistic License.
707 Wie ESR (Eric Raymond) in seinem seinem HOWTO
708 [ESRHOWTO] erwähnt, solltest du nicht deine eigene
709 Lizenz schreiben wenn irgend möglich.
710 Die drei erwähnten Lizenzen haben alle eine lange
711 Auslegungstradition. Sie sind auch definitiv freie
712 Software (und können daher als Teil von Debian
713 verteilt werden, und auch an anderen Orten, die den
714 Transfer freier Software ermöglichen).
716 In Übereinstimmung mit der Definition der
717 freien Software, wie sie von Richard Stallman
718 in "The Free Software Definition" angeboten wird,
719 unterstützt jede dieser Lizenzen "die Freiheit der
720 Benutzer, die Software laufen zu lassen,
721 zu kopieren, zu verteilen, zu erforschen,
722 zu ändern und zu verbessern." Es gibt viele
723 andere Lizenzen, die auch DFSG-konform sind,
724 bei einer besser bekannteren Lizenz zu bleiben
725 bietet jedoch den Vorteil sofortigen Wiedererkennens
726 und sofortigen Verstehens. Viele Leute schreiben
727 drei, oder vier Sätze in einer COPYING-Datei und nehmen
728 an, daß sie damit eine freie Software-Lizenz
729 geschrieben haben -- wie meine lange Erfahrung mit
730 der debian-legal Mailingliste zeigt, ist dieses
731 sehr häufig nicht der Fall.
733 Wenn ich eine eingehendere Analyse versuche,
734 stimme ich Karl Fogels Beschreibung zu, daß alle
735 Lizenzen in zwei Gruppen fallen: Die, die GPL sind
736 und die, die nicht GPL sind.
738 Persönlich lizensiere ich all meine Software
739 unter der GPL. Geschaffen und geschützt durch die
740 Free Software Foundation und das GNU-Projekt,
741 ist die GPL die Lizenz für den Linux-Kernel,
742 GNOME, Emacs und die überwiegende Mehrheit
743 an GNU/Linux-Software. Es ist die offensichtliche
744 Wahl, aber ich glaube auch, daß sie eine gute Wahl
745 ist. Jeder BSD-Fanatiker wird dich drängen,
746 daß du dich erinnern sollst, daß die GPL einen
747 "viralen Aspekt" aufweist, der die Mischung
748 von GPL-Code mit nicht-GPL-Code verhindert. Für
749 viele Leute (mich eingeschlossen) ist
750 dies ein Vorteil, aber für einige ist es
753 Viele Leute schreiben
754 drei, oder vier Sätze in einer COPYING-Datei und nehmen
755 an, daß sie damit eine freie Software-Lizenz
756 geschrieben haben -- wie meine lange Erfahrung mit
757 der debian-legal Mailingliste zeigt, ist dieses
758 sehr häufig nicht der Fall. Es kann möglicherweise
759 weder dich noch deine Software schützen, und es
760 kann sehr viele Schwierigkeiten verursachen für
761 Leute, die deine Software benutzen möchten,
762 den subtilen rechtlichen Aspekten von Lizenzen aber
763 eine Menge Aufmerksamkeit widmen. Wenn du
764 unbedingt eine handgestrickte Lizenz haben willst,
765 dann zeige sie erstmal entweder den Leuten bei OSI oder
766 denen auf der debial-legal-Mailingliste,
767 um dich zu schützen vor unvorhergesehenen
768 Nebenwirkungen deiner Lizenz.
771 Die drei wichtigsten Lizenzen können an folgenden
772 Orten gefunden werden:
774 - Die GNU General Public License
775 http://www.gnu.org/copyleft/gpl.html
777 http://www.debian.org/misc/bsd.license
778 - Die Artistic License
779 http://language.perl.com/misc/Artistic.html
781 Lies dir auf jeden Fall die Lizenz durch, bevor
782 du eine Software unter ihr veröffentlichst.
783 Als Hauptentwickler kannst du dur keine
784 Überraschungen mit Lizenzen leisten.
788 Wie die Lizensierung funktioniert
789 +++++++++++++++++++++++++++++++++
791 Der Text der GPL bietet eine gute Beschreibung
792 des Prozesses an, mit dem man ein Stück Software
793 einer Lizenz unterwirft. Meine schnelle
794 Checkliste beinhaltet folgende Schritte:
796 - Deklariere dich oder die FSF als Copyrightträger
797 für das Produkt. In einigen seltenen Fällen
798 magst du vielleicht eher eine fördernde Organisation
799 (wenn sie groß und genug leistungsfähig ist) zum
800 Copyrightträger machen wollen.
801 Dies tust du einfach dadurch, daß du ihren Namen
802 in den freien Raum einsetzt, wenn du die
803 Copyrighterklärung unten änderst. Entgegen
804 der landläufigen Meinung brauchst du das Copyright
805 nicht bei irgendeiner Organisation registrieren
806 lassen. Die Erklärung alleine ist genug, um
807 deine Arbeit urheberrechtlich zu sichern.
808 (Anm. des Übersetzers: Kann sich mal jemand
809 juristisch versiertes dazu äußern, wie da die
810 deutsche Rechstlage ist? Ich kann dazu nichts sagen,
811 außer daß es wohl Gerichtsurteile gibt, die z.B. die
813 - Wenn irgend möglich, füge eine vollständige Kopie
814 der Lizenz dem Quellcode- und Binärpaket an, als
816 - Füge am Anfang jeder Quellcodedatei deines
817 Programmes eine Copyrightnotiz an mit
818 Informationen darüber, wo die vollständige
819 Lizenz gefunden werden kann. Die GPL empfiehlt,
820 daß jede Datei so anfängt:
822 Eine Zeile, um den Namen des Programms
823 und eine Vorstellung davon, was es tut
826 Copyright (C) yyyy name of author
828 This program is free software; you can redistribute it and/or
829 modify it under the terms of the GNU General Public License
830 as published by the Free Software Foundation; either version 2
831 of the License, or (at your option) any later version.
833 This program is distributed in the hope that it will be useful,
834 but WITHOUT ANY WARRANTY; without even the implied warranty of
835 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
836 GNU General Public License for more details.
838 You should have received a copy of the GNU General Public License
839 along with this program; if not, write to the Free Software
840 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
842 Die GPL fährt fort und empfiehlt, Informationen
843 hinzuzufügen, auf welche Weise man dich (den
844 Autor) per Email oder Schneckenpost kontaktiert.
846 Weiterhin schlägt die GPL vor, daß, wenn
847 dein Programm in einen interaktiv Modus läuft,
848 du das Programm so schreiben solltest, daß es
849 bei jedem Aufruf im interaktiven Modus eine
850 Meldung ausgibt, der einen Hinweis enthält
851 wie den folgenden, der zur vollständigen
854 Gnomovision version 69, Copyright (C) year name of author
855 Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
858 This is free software, and you are welcome
859 to redistribute it under certain conditions; type "show c"
862 Schließlich könnte es nützlich sein, einen "Copyrightverzicht"
863 von einem Arbeitgeber oder einer Schule
864 einzuschließen, wenn du als Programmierer
866 oder wenn es danach aussieht, daß dein Arbeitgeber/
867 deine Schule später einen Grund für Besitzansprüche
868 finden könnten. Dieser ist nicht oft
869 notwendig, aber es gibt viel freie
870 Softwareentwickler, die Ärger bekommen haben
871 und sich wünschen, sie hätten nach einem gefragt.
875 Abschließende Warnung zu Lizenzen
876 +++++++++++++++++++++++++++++++++
878 Bitte bitte bitte, stell' deine Software
880 unter irgendeine Lizenz. Es mag möglicherweise
881 nicht wichtig erscheinen, und für dich auch
883 wichtig sein, aber Lizenzen sind wichtig.
884 Um in die Debian GNU/Linux GNU/Linux distribution
885 eingebracht werden zu können, muß ein Stück
887 eine Lizenz haben, die zu den "Freie
888 Software"-Richtlinien von Debian paßt.
890 Wenn deine Software keine Lizenz hat, kann sie nicht verfügbar
891 gemacht werden als Paket in Debian, bis du sie
892 erneut freigibst unter einer freien Lizenz.
894 Bitte erspare dir und anderen Ärger, indem
895 du gleich die erste Version deiner Software
896 unter einer freien Lizenz publizierst.
900 Wählen einer Methode der Versionsnumerierung
901 ............................................
903 Der wichtigste Aspekt an einem System für
904 die Versionsnumerierung ist, daß es eins gibt.
906 Es mag pedantisch scheinen, diesen Punkt
907 hervorzuheben, aber du wärest überrascht
908 über der Zahl von Skripten und kleinen Programmen,
909 die ohne irgendeine Versionsnummer auftauchen.
911 Der zweitwichtigste Aspekt eines Systems
912 der Versionsnumerierung ist, daß die Zahlen immer
913 erhöht wird. Automatische Versionierungssysteme
914 und das kosmische Grundverständnis der Menschen
915 kollabieren, wenn Versionsnummern nicht steigen.
916 Es ist nicht wirklich wichtig, ob 2.1 ein
917 grosser Schritt und 2.0.005 ein kleiner Schritt in
918 der Entwicklung ist, aber es ist wichtig, daß 2.1
919 aktueller als 2.0.005 ist.
921 Folge diesen zwei einfachen Richtlinien und du
922 wirst nicht (zu sehr) falsch liegen. Darüber
923 hinaus scheint die allgemein verbreitetste Technik
924 das Versionierungsschema mit "major level" (Hauptversion),
925 "minor level" (Unterversion) und "patch level"
926 (kleinere Korrekturen) zu sein. Unabhängig davon,
927 ob du mit den Bezeichnungen vertraut bist oder
928 nicht, hast du doch dauernd mit ihnen zu tun.
929 Die erste Zahl ist die Hauptzahl und signalisiert
930 große Änderungen oder Rewrites.
931 Die zweite Zahl ist eine untergeordnete Zahl und
932 stellt hinzugefügte oder abgewandelte Funktionalität
933 dar, unter weitgehender Beibehaltung der
934 Programmstruktur. Die dritte Zahl (patch number)
935 bezieht sich gewöhnlich nur auf Versionen, die
936 veröffentlicht wurden, um Bugs zu beseitigen.
938 Weil dieses Schemas weit verbreitet ist, kenne
939 ich die Auswirkung und den relativen Grad an
940 Unterschied zwischen einer Version 2.4.12
941 des Linuxkerns und einer Version 2.4.11/2.2.12/
942 1.2.12, ohne irgendetwas zu wissen über die
943 Versionen als solche.
945 Du kannst dich an diese Richtlinien halten oder
946 nicht, andere Leute machen das auch.
947 Aber Vorsicht, wenn du dich dazu entschließt,
948 wird sich jemand darüber ärgern, denken, daß du
949 nicht bescheid weißt, und versuchen, dich zu
950 erziehen, vermutlich nicht auf eine freundliche Art.
951 Ich folge dieser Methode immer, und ich
952 an beschwöre dich flehentlich, das ebenfalls zu tun.
954 Es gibt einige Versionsnumerierungssysteme, die
955 weithin bekannt und nützlich sind, und die einen
956 Blick wert sein könnten, bevor du deine erste
961 Versionsnumerierung des Linux-Kernels
962 +++++++++++++++++++++++++++++++++++++
964 (Anm. des Übers.: Inzwischen sind die Linux-Kernelentwickler
965 von dem unten skizzierten Versionierungssystem abgekommen.
966 Eine gute Einführung in das aktuelle und die vorherigen
967 Systeme findet sich auf Wikipedia
968 [http://en.wikipedia.org/wiki/Linux_kernel#Version_numbering]).
970 Der Linux-Kernel benutzt ein Versionierungssystem,
971 in dem jede ungerade kleine ("minor") Versionsnummer
972 auf eine Entwickler-/Testversion verweist und
973 jede gerade kleine Versionsnummer auf eine stabile
974 Version. Denke eine Sekunde darüber nach.
975 Unter diesem System waren 2.1 und 2.3 Entwicklungs-/
976 Test-Kernels, und werden es immer sein, während die
977 Kernels 2.0, 2.2. und 2.4 Produktionsversionen
978 sind, mit einem höheren Grad an Stabilität und
981 Ob du planst, ein geteiltes Entwicklungsmodell
982 zu verwenden (wie im Abschnitt
983 "Stabile Zweige und Entwicklungszweige " beschrieben)
984 oder nur eine Version auf einmal freigibst, meine
985 Erfahrung mit einigen freien Software-Projekten
986 und mit das Debian Projekt hat mich gelehrt, daß es
987 das Versionierungssystem von Linux durch wert ist,
988 in Erwägung gezogen zu werden. In Debian sind alle
989 kleinen ("minor") Versionen stabile Versionen
990 (2.0, 2.1, usw.). Jedoch nehmen viele Leute an,
991 daß 2.1 eine instabile- oder Entwicklungsversion ist
992 und nutzen weiterhin eine ältere Version, bis sie
993 der Frust packt über den Mangel an Fortschritt in
994 der Entwicklung, sodaß sie sich beschweren und
995 herausfinden, wie das System funktioniert. Wenn du
996 nie eine ungerade Version, sondern nur gerade
997 herausbringst, schadet das niemandem, aber
998 weniger Leute werden verwirrt. Es ist eine Idee,
999 die man in Erwägung ziehen sollte.
1003 Wine-Versionsnumerierung:
1004 +++++++++++++++++++++++++
1006 Wegen der ungewöhnlichen Natur der Entwicklung im
1007 wine-Projekt, wo der Nicht-Emulator ständig
1008 verbessert wird, aber nicht irgendein sofort
1009 erreichbares Ziel hin, wird wine alle drei Wochen
1010 freigegeben. wine benennt dabei alle seine Versionen
1011 nach dem Schema "Jahr Monat Tag" wobei jede Version
1012 das Format "wine-XXXXXXXX" hat, sodaß z.B. die
1013 Version vom 4. Januar 2000 "wine-20000104" heißt.
1014 Für bestimmte Projekte kann so ein "Jahr Monat Tag"-
1015 Format sehr sinnvoll sein.
1022 Wenn man Netscape 6 und seine Verkaufsversionen betrachtet,
1023 ist die Entwicklungsstruktur des Mozilla-Projekts
1024 eines der komplexesten Modelle, das man bei freier
1025 Software findet. Die Versionsnumerierung des
1026 Projektes reflektiert die einzigartige Situation,
1027 in der es entwickelt wird.
1029 Mozillas Versionsnumerierung wurde aus historischen
1030 Gründen auf Milestones (Meilensteinen) aufgebaut.
1031 Vom Anfang des Mozilla-Projektes an wurden die
1032 Ziele des Projektes mit Reihenfolge und zu erreichendem
1033 Grad entworfen, in einer Reihe von road maps.
1034 Wichtige Punkte und Erfolge entlang
1035 dieser road maps wurden als Meilensteine
1036 gekennzeichnet. Deshalb wurde, obwohl man von Mozilla
1037 jede Nacht einen "nightly build" baute und zur
1038 Verfügung stellte, an einem bestimmten Tag, an dem
1039 die Ziele eines Meilensteines der road map erreicht
1040 waren, dieser Build als "milestone release"
1043 Während ich diese Methode bisher in keinem anderen
1044 Projekt in Verwendung gesehen habe, mag ich die Idee
1045 und denke, daß sie Wert haben könnte in jedem
1046 Test- oder Entwicklungszweig einer großen Anwendung
1047 die sich intensiv in Entwicklung befindet.
1054 Eine große Zahl ansonsten fantastischer freier
1055 Software-Applikationen sind eingegangen und
1056 gestorben, weil ihr Autor die einzige Person war,
1057 die wußte, wie man sie im Detail nutzt.
1058 Selbst wenn dein Programm primär für eine
1059 technisch versierte Benutzergruppe geschrieben ist,
1060 ist Dokumentation hilfreich und sogar notwendig für
1061 das Überleben deines Projektes.
1062 Du wirst später im Abschnitt
1063 "Veröffentlichung deines Programms" erfahren, daß
1064 du immer etwas veröffentlichen solltest, das
1066 Ein Stück Software ohne Dokumentation ist nicht
1069 Es gibt viele verschiedene Leute, für die du
1070 dein Projekt dokumentieren solltest.
1071 Die Bedeutung von Dokumentation im Source Code
1072 um die Entwicklung durch eine große Community
1073 zu erleichtern ist essentiell, aber sie
1074 überschreitet den Rahmen dieses HOWTOs.
1075 Aus diesem Grund beschäftigt sich dieser Abschnitt
1076 mit einer sinnvollen Taktik für benutzerorientierte
1079 Eine Kombination aus Tradition und Notwendigkeit
1080 führte zu einem quasi-regulären Dokumentationssystem
1081 in den meisten freien Software-Projekten, das
1082 es wert ist, angewandt zu werden.
1083 Sowohl Benutzer als auch Entwickler erwarten, daß
1084 sie in der Lage sind, Dokumentation auf verschiedene
1085 Arten zu bekommen, und es ist essentiell, daß du
1086 die von ihnen gesuchte Information in einer Form
1087 zur Verfügung stellst, die sie lesen können, wenn
1088 dein Projekt jemals abheben soll.
1089 Die Leute erwarten inzwischen die folgenden
1097 Deine Benutzer werden "man deinprojekt" eintippen
1098 wollen und eine schön formatierte man page bekommen,
1099 die die elementare Nutzung der Applikation
1100 hervorhebt. Stelle sicher, daß du das eingeplant
1101 hast, bevor du dein Programm veröffentlicht.
1103 Man pages sind nicht schwer zu schreiben. Es gibt
1104 hervorragende Dokumentation über den Erstellungs-
1105 prozess für man pages durch das
1106 "Linux Man-Page-HOWTO" von Jens Schweikhardt, daß
1107 über das Linux Documentation project (LDP) bzw.
1108 auf Schweikhardts Webseite verfügbar ist.
1110 Es ist auch möglich, man pages mit DocBook SGML
1111 zu schreiben. Weil man pages so einfach sind
1112 und die DocBook-Methode relativ neu ist, habe ich
1113 ihr noch nicht nachgehen können, würde mich aber
1114 freuen über Hilfe von jemandem, der mehr
1115 Informationen darüber zur Verfügung stellen kann,
1116 wie das genau funktioniert.
1120 Via Kommandozeile verfügbare Dokumentation
1121 ++++++++++++++++++++++++++++++++++++++++++
1123 Die meisten Benutzer erwarten ein Minimum
1124 an über die Kommandozeile verfügbarer Dokumentation.
1125 Für wenige Programme sollte diese Art der
1126 Dokumentation mehr als eine Bildschirmseite
1127 (24 oder 25 Zeilen) sein, aber sie sollte
1128 dir prinzipielle Verwendung beinhalten, eine kurze
1129 Beschreibung (ein oder zwei Sätze) des
1130 Programms, eine Liste der Befehle mit Erklärung,
1131 sowie alle wichtigen Optionen (auch mit Erklärungen),
1132 mit einem Verweis auf detailiertere Dokumentation
1133 für diejenigen, die sie benötigen.
1134 Die über Kommandozeile verfügbare Dokumentation für
1135 Debians apt-get dient als ausgezeichnetes Beispiel
1136 und ein nützliches Modell:
1138 apt 0.3.19 for i386 compiled on May 12 2000 21:17:27
1140 Usage: apt-get [options] command
1141 apt-get [options] install pkg1 [pkg2 ...]
1143 apt-get is a simple command line interface
1145 installing packages. The most frequently
1146 used commands are update
1150 update - Retrieve new lists of packages
1151 upgrade - Perform an upgrade
1152 install - Install new packages (pkg is
1153 libc6 not libc6.deb)
1154 remove - Remove packages
1155 source - Download source archives
1156 dist-upgrade - Distribution upgrade, see
1158 dselect-upgrade - Follow dselect selections
1159 clean - Erase downloaded archive files
1160 autoclean - Erase old downloaded archive
1162 check - Verify that there are no broken
1167 \-q Loggable output - no progress indicator
1168 \-qq No output except for errors
1169 \-d Download only - do NOT install or unpack archives
1170 \-s No-act. Perform ordering simulation
1171 \-y Assume Yes to all queries and do not prompt
1172 \-f Attempt to continue if the integrity check fails
1173 \-m Attempt to continue if archives are unlocatable
1174 \-u Show a list of upgraded packages as well
1175 \-b Build the source package after fetching it
1176 \-c=? Read this configuration file
1177 \-o=? Set an arbitary configuration option, eg -o dir::cache=/tmp
1179 See the apt-get(8), sources.list(5) and apt.conf(5)
1180 manual pages for more information and options.
1183 Es ist eine GNU-Konvention geworden, diese Art
1184 Information über die "-h"- und "--help"-Optionen
1185 zugänglich zu machen .
1186 Die meisten GNU/Linux-Benutzer erwarten daß sie
1187 auf diese Weise grundlegende Dokumentation bekommen,
1188 wenn du also beschließt, andere Methoden zu
1189 verwenden, solltest du dich auf Flames und
1190 radioaktive Gegenschläge vorbereiten, die daraus
1195 Dateien, die Benutzer erwarten
1196 ++++++++++++++++++++++++++++++
1198 Zusätzlich zu den man pages und der Hilfe über
1199 die Kommandozeile gibt es bestimmte Dateien,
1200 wo Leute nach Dokumentation suchen, besonders in
1201 jedem Softwarepaket, das Quellecode enthält. In
1202 einer Distribution mit Quellcode können die meisten
1203 diesee Dateien im Wurzelverzeichnis (".") oder einem
1204 Unterverzeichnis namens "doc" oder "documentation"
1207 Zu den dabei üblichen Dateien gehören:
1211 Ein Dokument, das alle grundlegende Informationen zu
1212 Installation, Kompilierung und sogar eine
1213 grundlegende Gebrauchanweisung enthält, die
1214 das absolute Minimum an Informationen zur Verfügung
1215 stellt, die erforderlich sind, um das Programm
1216 zum Laufen zu bringen. Ein README ist keine
1217 Gelegenheit, um Romane zu schreiben, sondern sollte
1218 kurz und wirkungsvoll sein. Ein ideales README
1219 ist mindestens 30 Zeilen lang und nicht mehr
1222 INSTALL oder Install
1224 Die INSTALL-Datei sollte viel kürzer als das README
1225 sein und sollte schnell und präzise beschreiben,
1226 wie man das Programm baut und installiert.
1227 Normalerweise weist eine INSTALL-Datei den Benutzer
1228 einfach an, "./configure; make; make install"
1229 auszuführen und tangiert ungewöhnliche Optionen oder
1230 Schritte, die notwendig sein könnten. Für die
1231 meisten relativ standardkonformen Installations-
1232 schritte und für die meisten Programme sollten
1233 INSTALL-Dateien so kurz wie möglich sein
1234 und selten über 100 Zeilen hinausgehen.
1236 CHANGELOG, Changelog, ChangeLog oder changelog
1238 Ein CHANGELOG ist eine einfache Datei, die jedes
1239 gut-gemanagte freie Software-Projekt dabeihaben
1240 sollte. Ein CHANGELOG ist einfach die Datei,
1241 die, wie ihr Name andeutet, die Änderungen
1242 loggt und dokumentiert,
1243 die du an deinem Programm machst. Der
1244 einfachste Weg, ein CHANGELOG zu pflegen ist,
1245 einfach eine Datei beim Quellcode deines
1246 Programmes zu haben und mit jeder veröffentlichten
1247 Version immer einen Abschnitt an den Anfang des
1248 CHANGELOG hinzuzufügen, der beschreibt, was im
1249 Programm geändert, korrigiert oder hinzugefügt
1250 worden ist. Es ist eine gute Idee, das CHANGELOG
1251 auch auf der Webseite verfügbar zu machen, weil
1252 es den Leuten helfen kann zu entscheiden, ob sie
1253 auf eine neuere Version wechseln wollen oder
1254 lieber auf eine weitreichenderer Verbesserung
1259 Eine NEWS-Datei und ein ChangeLog sind ähnlich.
1260 Anders als ein CHANGELOG wird eine
1261 NEWS-Datei gewöhnlich nicht mit neuen Versionen
1262 aktualisiert. Wann immer neue Features hinzugefügt
1263 werden, wird der verantwortliche Entwicklers
1264 eine Anmerkung in NEWS machen. NEWS-Dateien
1265 sollten nicht vor einer Freigabe geändert werden
1266 (sie sollten die ganze Zeit aktuell gehalten),
1267 aber es ist normalerweise eine gute Idee, sie
1268 zuerst zu überprüfen, weil Entwickler häufig
1269 einfach vergessen, sie so aktuell zu halten,
1274 Für diejenigen, die es noch nicht wissen,
1275 FAQ steht für Frequently Asked Questions (häufig
1276 gestellte Fragen) und ein FAQ ist eine Ansammlung
1277 von genau diesen. FAQs sind nicht schwierig zu
1278 schreiben. Stelle einfach eine Regel auf, daß,
1279 wenn dir auf einer Mailingliste eine Frage mindestens
1280 zwei Mal gestellt wird, du dann die Frage
1281 (samt Antwort) deinem FAQ hinzufügst. FAQs sind
1282 optionaler als die oben aufgeführten Dateien, aber
1283 sie können dir Zeit sparen, die Benutzbarkeit steigern,
1284 und Kopfschmerzen bei allen Beteiligten reduzieren.
1288 Es ist nur indirekt ein Problem der Dokumentation,
1289 aber eine gute Webseite wird schnell ein
1290 wesentlicher Teil eines freien Software-Projektes.
1291 Deine Webseite sollte Zugang zu deiner
1292 Dokumentation bereitstellen (in HTML, wenn möglich).
1293 Es sollte auch einen Abschnitt für Nachrichten und
1294 Ereignisse in Bezug auf dein Programm einschließen
1295 sowie einen Abschnitt mit Details darüber, wie man
1296 sich am Entwicklungs- oder Testprozess beteiligen
1297 kann, und man sollte dazu eine freundliche Einladung
1298 aussprechen. Es sollte Links zu bestehenden
1299 Mailinglisten und ähnlichen Webseiten bereitstellen
1300 und einen direkten Verweis auf alle verfügbaren
1301 Möglichkeiten, deine Software herunterzuladen.
1305 Weitere Tips zur Dokumentation
1306 ++++++++++++++++++++++++++++++
1308 - Alle deine Dokumentation sollte in Klartext
1309 verfaßt sein, oder, wo sie primär auf deiner
1310 Webseite erscheint, in HTML. Jeder kann cat auf
1311 eine Datei ausführen, jeder hat einen Pager,
1312 (fast) jeder kann HTML darstellen. Du kannst gerne
1313 Informationen in PDF, Postscript, RTF oder
1314 einer beliebigen Zahl anderer weitläufig genutzter
1315 Formate verbreiten, aber dieser Informationen
1316 müssen auch im Klartext oder in HTML verfügbar sein,
1317 sonst werden sich manche Leute sehr ärgern über dich.
1318 Meiner Meinung nach fällt das info-Format auch in
1319 diese Kategorie. Es gibt viel großartige GNU-
1320 Dokumentation die die Leute einfach nicht lesen,
1321 nur weil sie im info-Format ist. Und das verärgert
1322 die Leute wirklich. Es ist nicht eine Frage
1323 überlegener Formate; es ist eine Frage der
1324 Zugänglichkeit, und der Status Quo spielt eine
1325 sehr große Rolle darin, diese zu definieren.
1326 - Es schadet nicht, Dokumentation für dein Programm
1327 über deine Webseite zu verteilen (FAQ usw.),
1328 zusammen mit deinem Programm.
1329 Zögere nicht, Dokumentation in den tarball des
1330 herunterladbaren Programms zu packen. Wenn die Leute
1331 sie nicht benötigen, löschen sie sie wieder. Ich
1332 kann es nur immer wieder wiederholen: Zu viel
1333 Dokumentation ist keine Sünde.
1334 - Falls deine Software nicht spezifisch für einen
1335 nicht-englischen Sprachraum ist (ein japanischer
1336 Editor zum Beispiel), verteile sie bitte mit
1337 englischer Dokumentation. Wenn du kein Englisch
1338 sprichst oder nicht überzeugt bist von deinen
1339 Sprachfähigkeiten, bitte einen Freund um Hilfe.
1340 Ob du es magst oder nicht, ob du es fair findest
1341 oder unfair, Englisch ist die Sprache der
1342 freien Software. Dies heißt jedoch nicht, daß
1343 du deine Dokumentation auf Englisch allein
1344 begrenzen solltest. Wenn du eine andere Sprache
1345 sprichst, verteile ruhig Übersetzungen der
1346 Dokumentation mit deiner Software, wenn du die
1347 Zeit und Energie hast, das zu tun. Sie wird
1348 sicherlich mal für jemanden nützlich.
1349 - Als abschließender Rat, bitte prüfe deine
1350 Dokumentation auf Rechtschreibung.
1351 Rechtschreibfehler in Dokumentation sind
1352 Bugs. Ich habe diesen Fehler oft begangen
1353 und es ist sehr einfach, ihn zu begehen. Wenn
1354 Englisch nicht deine Muttersprache ist, laß'
1355 einen Muttersprachler gegenlesen bzw. deine
1356 Dokumentation und Webseiten korrigieren.
1357 Schlechte Rechtschreibung oder Grammatik
1358 hilft nachhaltig, deinen Code unprofessionell
1359 erscheinen zu lassen. In den Codekommentaren sind
1360 diese Dinge weniger wichtig, aber in den
1361 man pages und Webseiten sind diese Fehler nicht
1366 Weitere Aspekte der Darstellung
1367 ...............................
1369 Viele der verbleibenden Aspekte rund um die
1370 Erzeugung eines neuen freien Softwareprogramms
1371 gehören zu den Aspekten, die die meisten Leute
1372 zum gesunden Menschenverstand zählen.
1373 Man sagt oft, daß software engineering zu 90 Prozent
1374 von gesundem Menschenverstand und zu 10 Prozent von
1375 Spezialwissen bestimmt wird. Trotzdem sind diese
1376 90 Prozent ein paar Worte wert, in der Hoffnung, daß
1377 sie einen Entwickler an etwas erinnern könnten,
1378 was er vergessen haben könnte.
1380 Dateinamen für Packete
1381 ++++++++++++++++++++++
1383 Ich stimme mit ESR überein, wenn er sagt, daß
1384 "es hilfreich ist für jeden, wenn deine Archiv-
1385 dateien alle GNU-konforme Namen haben -- ein
1386 alphanumerisches Präfix in Kleinbuchstaben, gefolgt
1387 von einem Bindestrich, einer Versionsnummer,
1388 Dateiendung, und sonstigen Suffixen." Es gibt noch
1389 mehr Information (einschließlich vieler Beispiele
1390 was man nicht tun sollte) in seinem Software Release
1391 Practices HOWTO, das der Biographie dieses HOWTOs
1392 beigefügt wurde und das über das LDP zu finden ist.
1397 Packetformate können unterschiedlich sein, je nach
1398 System, für das du entwickelst. Für Windows-basierte
1399 Software sind Zip-archive (.zip) meist das Format
1400 der Wahl. Wenn du für GNU/Linux, xBSD, oder sonst
1401 ein UNxX entwickelst, solltest du sicherstellen, daß
1402 der Quellcode immer im erst ge-"tar"-ten und dann
1403 ge-"gzip"-ten format (.tar.gz) verfügbar ist.
1404 UNIX compress (.Z) ist außer Mode gekommen und nicht
1405 mehr brauchbar, und schnellere Computer haben bzip2
1406 (.bz2) als effektiveres Kompressionsformat ins
1407 Rampenlicht gerückt. Ich stelle jetzt alle meine
1408 freigegebenen Versionen als tarballs zu Verfügung,
1409 sowohl mit gzip als auch mit bzip2 komprimiert.
1411 Binärpakete sollten immer distributionsspezifisch
1412 sein. Wenn du Binärpakete für eine aktuelle
1413 verbreitete Distribution bauen kannst, wirst du
1414 deine Benutzer glücklich machen.
1415 Versuche, Beziehungen zu Benutzern und Entwicklern
1416 großer Distributionen aufzubauen, um ein System
1417 entwickeln zu können, in dem du konsistente
1418 Binärpakete erzeugen kannst. Es ist oft eine gute
1419 Idee, RedHat RPMs (.rpm), Debian debs (.deb) und
1420 source RPMss (SRPMs) zu verfügung zu stellen wenn
1423 Zur Erinnerung: Binärpakete sind nett, aber es sollte
1424 für dich immer Priorität haben, den Quellcode
1425 zu verpacken und zu veröffentlichen.
1426 Deine Benutzer und Mitentwickler können und werden
1427 die Binärversionen für dich machen.
1429 Systeme für Versionsverwaltung
1430 ++++++++++++++++++++++++++++++
1432 Eine Versionsverwaltung kann viele dieser
1433 Probleme mit der Paketerzeugung (sowie viele andere
1434 in diesem HOWTO erwähnte Probleme) vereinfachen.
1435 Wenn du \*NIX verwendest, ist CVS wahrscheinlich
1436 deine beste Wahl. Ich empfehle Karl Fogels Buch
1437 zum Thema (sowie die HTML-Version online)
1440 Ob CVS oder nicht, du solltest wahrscheinlich
1441 ein bißchen Zeit in das Erlernen eines
1442 Versionsverwaltungssytems investieren, denn es
1443 bietet eine Möglichkeit, automatisch viele
1444 in diesem HOWTO beschriebenen Probleme zu
1447 Ich weiß über freie Versionsverwaltungssysteme
1448 für Windows oder Mac nicht Bescheid, aber ich weiß,
1449 daß CVS clients für beide Platformen existieren.
1450 Webseiten wie Sourceforge leisten auch gute Dienste
1451 darin, ein nettes, benutzerfreundliches web
1452 interface für CVS anzubieten.
1454 (Anm. des Übers.: Sourceforge empfiehlt
1455 TortoiseCVS für Windows, es integriert sich sehr gut
1456 in den Windows Explorer)
1458 Ich würde CVS hier gerne noch mehr Platz einräumen,
1459 weil ich es liebe (ich benutze CVS sogar, um die
1460 Versionen dieses HOWTOs zu verwalten!), aber ich
1461 denke, daß es den Rahmen dieses Dokuments sprengt,
1462 außerdem wird es in eigenen HOWTOs besprochen.
1463 Am erwähnenswertesten ist das CVS Best Practices
1464 HOWTO [CVSBESTPRACTICES], daß ich der Bibliographie
1465 unten hinzugefügt habe.
1467 Nützliche Kleinigkeiten und Präsentationstips
1468 +++++++++++++++++++++++++++++++++++++++++++++
1472 - Stelle sicher, daß dein Programm immer an einer
1473 bestimmten Position gefunden werden kann. Häufig
1474 bedeutet das, daß du ein einzelnes, über FTP oder
1475 das Netz zugängliches Verzeichnis hast, wo die
1476 neueste Version schnell gefunden werden kann.
1477 Ein wirkungsvolle Technik besteht darin, einen
1478 symbolischen Link namens
\84yourprojectname-latest
\93
1479 anzubieten, der immer auf die neueste freigegebene
1480 bzw. Entwicklungsversion deiner freien Software-
1481 Anwendung zeigt. Behalte im Hinterkopf,
1482 daß diese Position viele Downloadanfragen bekommen
1483 wird, überprüfe also daß dein gewählter Server
1484 über eine ausreichende Bandbreite verfügt.
1485 - Stelle sicher, daß es eine gleichbleibende
1486 Emailaddresse für Bug-Reports gibt. Es
1487 ist normalerweise eine gute Idee, dafür eine
1488 Adresse anzulegen, die NICHT deine primäre
1489 Emailaddresse ist, etwas wie deinprojektname@host
1490 oder deinprojektname-bugs@host. Auf diese Weise
1491 brauchst du, wenn du dich je mal entscheidest,
1492 die Maintainerhoheit abzugeben, oder wenn
1493 sich einfach deine Emailaddresse ändert, einfach
1494 die Emailaddresse ändern, an die die Mails
1495 weitergeleitet werden. Es ermöglicht auch, daß
1496 sich mehr als eine Person mit der Flut
1497 an Post beschäftigen kann, die verursacht wird,
1498 wenn dein Projekt so riesig wird, wie du es dir
1501 Wartung eines Projektes: Wie man mit Entwicklern interagiert
1502 ------------------------------------------------------------
1504 Sobald dein Projekt den Start geschafft hat, hast die
1505 schwierigsten Hürden überwunden im Entwicklungsprozeß
1506 deines Programms. Eine feste Grundlage zu legen
1507 ist essentiell, aber der Entwicklungsprozeß selbst
1508 ist gleichermaßen wichtig und bietet genauso viele
1509 Gelegenheiten zum Versagen. In den folgenden
1510 zwei Abschnitten werde ich beschreiben, wie
1511 man ein Projekt handhabt, indem ich diskutiere, wie
1512 man mit Entwicklern und Benutzern interagiert.
1514 Durch die Veröffentlichung deines Programmes wird
1515 es freie Software. Dieser Übergang bedeutet mehr als
1516 nur eine größere Benutzerbasis. Durch das
1517 Freigeben deines Programms als freie Software
1518 wird deine Software die Software der Community
1519 um freie Software. Die Richtung der Entwicklung
1520 deiner Software wird völlig umgestaltet,
1521 in eine andere Richtung geführt und vollkommen
1522 durch deine Benutzer bestimmt, sowie, in einem
1523 größeren Umfang, durch andere Entwickler in der
1526 Der Hauptunterschied zwischen freier Software-
1527 Entwicklung und Proprietärer Software-Entwicklung
1528 ist die Entwicklerbasis. Als der Leiter eines
1529 freien Softwareprojektes mußt du Entwickler auf eine
1530 besondere Art und Weise anziehen und unterhalten,
1531 was für Leiter kommerzieller Software-Projekte
1532 schlicht kein Thema ist. Als die Person, die die
1533 Entwicklung eines freien Software-Projektes leitet,
1534 mußt du die Arbeit deiner Mitentwickler in die
1535 richtige Richtung lenken, indem du verantwortliche
1536 Entscheidungen triffst, bzw. dich auf verantwortliche Weise dazu entschließt,
1537 Entscheidungen nicht zu treffen. Du mußt
1538 Entwickler anleiten, ohne anmaßend oder rechthaberisch
1539 zu sein. Du mußt dich bemühen, dir Respekt zu
1540 erwerben und nie vergessen, ihn anderen zu erweisen.
1545 Jetzt bist du mir hypothetisch gefolgt
1546 durch die frühe Programmierungphase einer
1547 kleinen Software, der Schaffung einer
1548 Webseite und eines Systems zur Dokumentation,
1549 und wir haben weitergemacht und (wie
1550 im Abschnitt "Freigeben deines Programms" besprochen
1552 es freigegeben für den Rest der Welt.
1553 Etwas Zeit vergeht, und wenn die Dinge gut
1554 laufen, wird es Leute geben, die Interesse zeigen
1555 und helfen möchten. Die Patches fangen an,
1558 Wie die Eltern eines Kindes, das erwachsen wird,
1559 ist es jetzt Zeit kurz zu erschrecken, dann zu
1560 lächeln und das zu tun, was Eltern in ihrem Leben
1561 am schwersten fällt: Es ist Zeit, loszulassen.
1563 Delegation ist die politische Art, diesen Prozeß
1564 des "Loslassens" zu beschreiben. Es ist der Prozeß
1565 der teilweisen Übergabe von Verantwortlichkeit
1566 und Macht über dein Projekt an andere
1567 verantwortliche und beteiligte Entwickler.
1568 Es ist schwierig für jeden, der eine große Menge
1569 Zeit und Energie investiert hat in ein Projekt,
1570 aber es ist entscheidend für das Wachstum
1571 jedes freien Softwareprojektes. Eine Person
1572 alleine stößt irgendwann an ihre Grenzen.
1573 Ein freies Software-Projekt ist nichts
1574 ohne die Miteinbeziehung einer Gruppe von
1575 Entwicklern. Eine Gruppe von Entwicklern kann
1576 nur aufrechterhalten werden durch respektvolle
1577 und verantwortliche Führung und durch Delegation.
1579 Sowie dein Projekt fortschreitet, wirst du
1580 Leute bemerken, die eine bedeutende Menge an
1581 Zeit und Mühe in dein Projekt stecken. Diese
1582 Leute werden diejenigen sein, welche am meisten
1583 Patches einreichen, am meisten auf den Mailinglisten
1584 posten, und sich an langen Emaildiskussionen
1585 beteiligen. Es gehört zu deiner Verantwortung,
1586 mit diesen Leuten in Verbindung treten und zu
1587 versuchen, etwas Projekthoheit und Verantwortung,
1588 die du in deiner Position als Maintainer des
1589 Projektes hast, an sie abzugeben (wenn sie es
1590 wollen). Es gibt mehrere einfache Wege dies zu tun:
1592 Um es ein wenig wie eine Verzichtserklärung zu
1593 formulieren: Delegation muß nicht Entscheidung
1594 durch ein Kommitee bedeuten. In vielen
1595 Fällen läuft es so und dies hat sich nachweislich
1596 als funktionierende Variante gezeigt. In anderen
1597 Fällen hat diese Variante Probleme verursacht.
1598 "Managing Projects the Open Source Way" argumentiert
1599 daß "Open Source-Projekte am besten laufen, wenn
1600 eine Person der klare Anführer des Teams ist und
1601 alle wichtigen Entscheidungen (Designänderungen,
1602 Freigabedaten, und so weiter) trifft." Ich denke,
1603 daß das häufig zutrifft, würde aber darauf drängen,
1604 daß Entwickler die Idee berücksichtigen, daß
1605 der Projektleiter nicht der Projektgründer sein
1606 muß und der Release-Manager eine andere Person sein
1607 kann als ein Hauptentwickler. Diese Situationen
1608 sind politisch schwierig, sei also vorsichtig und
1609 stelle sicher, daß es notwendig ist, bevor du
1610 anfängst, Leute zu bevollmächtigen.
1615 Du magst die Erfahrung machen, daß andere
1616 Entwickler sogar noch erfahrener oder
1617 sachkundiger zu sein scheinen als du. Dein Job
1618 als Maintainer bedeutet nicht, daß du der Beste
1619 oder Gescheiteste sein mußt. Es bedeutet, daß
1620 du verantwortlich dafür bist, gut zu beurteilen
1621 und wartbare Lösungen von unwartbaren unterscheiden
1623 Wie bei anderen Dingen ist es leichter, andere beim
1624 Delegieren zu beobachten als es selber zu tun.
1625 In einem Satz gesagt: Halte ein Auge offen für
1626 andere qualifizierte Entwickler, die Interesse
1627 zeigen und anhaltendes Engagement in deinem
1628 Projekt, und versuche Verantwortlichkeit an sie
1629 abzugeben. Die folgenden Ideen könnten
1630 gute Startpunkte sein oder gute Quellen der
1633 Gib einer größeren Gruppe Schreibzugriff auf
1634 deinem CVS-Repository und unternimm konkrete
1635 Schritte in Richtung Abstimmung durch ein Komitee.
1637 Apache ist ein Beispiel eines Projektes, das
1638 von einer kleinen Gruppe an Entwicklern betrieben
1639 wird, die über wichtige technische Entscheidungen
1640 und die Aufnahme neuer Mitglieder abstimmen, und
1641 alle Schreibrechte auf dem zentralen Repository
1642 besitzen. Ihr Prozeß wird online genau beschrieben.
1644 Das Debianprojekt ist ein extremes Beispiel
1645 von Abstimmung durch ein Komitee. Nach momentaner
1646 Zählung tragen mehr als 700 Entwickler volle
1647 Verantwortung für Aspekte des Projektes. Alle
1648 diese Entwickler können auf den Haupt-FTP-Server
1649 hochladen und über wichtige Angelegenheiten
1650 abstimmen. Die Richtung des Projektes wird durch
1651 den sogenannten "social contract" des Projektes
1652 und seine Verfassung festgelegt. Um dieses System
1653 zu unterstützen, gibt es spezielle Teams
1654 (z.B. das Installationsteam, das Team für
1655 japanische Sprache), außerdem gibt es einen
1656 technischen Ausschuß und einen Projektleiter.
1657 Die Hauptverantwortlichkeit des Leiters besteht
1658 darin, "Delegierte zu ernennen oder Entscheidungen
1659 an den technischen Ausschuß zu delegieren."
1661 Während diese beiden Projekte sich in einer Dimension
1662 bewegen, die dein dein Projekt nicht haben wird
1663 (zumindestens nicht zu Beginn), ist ihr Beispiel
1664 doch nützlich. Debians Vorstellung eines
1665 Projektleiters, der nichts tun kann als zu
1666 delegieren dient als Karikatur davon, wie ein
1667 Projekt eine sehr große Zahl an Entwicklern
1668 einbeziehen und bevollmächtigen und eine enorme
1669 Größe erreichen kann.
1671 Ernenne öffentlich jemanden als Releasemanager
1672 ++++++++++++++++++++++++++++++++++++++++++++++
1674 Ein Releasemanager oder Freigabemanager ist
1675 normalerweise verantwortlich für die Koordination
1676 von Tests, dfür das Festlegen eines Code Freeze,
1677 für Stabilität und Qualitätskontrolle, sowie für
1678 das Zusammenbauen der Software und ihr und
1679 Bereitstellen zum Download an den passenden Orten.
1682 Diese Verwendung des Freigabemanagers ist ein
1683 guter Weg, sich eine Atempause zu verschaffen und
1684 die Verantwortlichkeit für das Annehmen und das
1685 Zurückweisen von Patches auf jemand anderen zu
1686 verschieben. Es ist eine gute Methode, um
1687 ein Stück der Arbeit sehr klar abzugrenzen
1688 und einer Person zuzuweisen, und es ist eine tolle
1689 Methode, um sich Luft zu schaffen.
1691 Verantwortung für einen ganzen Zweig delegieren
1692 +++++++++++++++++++++++++++++++++++++++++++++++
1694 Wenn dein Projekt beschließt, mehrere Entwicklungs-
1695 zweige zu führen (wie im Abschnitt
1696 "Stabile Zweige und Entwicklungszweige " beschrieben),
1697 könnte es eine gute Idee sein, jemanden anderes zu
1698 ernennen, um der Leiter eines Zweiges zu sein.
1699 Wenn du deine Energie auf Entwicklungsreleases
1700 und die Implementierung neuer Features fokussieren
1701 möchtest, dann übergib die volle Kontrolle
1702 über stabile Releases an einen passenden
1705 Der Autor von Linux, Linus Torvalds, ging hinaus
1706 und krönte Alan Cox als "Mann für stabile Kernels."
1707 Alle Patches für stabile Kernels gehen zu Alan
1708 und wenn Linus aus irgendeinem Grund von
1709 der Arbeit an Linux abgehalten werden sollte,
1710 wäre Alan Cox mehr als geeignet, um seine Rolle
1711 zu übernehmen als akzeptierter Erbe der
1712 Linux-Maintainerschaft.
1714 Patches annehmen und ablehnen
1715 .............................
1717 Dieses HOWTO hat bereits das Thema berührt, daß
1718 als Maintainer eines freien Softwareprojektes
1719 eine deiner primären und wichtigsten
1720 Aufgaben darin besteht, durch andere Entwickler
1721 eingereichte Patches anzunehmen oder abzuweisen.
1723 Zu gutem Patchen anregen
1724 ++++++++++++++++++++++++
1726 Als die Person, die ein Projekt managt oder
1727 der Maintainer ist, bist du nicht die Person, die
1728 eine Menge an Patches macht. Es ist jedoch
1729 nützlich, wenn man den ESRs Abschnitt über
1730 gute Patchpraxis aus seinem Software Release
1731 Practices HOWTO [ESRHOWTO] kennt. Ich stimme nicht
1732 überein mit ESRs Behaupting, daß die allerhäßlichen
1733 oder undokumentiertesten Patches es vermutlich wert
1734 wären sofort herausgeworfen zu werden --
1735 das ist gerade nicht meine Erfahrung gewesen,
1736 besonders wenn im Umgang mit Bugfixes, die oft
1737 überhaupt nicht in Form eines Patches kommen.
1738 Selbstverständlich bedeutet das nicht, daß ich
1739 gerne häßliche "-e"-Patches bekomme. Wenn du
1740 häßliche "-e"-Patches oder total undokumentierte
1741 Patches bekommst, und vor allem wenn sie
1742 irgendetwas anders als Bugfixes sind, könnte es
1743 nützlich sein, den Patch nach einigen der
1744 Kriterien in ESRs HOWTO zu beurteilen und den
1745 Leuten dann den Link zu diesem Dokument zu geben,
1746 damit sie "richtig" patchen können.
1748 Fachliche Beurteilung
1749 +++++++++++++++++++++
1751 In Open Source Development with CVS argumentiert
1752 Karl Fogel überzeugend, daß beim Annehmen und
1753 Ablehnen von Patches die folgenden Dinge in
1754 der Berücksichtigung am wichtigsten sind:
1756 - Solides Wissen über den Wirkungsbereich deines
1757 Programms (das ist die "Idee" von der ich sprach
1758 im Abschnitt "Wählen eines Projektes");
1759 - Die Fähigkeit die "Evolution" deines Programms
1760 zu erkennen, zu erleichtern, und zu lenken, sodaß
1761 das Programm wachsen, sich ändern und
1762 Funktionalität aufnehmen kann, die so ursprünglich
1763 nicht vorgesehen war;
1764 - Die Notwendigkeit, Abweichungen zu vermeiden,
1765 die den Bereich des Programms zu stark erweitern
1766 und das Projekt auf einen frühen Tod unter seinem
1767 eigenen Gewicht und seiner Unbeweglichkeit
1770 Dies sind die Kriterien die du als
1771 Projektmaintainer jedesmal in Betracht ziehen
1772 solltest, wenn du einen Patch bekommst.
1774 Fogel führt dazu weiter aus und sagt daß
1775 "die Fragen, die du dir stellen solltest, wenn
1776 du abwägst, ob du eine Änderung implementierst
1777 (oder ihr zustimmst) folgende sind:
1779 - Wird sie einem bedeutenden Prozentsatz der
1780 Benutzer-Community nützen?
1781 - Paßt sie zum Einsatzgebiet des Programms
1782 oder in eine natürliche, intuitive Erweiterung
1785 Die Antworten zu diesen Fragen sind nie
1786 trivial und es sehr gut möglich (und sogar
1787 wahrscheinlich), daß die Person, die den Patch
1788 eingereicht hat, eine andere Antwort auf diese
1789 Fragen als richtig empfindet als du.
1790 Jedoch wenn du den Eindruck hast, daß die Antwort
1791 auf eine dieser Fragen "nein" ist, so ist es deine
1792 Verantwortung, die Änderung zurückzuweisen. Wenn
1793 du das nicht schaffst, wird das Projekt
1794 schwerfällig und unwartbar, und viele scheitern
1797 Zurückweisen von Patches
1798 ++++++++++++++++++++++++
1800 Patches zurückzuweisen ist vermutlich der
1801 schwierigste und sensibelste Job, dem sich der
1802 Maintainer jedwedes freien Software-Projektes
1803 stellen muß. Aber manchmal muß es getan werden.
1804 Ich erwähnte bereits (im Abschnitt
1805 "Wartung eines Projektes: Wie man mit Entwicklern interagiert" und
1806 im Abschnitt "Arbeit delegieren"), daß du versuchen mußt, deine
1807 Verantwortung und Macht zu balancieren, um
1808 die deiner Meinung nach besten fachlichen
1809 Entscheidungen zu treffen angesichts der Tatsache,
1810 daß du Unterstützung von anderen Entwicklern verlieren
1811 wirst, wenn du auf einem Machttrip bist oder du dich zu
1812 herschend oder besitzergreifend zu dem Projekt
1813 der Community verhältst. Ich empfehle, daß
1814 du dir diese drei Hauptkonzepte merkst, wenn
1815 du Patches zurückweist (oder andere Änderungen):
1817 Zeige ihn der Community
1818 #######################
1820 Einer der besten Wege, um die Entscheidung,
1821 einen Patch abzulehnen, zu rechtfertigen, der
1822 auch darauf hinzielt, daß du nicht den Eindruck
1823 erweckst, dein Projekt mit eiserner Hand zu führen,
1824 besteht darin, die Entscheidung überhaupt nicht
1825 allein zu treffen. Es könnte sinnvoll sein,
1826 größere vorgeschlagene Änderungen oder schwierigere
1827 Entscheidungen an eine Entwicklungs-Mailingliste
1828 zu delegieren, wo sie diskutiert und debattiert
1829 werden können. Es wird einige Patches geben
1830 (Bugfixes etc.), die definitiv angenommen werden,
1831 und einige, von denen du glaubst, daß sie so abwegig
1832 sind, daß sie nicht mal eine weitere Diskussion
1833 verdienen. Es sind diejenigen, die in die Grauezone
1834 zwischen diesen zwei Gruppen fallen, die es vielleicht
1835 verdienen, schnell mal andie Mailingliste weitergeleitet
1838 Ich empfehle diesen Prozeß von ganzem Herzen.
1839 Als Projektmaintainer sorgst du dich darum, wie
1840 die beste Entscheidung für das Projekt gefällt wird,
1841 für die Benutzer und die Entwickler des Projektes,
1842 und für dich selbst als verantwortlichen
1843 Projektleiter. Das Weiterleiten an eine Mailingliste
1844 demonstriert dein eigenes Verantwortlichkeitsgefühl
1845 und deinen entgegenkommenden Führungsstil, weil es
1846 die Interessen der Community deiner Software prüft
1849 Fachliche Einwände sind nicht immer eine gute Rechtfertigung
1850 ############################################################
1852 Besonders zum Anfang des Lebens deines Projektes
1853 wirst du auf viele Änderungen stoßen,
1854 die schwer zu implementieren sind, Bugs hervorrufen,
1855 oder sonstige technische Schwierigkeiten verursachen.
1856 Versuche, über diese hinwegzusehen. Besonders bei
1857 neuer Funktionalität kommen gute Ideen nicht immer
1858 von guten Programmierern.
1859 Wenn er fachlich nicht angebracht ist, ist das
1860 ein berechtigter Grund, um die Integration eines
1861 Patches hinauszuschieben, aber es ist nicht immer
1862 ein triftiger Grund, eine Änderung völlig
1863 zurückzuweisen. Selbst kleine Änderungen
1864 sind es wert, mit dem den Patch einreichenden
1865 Enwickler zusammenzuarbeiten, um Bugs auszubügeln
1866 und die Änderung zu integrieren, wenn du der
1867 Meinung bist, daß sie eine gute Ergänzung für dein
1868 Projekt darstellt. Dein Aufwand wird dabei helfen,
1869 das Projekt zu einem Communityprojekt zu machen
1870 und einen neuen oder weniger erfahrenen Entwickler
1871 in dein Projekt integrieren, und ihm sogar etwas
1872 beibringen, daß ihm helfen könnte, wenn er seinen
1873 nächsten Patch erstellt.
1875 Allgemeine Höflichkeit
1876 ######################
1878 Es sollte eigentlich nicht gesagt werden müssen,
1879 aber bitte, sei einfach immer höflich. Wenn
1880 jemand eine Idee hat und sie für wichtig genug
1881 erachtet, daß er dazu Code schreibt und einen Patch
1882 einreicht, dann bedeutet es ihm etwas, er ist
1883 motiviert, und bereits am Projekt beteiligt. Dein
1884 Ziel als Maintainer besteht darin sicherstellen,
1885 daß er weiter Patches einreicht.
1886 Manchmal mag er dir einen Blindgänger geliefert
1887 haben, aber das nächste Mail ist es vielleicht
1888 die Idee oder das Feature, das dein Projekt
1891 Es liegt in deiner Verantwortung, zuerst
1892 deine Entscheidung, seine Änderung nicht
1893 zu integrieren, kurz und klar zu rechtfertigen.
1894 Weiterhin solltest du ihm danken. Lasse ihn wissen,
1895 daß du seine Hilfe schätzt, und dich schlecht
1896 fühlst, weil du seine Änderungen nicht integrieren
1897 kannst. Informiere ihn, daß du dich darauf freust,
1898 daß sie sich weiterhin beteiligen, und daß du
1899 hoffst, daß der nächste Patch oder die nächste
1900 Idee besser in dein Projekt paßt, weil du
1901 seine Arbeit schätzt und sie in deine Anwendung
1902 einfließen sehen möchtest. Wenn dir je einer deiner
1903 Patches zurückgewiesen wurde, in den du eine Menge
1904 Zeit, Gedanken und Energie gesteckt hast, wirst du
1905 dich erinnern, wie es sich anfühlt, und es fühlt
1906 sich schlecht an. Erinnere dich daran, wenn du mal
1907 jemanden entäuschen mußt. Es ist nie einfach, aber
1908 du mußt alles tun was du kannst, um es so wenig
1909 unangenehm wie möglich zu gestalten.
1911 Stabile Zweige und Entwicklungszweige ("branches")
1912 ..................................................
1914 Die Idee der stabile Zweige und Entwicklungszweige
1915 ist bereits kurz im Abschnitt "Wählen einer Methode der Versionsnumerierung"
1917 sowie im Abschnitt "Verantwortung für einen ganzen Zweig delegieren."
1918 Diese Anrisse bezeugen bis
1919 zu einem gewissen Grad, daß mehrere Zweige (branches)
1920 deine Software beeinflussen.
1921 Branches ermöglichen dir (bis zu einem gewissen Grad)
1922 einige der Probleme mit dem Zurückweisen von
1923 Patches (wie im Abschnitt "Patches annehmen und ablehnen"
1925 vermeiden, indem sie dir erlauben, die Stabilität
1926 deines Projektes vorübergehend zu kompromittieren,
1927 ohne diejenigen Benutzer zu beeinträchtigen, die
1928 diese Stabilität benötigen.
1930 Die gängigste Art, dein Projekt in Branches aufzuteilen
1931 besteht darin, einen stabilen Branch zu haben und
1932 einen für die Entwicklung. Das ist das Modell, dem
1933 der Linux-Kernel folgt, es wird beschrieben im
1934 Abschnitt "Wählen einer Methode der Versionsnumerierung."
1935 In diesem Modell gibt es immer
1936 einen Branch, der stabil ist, und einen, der sich
1937 in der Entwicklungsphase befindet. Vor jedem neuen
1938 Release geht der Entwicklungszweig in einen
1939 "feature freeze" genannten Zustand über, wie im
1940 Abschnitt "Freezing" beschrieben, wo große Änderungen
1941 und neue Features zurückgewiesen werden, oder
1942 zurückgehalten werden, bis der Entwicklungskernel
1943 freigegeben worden ist als neuer stabiler Branch
1944 und die Hauptentwicklung auf dem Entwicklungszweig
1945 weitergeht. Bugfixes und kleine Änderungen, die
1946 wahrscheinlich keine großen negativen Rückwirkungen
1947 haben werden, werden in den stabilen und den
1948 Entwicklungszweig integriert.
1950 Das Modell von Linux liefert ein extremes Beispiel.
1951 In vielen Projekten besteht keine Notwendigkeit,
1952 zwei Versionen ständig verfügbar zu halten. Es kann
1953 sinnvoll sein, zwei Versionen nur kurz vor einem
1954 Release zu haben. Das Debian-Projekt hat in seiner
1955 Geschichte immer eine stabile und eine instabile
1956 Distribution bereitgestellt, hat aber erweitert,
1957 um die folgenden Distributionen einzubeziehen:
1958 Stabil, instabil, testing, experimentell, und
1959 (um die Releasezeit herum) eine eingefrorene
1960 Distribution, die nur Bugfixes integriert während
1961 des Übergangs von instabil zu stabil. Es gibt
1962 wenige Projekte, deren Größe ein System wie das
1963 von Debian erfordern würde, aber diese Verwendung
1964 von Branches hilft dabei, zu zeigen, wie sie
1965 verwendet werden können, um eine Ausgleich zu
1966 schaffen zwischen konsistenter und effektiver
1967 Entwicklung und dem Bedürfnis, regelmäßige und
1968 brauchbare Releases zu erzeugen.
1970 Beim Versuch einen Entwicklungsbaum für
1971 dich selbst aufzusetzen, gibt es einige nützliche
1972 Dinge, die du im Kopf behalten solltest:
1974 Die Zahl der Branches minimieren
1975 ++++++++++++++++++++++++++++++++
1977 Debian mag vier oder fünf Branches sinnvoll
1978 einsetzen können, aber es enthält auch Gigabytes
1979 an Software in über 5000 Paketen, kompiliert für
1980 5-6 verschiedene Architekturen. Für dich sind
1981 zwei Branches vermutlich das Ende der Fahnenstange.
1982 Zu viele Branches verwirren deine Benutzer
1983 (ich kann keine Zahl nennen, wieviele Male ich
1984 Debians System beschreiben mußte, als es noch nur
1985 2 und manchmal 3 Branches hatte!), mögliche
1986 Entwickler und dich selber. Branches können
1987 helfen, aber sie haben ihren Preis, also mache
1988 sehr sparsam Gebrauch von ihnen.
1990 Stelle sicher, daß all deine verschiedenen Branches erklärt werden
1991 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1993 Wie ich im vorhergehenden Punkt erwähnte,
1994 verwirren verschiedene Branches deine Benutzer.
1995 Tu' alles, was du kannst, um das zu vermeiden, indem
1996 du die verschiedenen Branches auf einer
1997 hervorstechenden Seite deiner web site und in einem
1998 README auf dem FTP-/Webverzeichnus verständlich
2001 Ich würde auch gerne eine Empfehlung ausprechen zu
2002 einem Fehler den Debin meiner Meinung nach gemacht
2003 hat. Die Bezeichnungen "unstable," "testing," und
2004 "experimental" sind vage und schwierig einzuordnen
2005 in Bezug auf Stabilität (oder Instabilität).
2006 Versuche, jemandem zu erklären, daß "stable"
2007 wirklich "ultrastabil" bedeutet und "unstable"
2008 nicht wirklich irgendwelche instabile Software
2009 beinhaltet, sondern stabile Software, die als
2010 Distribution zusammen ungestet ist.
2012 Wenn du beabsichtigst, Branches zu verwenden,
2013 vor allem von einem frühen Zeitpunkt an, erinnere
2014 dich daran, daß die Leute darauf geeicht sind,
2015 die Bezeichnungen "stabil" und "development" zu
2016 verstehen und du mit dieser einfachen und
2017 gebräuchlichen Aufteilung in Branches vermutlich
2018 nicht falsch liegen kannst.
2020 Stelle sicher, daß alle deine Branches immer verfügbar sind
2021 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2023 Wie vieles in diesem Dokument, sollte das folgende
2024 eigentlich nicht gesagt zu werden brauchen, aber
2025 die Erfahrung hat mich gelehrt, daß es für viele
2026 Leute nicht immer auf der Hand liegt.
2027 Es ist eine gute Idee, Branches physikalisch
2028 auf unterschiedliche Verzeichnisse oder Verzeichnis-
2029 bäume auf deiner ftp-/Webseite aufzuspalten. Linux
2030 erreicht das, indem es Kernels in ein v2.2/v2.3-
2031 Unterverzeichnis ablegt, wo es sofort auf der Hand
2032 liegt (sobald du ihr Numerierungsschema kennst),
2033 welches Verzeichnis für die neueste stabile
2034 bzw. die aktuelle Entwicklungsversion steht.
2035 Debian erreicht das Ziel, indem es allen
2036 Distributionen Namen gibt (wie woody, potato, etc),
2037 und dann Symlinks namens "stable", "unstable",
2038 und "frozen" umleitet, um auf die entsprechende
2039 Distribution im entsprechenden Stadium zu verweisen.
2040 Beide Methoden funktionieren, und es gibt noch andere.
2041 In jedem Fall es ist wichtig, daß die unterschiedlichen
2042 Branches immer verfügbar und an gleichbleibenden
2043 Orten zugänglich sind, und daß unterschiedliche
2044 Branches klar von einander unterscheidbar sind,
2045 damit deine Benutzer genau wissen, welche sie
2046 wollen und wo sie sie bekommen.
2048 Andere Aspekte des Projektmanagements
2049 .....................................
2051 Es gibt noch mehr Aspekte rund um die Interaktion
2052 mit Entwicklern in einem freien Software-Projekt,
2053 die ich nicht in großem Detail schildern kann in
2054 einem HOWTO dieser Größe und dieser Sichtweise.
2055 Bitte zögere nicht, mit mir in Verbindung zu
2056 treten, wenn du irgendwelche entscheidenden
2057 Auslassungen siehst.
2059 Andere kleinere erwähnenswerte Aspekte sind:
2064 Für diejenigen Projekte, die beschließen, ein
2065 geteiltes Entwicklungsmodell (der Abschnitt
2066 "Stabile Zweige und Entwicklungszweige")
2067 zu wählen, ist "freezing" (dt. einfrieren) ein
2068 Konzept, mit dem vertraut zu werden nützlich ist.
2070 Freezes kommen in zwei Hauptformen. Ein
2071 "feature freeze" ist eine Periode, in der einem
2072 Programm keine bedeutende Funktionalität hinzugefügt
2073 wird. Es eine Periode, in der etablierte
2074 Funktionalität (sogar Gerüste kaum funktionsfähiger
2075 Funktionalität) verbessert und vervollkommnet
2076 werden können. Es eine Periode, in der Bugs
2077 behoben werden. Diese Art des Freeze kommt
2078 normalerweise eine gewisse Zeit (ein Monat oder
2079 zwei) vor einem Release. Es ist einfach, ein
2080 Release zu verschieben, während du auf "ein
2081 weiteres Feature" wartest, und ein Freeze hilft,
2082 diese Situation zu vermeiden, indem er einen
2083 Schlußstrich setzt. Er gibt Entwicklern Raum,
2084 den sie brauchen, um ein Programm releasefertig
2087 Die zweite Art des Freeze ist ein "code freeze,"
2088 welcher viel eher wie ein freigegebenes Stück
2089 Software aussieht. Sobald ein Stück Software einen
2090 "code freeze" begeht, wird von allen Änderungen
2091 am Code abgeraten, und nur Änderungen, die
2092 bekannte Bugs beheben sind gestattet. Diese Art
2093 von Freeze olgt normalerweise einem "feature freeze"
2094 und kommt kurz vor einem Release.Die meiste
2095 freigegebene Software befindet sich in einem Zustand,
2096 den man als einen "code freeze" auf
2097 höherer Ebene deuten könnte.
2099 Selbst wenn du nie beschließt, einen Releasemanager
2100 zu ernennen (der Abschnitt "Ernenne öffentlich jemanden als Releasemanager "),
2101 wirst es dir leichter fallen, die Ablehnung oder den Aufschub
2102 von Patches zu rechtfertigen (der Abschnitt "Patches annehmen und ablehnen")
2103 vor einem Release mit einem öffentlich
2104 angekündigten Freeze.
2109 Ich war mir nicht sicher, wie ich mit dem
2110 Forking (dt Aufgabeln, Aufspalten) in diesem
2111 Dokument umgehen soll (oder ob ich es überhaupt
2112 behandele). Ein Fork liegt vor, wenn eine Gruppe
2113 von Entwicklern den Code einer freien Software
2114 nimmt und tatsächlich ein völlig neues freies
2115 Software-Projekt mit ihm beginnt. Das berühmteste
2116 Beispiel eines Forks war zwischen Emacs und XEmacs.
2117 Beide Emacse basieren auf einer identischen
2118 Codebasis, aber aus technischen, politischen und
2119 philosophischen Gründen wurde die Entwicklung
2120 in zwei Projekte aufgespalten, die jetzt
2121 miteinander konkurrieren.
2123 Die Kurzversion dieses Abschnitts über Forks ist:
2124 Mach' keinen. Forks zwingen Entwickler, sich für
2125 ein Projekt zu entscheiden, an dem sie arbeiten
2126 möchten, schaffen unangenehme politische Lager
2127 und Redundanz in der Arbeit. Glücklicherweise ist
2128 normalerweise die Drohung eines Forks genug, um
2129 den oder die Maintainer eines Projektes so
2130 abzuschrecken, daß sie ihren Projektführungsstil
2133 In seinem Kapitel über den "Open Source Process"
2134 beschreibt Karl Fogel, wie man einen Fork durchführt,
2135 wenn du unbedingt mußt. Wenn du festgestellt hast,
2136 das es zwingend notwendig ist und die Differenzen
2137 zwischen dir und den Leuten, die mit einem Fork
2138 drohen absolut unauflöslich sind, empfehle ich
2139 Fogels Buch als gute Einführung.
2141 Maintainen eines Projektes: Mit Benutzern interagieren
2142 ------------------------------------------------------
2144 Wenn du dich bis hier her vorgearbeitet hast,
2145 herzlichen Glückwunsch, du näherst dich dem Ende
2146 dieses Dokumentes. Dieser abschließende
2147 Abschnitt beschreibt einige der Situationen, in
2148 denen du, in deiner Funktion als Projektmaintainer
2149 mit Benutzern interagieren wirst. Es bietet einige
2150 Vorschläge, wie diese Situationen effektiv
2151 gehandhabt werden könnten.
2153 Das Interagieren mit Benutzern ist schwierig. In
2154 unserer Diskussion über die Interaktion mit
2155 Entwicklern ist die zugrundeliegende
2156 Annahme, daß ein Projektmaintainer in einem freiem
2157 Softwareprojekt sich ständig bemühen muß,
2158 Entwickler anzuziehen und zu halten, die
2159 leicht jederzeit gehen können.
2161 Benutzer in der freien Software-Community sind
2162 anders als Entwickler und als Benutzer in der Welt
2163 der kommerziellen Software, und sie sollten auch
2164 anders behandelt werden als die beiden erstgenannten
2165 Gruppen. Einige Merkmale, wie sich die Gruppen
2166 erheblich unterscheiden folgen:
2168 - Die Grenze zwischen Benutzern und Entwicklern
2169 ist unscharf, in einer Art, wie es einem proprietären
2170 Entwicklungsmodell völlig fremd ist. Deine
2171 Benutzer sind häufig deine Entwickler und umgekehrt.
2172 - In der freien Software-Welt bist du häufig die
2173 einzige Wahl deiner Benutzer. Weil dort ein so
2174 starkes Gewicht darauf liegt, daß man nicht die
2175 Arbeit von anderen dupliziert, und weil das
2176 Element des Wettbewerbs wie beim proprietären
2177 Softwaremodell abwesend ist (oder zumindest eine
2178 ganz andere Form annimmt), wirst du vermutlich
2179 das einzige Projekt sein, daß das tut was du tust
2180 (oder zumindest das einzige, das es auf diese
2181 Art und Weise macht). Das heißt, daß schnelles
2182 Reagieren deinerseits für deine Benutzer sogar
2183 noch wichtiger ist als in der kommerziellen
2186 - Es scheint eine fast paradoxe Situation zu sein,
2187 aber für freie Software-Projekte hat es erst mal
2188 weniger direkte und schwerwiegende Konsequenzen,
2189 wenn sie ihre Benutzer vollkommen ignorieren.
2190 Das zu tun ist auch häufig einfacher. Weil du
2191 normalerweise nicht mit einem anderen Produkt
2192 zu konkurrieren brauchst, stehen die Chancen gut,
2193 daß du nicht auf Teufel-komm'raus versuchen wirst,
2194 neue Features vom neuesten Programm deines
2195 Konkurrenten zu übernehmen. Dies bedeutet, daß
2196 dein Entwicklungsprozeß sich entweder aus sich
2197 selbst heraus leitet muß, oder aus einer
2198 Verpflichtung gegenüber deinen Benutzern, oder
2201 Der Versuch, diese einzigartige Situation anzugehen
2202 kann nur indirekt erfolgen. Entwickler und
2203 Maintainer müssen den Benutzern zuhören und
2204 versuchen, so entgegenkommend wie möglich zu sein.
2205 Ein solide Wissen über die oben dargestellte
2206 Situation ist das beste Werkzeug jedes freien
2207 Softwareentwicklers um seinen Entwicklungs- oder
2208 Führungsstil so zu adaptieren, daß er zum
2209 einzigartigen Prozeß des freien Software-
2210 Projektmanagements paßt.
2211 Diese Kapitel werden versuchen, einige der
2212 schwierigeren oder wichtigeren Punkte einzuführen
2213 in Interaktionen mit Benutzern eines Projekts, und
2214 geben dabei einige Tips, wie man diese anpackt.
2219 Deine Benutzern sind nicht nur deine Entwickler,
2220 sondern auch (und möglicherweise sogar öfter)
2221 deine Tester. Bevor ich jetzt geflamed werde,
2222 sollte ich meinen Satz umformulieren: Einige
2223 deiner Benutzer (diejenigen, die sich ausdrücklich
2224 anbieten) sind deine Tester.
2226 Es ist wichtig, daß diese Unterscheidung von einem
2227 frühen Zeitpunkt an gemacht wird, weil nicht alle
2228 deine Benutzer Tester sein wollen. Viele Benutzer
2229 möchten stabile Software verwenden, und es kümmert
2230 sie nicht, wenn sie nicht die neueste, tollste
2231 Software mit den neueste, tollsten Features haben.
2232 Diese Benutzer akzeptieren ein stabiles, getestetes
2233 Stück Software ohne große/offensichtliche Bugs und
2234 werden sich ärgern, wenn sie sich als Tester
2235 erkennen. Dies ist ein weiterer Moment, wo ein
2236 aufgeteiltes Entwicklungsmodell (wie im Abschnitt
2237 "Stabile Zweige und Entwicklungszweige" erwähnt)
2238 sich als nützlich erweist.
2240 "Managing Projects the Open Source Way" beschreibt,
2241 wonach ein guter Test suchen sollte:
2246 Maximale Pufferlängen, Datenumwandlungen,
2247 ober/untere Grenzen, und so weiter.
2249 Nicht angebrachtes Verhalten
2250 ++++++++++++++++++++++++++++
2252 Es ist eine gute Idee herauszufinden, was ein
2253 Programm tun wird, wenn ein Benutzer ihm einen
2254 Wert übergibt, den es nicht erwartet, eine
2255 falsche Taste drückt, etc. Frage dich eine
2256 Vielzahl von "was passiert, wenn ..."-Fragen
2257 und denke an all das, was schieflaufen oder
2258 falsch laufen könnte, und finde heraus, was dein
2259 Programm in diesen Fällen tun würde.
2261 Würdevolles Versagen
2262 ++++++++++++++++++++
2264 Die Antwort zu einer Vielzahl von
2265 "was passiert, wenn ..."-Fragen oben ist vermutlich
2266 "Versagen," was häufig die einzige Antwort ist.
2267 Jetzt stelle sicher, ob das auf eine schöne Art
2268 geschieht. Stelle sicher, daß, wenn dein Programm
2269 abstürzt, es irgendwelche Hinweise gibt darüber,
2270 warum es abgestürzt ist oder versagt hat, sodaß
2271 der Benutzer oder Entwickler versteht, was los ist.
2276 Wenn möglich stelle sicher, daß deine Programme
2277 sicher an Standards halten. Wenn es interaktiv
2278 ist, sei nicht zu kreativ mit Schnittstellen.
2279 Wenn es nicht interaktiv ist, dann stelle sicher,
2280 daß es über passende und etablierte Schnittstellen
2281 mit anderen Programmen und mit dem Rest des System
2284 Automatisiertes Testen
2285 ++++++++++++++++++++++
2287 Für viele Programme können viele häufige Fehler
2288 durch automatisierte Methoden erkannt werden.
2289 Automatisierte Tests erweisen sich als nützlich
2290 beim Erkennen von Fehlern, in die du schon
2291 mehrmals vorher gelaufen bist, oder von den Dingen,
2292 die du einfach vergißt. Sie sind nicht sehr gut
2293 im Auffinden von Fehlern, auch sehr schweren Fehlern,
2294 die völlig unvorhergesehen sind.
2296 CVS kommt mit einem Bourne-Shell-Skript namens
2297 sanity.sh, das eine Betrachtung wert ist.
2298 Debian verwendet ein Programm namens lintian,
2299 das Debianpakete auf die gängigsten Fehler
2300 prüft. Während der Gebrauch dieser Skripte nicht
2301 nützlich sein mag, gibt es doch eine Armee anderer
2302 Fehlerprüfsoftware im Netz, die vielleicht anwendbar
2303 ist (schick' mir ruhig Empfehlungen per Email).
2304 Keine von diesen wird zu einem bug-freien Release
2305 führen, aber sie vermeiden zumindest, daß du
2306 etwas wichtiges übersiehst.
2307 Schließlich wirst du feststellen, wenn deine
2308 Programme sich als längerfristige Projekte erweisen,
2309 daß du bestimmte Fehler immer wieder machst.
2310 Fange eine Skriptensammlung an, die auf diese
2311 Fehler hin prüfen, damit sie dir helfen, zukünftige
2312 Releases von diesen Fehler freizuhalten.
2317 In jedem Programm, das auf Interaktion mit dem
2318 Benutzer angewiesen ist, werden viele Bugs
2319 nur durch testende Benutzer gefunden, die wirklich
2320 die Tasten und Maustasten drücken. Dafür brauchst du
2321 Tester, und zwar so viele wie möglich.
2323 Der schwierigste Teil am Testen ist das Finden von
2324 Testern. Es ist normalerweise eine gute Strategie,
2325 eine Nachricht an eine relevante Mailingliste oder
2326 Newsgroup zu schicken, die ein vorgeschlagenes
2327 Releasedatum ankündigt und die Funktionalität
2328 deines Programms skizziert. Wenn du ein bißchen
2329 Zeit in deine Ankündigung investierst, wirst du
2330 sicher einige Antworten erhalten.
2332 Der zweitschwierigste Teil des Testens besteht darin,
2333 deine Tester zu binden und sie aktiv in den Test-
2334 prozeß miteinzubeziehen. Glücklicherweise gibt es
2335 einige bewährte Strategien, die man zu diesem
2336 Zweck anwenden kann:
2338 Die Dinge einfach machen für deine Tester
2339 +++++++++++++++++++++++++++++++++++++++++
2341 Deine Tester tun dir einen Gefallen, also mach' es
2342 ihnen so einfach wie möglich. Das bedeutet,
2343 daß du achtgeben solltest, deine Software
2344 so zu verpacken, daß sie leicht zu finden,
2345 zu entpacken, zu installieren und zu deinstallieren
2346 ist. Das heißt auch, daß du jedem Tester erklären
2347 solltest, wonach du suchst, und zum Melden von
2348 Bugs einfache und bewährte Strukturen bereitstellst.
2349 Der Schlüssel liegt darin, so viel Struktur wie
2350 möglich zur Verfügung zu stellen, um deinen Testern
2351 ihren Job leicht zu machen, und so viel Flexibilität
2352 wie möglich zu behalten für diejenigen, die ein
2353 bißchen anders arbeiten wollen.
2355 Sei entgegenkommend deinen Testern gegenüber
2356 ++++++++++++++++++++++++++++++++++++++++++++
2358 Wenn deine Tester Bugs einreichen, reagiere darauf,
2359 und reagiere schnell. Selbst wenn du nur so reagierst,
2360 daß du ihnen erklärst, daß der Bug bereits
2361 behoben ist, geben schnelle und konsistente
2362 Antworten ihnen das Gefühl, daß ihre Arbeit
2363 bemerkt wird, und daß sie wichtig und geschätzt ist.
2365 Danke deinen Testern
2366 ++++++++++++++++++++
2368 Danke ihnen jedes Mal persönlich, wenn sie dir
2369 Patches schicken. Danke ihnen öffentlich in der
2370 Dokumentation und im About-Teil deines Programms.
2371 Du schätzt deine Tester und dein dein Programm
2372 wäre ohne ihre Hilfe nicht möglich. Stelle sicher,
2373 daß sie es mitkriegen. Klopfe ihnen öffentlich
2374 auf den Rücken, um sicherstellen, daß der Rest der
2375 Welt es auch mitkriegt. Das wird mehr geschätzt
2376 als du erwarten würdest.
2378 Aufbauen einer Supportinfrastruktur
2379 ...................................
2381 Wenn Testen auch wichtig ist, fällt der Hauptteil
2382 deiner Interaktionen und Verantwortlichkeiten
2383 gebenüber deinen Benutzern unter die Kategorie
2384 Support. Die beste Art, um sicherzustellen, daß
2385 deine Benutzer ausreichend Unterstützung bekommen
2386 im Umgang mit deinem Programm besteht darin,
2387 eine gute Infrastruktur zu diesem Zweck aufzubauen,
2388 damit deine Entwickler und Benutzer einander helfen
2389 und eine geringere Last bei dir landet. Auf diese
2390 Weise werden die Leute auch schnellere und bessere
2391 Antworten auf ihre Fragen bekommen. Diese
2392 Infrastruktur kommt in verschiedenen primären
2398 Es sollte keine Überraschung sein, daß das wichtigste
2399 Element jedweder Supportinfrastruktur gute
2400 Dokumentation ist. Dieses Thema wurde schon ausführlich
2401 im Abschnitt Dokumentation behandelt und wird
2402 hier nicht wiederholt.
2407 Neben Dokumentation werden Mailinglisten dein
2408 wichtigstes Werkzeug beim Benutzersupport sein.
2409 Eine Mailingliste gut zu führen ist schwieriger
2410 als die bloße Installation einer entsprechenden
2411 Mailinglisten-Software.
2416 Es ist eine gute Idee, deine Benutzer- und
2417 Enwickler-Mailinglisten zu trennen (beispielsweise
2418 in project-user@host und project-devel@host) und
2419 diese Unterteilung zu forcieren.
2420 Wenn jemand eine entwicklungsrelevante Frage an
2421 die User-Liste schickt, bitte sie höflich, sie
2422 an die -devel-Liste zu schicken und umgekehrt.
2423 Schreibe dich bei beiden Listen ein und ermutige
2424 alle Hauptentwickler, dasselbe zu tun.
2426 Dieses System stellt sicher daß der Support nicht
2427 bei einer einzelnen Person hängen bleibt, und
2428 erlaubt, daß alle Benutzer mehr über das Programm
2429 erfahren, sodaß sie neuen Benutzern bei ihren
2430 Fragen helfen können.
2432 Mailinglisten-Software gut auswählen
2433 ++++++++++++++++++++++++++++++++++++
2435 Triff deine Auswahl für eine Mailinglisten-Software
2436 bitte nicht spontan. Berücksichtige bitte die
2437 einfache Zugänglichkeit durch Benutzer ohne viel
2438 technische Erfahrung, mache es ihnen also so einfach
2439 wie möglich. Zugänglichkeit zu einem Web-Archiv
2440 der Liste ist auch wichtig.
2442 Die zwei größten freien Mailinglisten-Programme
2443 sind Majordomo und GNU Mailman. Wenn ich auch
2444 lange ein Fürsprecher für Majordomo war, würde ich
2445 jetzt jedem Projekt empfehlen, GNU Mailman zu nehmen.
2446 Es erfüllt die oben genannten Kriterien und macht
2447 die Dinge einfacher. Es bietet ein gutes
2448 Mailinglistenprogramm für einen Maintainer eines
2449 freien Software-Projektes, nicht nur für einen
2450 Administrator von Mailinglisten.
2452 Es gibt noch andere Sachen, die du berücksichtigen
2453 solltest beim Einrichten deiner Liste. Wenn es
2454 möglich ist, deine Mailinglisten ins Usenet weiter-
2455 zuleiten und in einem digest-Format (gesammelt)
2456 sowie im Netz zur Verfügung zu stellen, wirst das
2457 einigen Benutzern gefallen und deine
2458 Supportinfrastruktur etwas zugänglicher machen.
2463 Eine Mailingliste und zugängliche Dokumentation
2464 sind noch lange nicht alles, was du tun kannst,
2465 um eine gute Benutzersupportinfrastruktur
2466 aufzubauen. Sei kreativ. Wenn du über etwas
2467 stolperst, das gut funktioniert, emaile es mir,
2468 dann werde ich es hier hinzufügen.
2470 Mach' dich erreichbar
2471 #####################
2473 Du kannst nicht zu wenige Varianten angeben, wie
2474 man dich erreichen kann. Wenn du in einem IRC-
2475 Channel herumhängst, zögere nicht, ihn in deiner
2476 Projektdokumentation aufzuführen. Gib Email- und
2477 "snail mail"-Adressen an, und Möglichkeiten, dich
2478 über ICQ, AIM oder Jabber zu erreichen, falls
2481 Software für Bug-Management
2482 ###########################
2484 Für viele große Software-Projekte ist der Gebrauch
2485 von Bugmanagementsoftware essentiell, um
2486 festzuhalten, welche Bugs behoben wurden, welche
2487 nicht behoben wurden, und welche Bugs von wem gerade
2488 behoben werden. Debian nutzt das Debian Bug Tracking System
2489 (BTS), wobei es wohl nicht für für jedes Projekt
2490 die beste Wahl sein mag (es scheint im Moment unter
2491 seinem eigenen Gewicht zu leiden). Das
2492 Mozillaprojekt hat neben einem verdammt guten
2493 Webbrowser ein Unterprojekt aufgemacht, aus dem
2494 ein Bugtracker namens Bugzilla wurde, der
2495 extrem brauchbar geworden ist und den ich sehr mag.
2497 Diese Systeme (und andere wie sie) können so
2498 schwerfällig sein, daß Entwickler aufpassen sollten,
2499 daß sie nicht mehr Zeit mit Bugtracking verbringen
2500 als mit den Bugs und den Projekten selbst.
2501 Wenn ein Projekt weiter wächst, dann kann die
2502 Nutzung eines Bugtracking-Systems einen einfachen
2503 standardisierten Zugang schaffen für Benutzer
2504 und Tester, um Bugs zu melden, und für Entwickler
2505 und Maintainer, um sie zu beheben und auf saubere
2506 Art und Weise über sie Buch zu führen.
2508 Freigeben deines Programms
2509 ..........................
2511 Wie schon vorher im HOWTO erwähnt, ist die erste
2512 Regel für eine Freigabe (Release), daß du etwas
2513 nützliches freigeben sollst. Nicht funktionierende
2514 oder nicht nützliche Software wird deinem Projekt
2515 keine Anziehungskraft verleihen. Die Leute werden
2516 von deinem Projekt abgeschreckt und werden
2517 wahrscheinlich, wenn das nächste Mal eine neue
2518 Version verkündet wird, das nur halbherzig
2519 überfliegen. Halbwegs funktionierende Software,
2520 so sie denn nützlich ist, wird die Leute beeindrucken,
2521 ihren Appetit wecken für künftige Versionen, und
2522 sie anregen, sich dem Entwicklungsprozeß
2528 Die Entscheidung, wann du deine Software zum ersten
2529 Mal releast, ist eine unglaublich wichtige und
2530 unglaublich stressvolle Entscheidung. Aber sie
2531 muß getroffen werden. Mein Rat ist, zu versuchen,
2532 etwas zu schaffen, das fertig genug ist, um
2533 verwendbar zu sein und unvollständig genug, um
2534 Flexibilität und Raum für die Phantasie deiner
2535 zukünftigen Entwickler zu lassen. Es ist keine
2536 einfache Entscheidung. Frag' nach Hilfe auf einer
2537 lokalen Linuxnutzer-Mailingliste oder frag' eine
2538 Gruppe von Freunden, die selber Entwickler sind.
2540 Eine Taktik besteht darin, zuerst ein "Alpha"-
2541 oder "Beta"-Release zu machen, wie im Abschnitt
2542 "Alpha-, Beta- und Entwicklungsfreigaben" beschrieben.
2543 Jedoch gelten die meisten
2544 der oben genannten Regeln nach wie vor.
2546 Wenn du ein Bauchgefühl hast, daß es Zeit ist und
2547 du meinst, die Situation oft genug abgewogen zu
2548 haben, dann kreuze die Finger und wage den Sprung
2551 Nachdem du das ersten Mal ein Release gemacht hast,
2552 wird die Entscheidung, wann das nächste erfolgt
2553 weniger stressvoll sein, dabei aber genauso schwierig
2554 abzuschätzen sein. Ich mag die Kriterien die
2555 Robert Krawitz in seinem Artikel
2556 "Free Software Project Management" bereithält, um
2557 einen guten Releasezyklus beizubehalten.
2558 Er empfiehlt, daß du dich fragst, "hat dieses
2561 - Genügende neue Funktionalität oder Bugfixes,
2562 daß es die Mühe wert ist.
2563 - Genug zeitlichen Abstand zum letzten, sodaß der
2564 Benutzer die Möglichkeit hat, mit dem neuesten
2565 Release zu arbeiten.
2566 - Funktioniert es gut genug, daß der Benutzer
2567 damit arbeiten kann.
2569 Wenn die Antwort auf alle diese Fragen ja ist,
2570 ist es vermutlich Zeit für ein Release. Wenn du
2571 Zweifel hast, erinnere dich daß um Rat zu fragen
2577 Wenn du den beschriebenen Richtlinien in diesem
2578 HOWTO bis diesen Punkt gefolgt bist, wird die
2579 praktische Umsetzung für dich der einfache Teil
2580 am Release sein. Wenn du einheitliche
2581 Distributionsorte bereitgestellt hast sowie die
2582 übrige Infrastruktur wie in den vorhergehenden
2583 Abschnitten beschrieben, wird der Releaseprozess
2584 einfach nur darin bestehen, ein Packet zu bauen,
2585 es noch einmal zu prüfen, es dann an den
2586 richtigen Ort hochzuladen und deine Webseite
2587 entsprechend zu aktualisieren.
2589 Alpha-, Beta- und Entwicklungsfreigaben
2590 +++++++++++++++++++++++++++++++++++++++
2592 Wenn man ein Release erwägt, ist die Tatsache
2593 erwägenswert, daß nicht jedes Release ein
2594 separat numeriertes Release sein muß.
2595 Softwarenutzer sind an Prereleases gewöhnt, aber
2596 du mußt vorsichtig sein und diese Releases akkurat
2597 benennen, sonst schaffen sie mehr Probleme als
2600 Oft sieht man, daß viele Entwicker freier Software
2601 vom Releasezyklus verwirrt zu sein scheinen.
2602 "Managing Projects the Open Source Way" schlägt
2603 vor, daß du den Satz "Alpha ist nicht Beta, Beta
2604 ist nicht Release" auswendig lernst und ich
2605 stimme zu, daß das vermutlich eine gute Idee ist.
2610 Alpha-Software hat alle Features, funktioniert
2611 aber manchmal nur teilweise.
2613 Von Alpha-Releases erwartet man, daß sie instabil
2614 sind, möglicherweise ein wenig unsicher, aber
2615 definitiv verwendbar. Sie können bekannte Bugs
2616 und Macken enthalten, die noch überarbeitet werden
2617 müssen. Bevor du eine Alphaversion freigibst,
2618 erinnere dich, daß Alpha-Releases nichtsdestotrotz
2619 Releases sind, und die Leute werden nicht erwarten,
2620 daß sie bloß einen "nightly build" aus dem CVS
2621 bekommen. Ein Alpha sollte funktionieren und
2622 ein Minimum an Tests und Bugfixing bereits absolviert
2628 Beta-Software hat alle Features, und sie funktionieren
2629 auch, befindet sich aber im Teststadium und hat noch
2630 einige zu korrigierende Bugs.
2632 Von Beta-Releases erwartet man, daß sie grundsätzlich
2633 verwendbar und leicht instabil sind, aber
2634 definitiv nicht unsicher. Beta-Releases
2635 gehen normalerweise einem vollen Release um nicht
2636 mehr als einen Monat voraus. Sie können kleine
2637 bekannte Bugs enthalten aber keine schwerwiegenden.
2638 Das wichtigste an Funktionalität sollte vollständig
2639 implementiert sein, wenn auch die Feinheiten noch
2640 ausgearbeitet werden. Beta-Releases sind ein
2641 großartiges Mittel, um potentielle Benutzer auf
2642 den Geschmack zu bringen, indem sie ihnen einen
2643 realistische Ausblick darauf geben, wo dein Projekt
2644 in naher Zukunft stehen wird, und können dabei
2645 helfen, das Interesse wach zu halten, indem sie
2646 den Leute etwas in die Hand geben.
2648 Entwicklungsreleases ("development releases")
2649 #############################################
2651 "Entwicklungsrelease" ist eine viel schwammigere
2652 Bezeichnung als "Alpha" oder "Beta." Ich entscheide
2653 mich normalerweise, mir diese Bezeichnung für die
2654 Diskussion eines Entwicklungszweigs (development
2655 branch) aufzuheben, wenn es auch andere Varianten
2656 gibt, sie zu benutzen - so viele sogar, daß ich
2657 den Eindruck habe, daß dieser Begriff verwässert
2658 worden ist. Der populäre Window-Manager
2659 Enlightenment hat nichts als Entwicklungsreleases
2660 freigegeben. Meistens wird der Begriff verwendet,
2661 um Freigaben zu beschreiben, die noch nicht mal
2662 Alpha oder Beta sind, und wenn ich eine Vor-Alpha-
2663 Version einer Software freigeben wollte, um
2664 das Interesse an ihr wachzuhalten, würde ich sie
2665 vermutlich so benennen müssen.
2667 Dein Projekt ankündigen
2668 .......................
2670 Ok, du hast es getan. Du hast dein freies
2671 Software-Projekt (zumindest aus Sicht dieses HOWTOs)
2672 entworfen, gebaut und freigegeben. Alles, was
2673 zu tun bleibt ist, daß du die Welt da draußen
2674 informierst, damit sie davon wissen und kommen,
2675 um es auszuprobieren und hoffentlich an Bord
2676 des Entwicklerschiffs springen. Wenn alles in
2677 Ordnung ist, wie oben beschrieben, wird das ein
2678 schneller und schmerzloser Prozeß. Eine schnelle
2679 Ankündigung ist alles, was du brauchst, um dich
2680 auf den Radarschirm der freie Software-Community
2683 Mailinglisten und USENET
2684 ++++++++++++++++++++++++
2686 Kündige deine Software auf comp.os.linux.announce
2687 im USENET an. Wenn du deineSoftware nur an zwei
2688 Stellen ankündigen willst, nimm' c.o.l.a und
2691 Email ist allerdings immer noch der Weg, auf dem
2692 die meisten Leute im Internet an Informationen
2693 gelangen. Es ist eine gute Idee, ein dein
2694 Programm ankündigende Nachricht an jede
2695 relevante Mailingliste zu schicken, von der du
2696 weißt, sowie an andere relevante USENET-
2699 Karl Fogel empfiehlt, daß du eine einfache
2700 Betreffzeile benutzt, die erkennbar macht, daß
2701 die Nachricht eine Ankündigung ist, die den
2702 Namen deines Programms, Version sowie eine
2703 halbe Zeile enthält, die seine Funktionalität
2704 beschreibt. Auf diese Weise wird jeder
2705 interessierte Benutzer oder Entwickler sofort
2706 auf deine Ankündigung aufmerksam. Fogels Beispiel
2707 sieht so aus (Anm. des Übers.: ANN steht für
2708 announcement=Ankündigung):
2710 Subject: ANN: aub 1.0, a program to assemble
2713 Der Rest der Email sollte die Programmfunktionalität
2714 kurz und präzise in maximal zwei Absätzen beschreiben
2715 und Links zur Webseite des Projekts sowie direkte
2716 Links zu den Downloads anbieten, für die, die sie
2717 sofort ausprobieren wollen. Dieses Format wird
2718 sowohl im USENET als auch bei Posts in Mailinglisten
2721 Du solltest die Ankündigungen an den gleichen Stellen
2722 konsistent wiederholen, wann immer es ein neues
2728 Ich habe es schon vorher erwähnt im Abschnitt "Ähnliche Projekte finden,"
2729 in der freien Software-Community heutzutage sind
2730 Ankündigungen deines Projektes auf freshmeat fast
2731 noch wichtiger als Ankündigungen auf Mailinglisten.
2733 Besuche die freshmeat.net-Webseite oder ihre
2734 "submit project page," um dein Projekt auf ihrer
2735 Webseite und in ihrer Datenbank einzutragen.
2736 Neben einer großen Webseite bietet freshmeat
2737 einen täglichen Newsletter an, der die täglichen
2738 Releases hervorhebt und ein sehr großes Publikum
2739 erreicht (ich persönlich überfliege es jeden Abend
2740 nach interessanten neuen Releases).
2742 Projekt-Mailingliste
2743 ++++++++++++++++++++
2745 Wenn du soweit gegangen bist, eine Mailingliste
2746 für dein Projekt zu erstellen, dann solltest du
2747 neue Versionen auf diesen Listen immer ankündigen.
2748 Meiner Erfahrung nach verlangen die Benutzer bei
2749 vielen Projekten eine Mailingliste nur für
2750 Announcements mit sehr geringem Durchsatz, um
2751 über neue Releases zu erfahren. freshmeat.net
2752 erlaubt Benutzern jetzt, sich für ein Projekt
2753 einzutragen, um jedesmal eine Mail zu bekommen,
2754 wenn eine neue Version durch ihr System angekündigt
2755 wird. Es ist frei und es kann eine entsprechende
2756 Mailingliste ersetzen. Meiner Meinung nach kann es
2764 (Anm. des Übers.: Die Bibliographie habe ich nicht
2765 übersetzt, da sie sich ausschließlich auf englische
2766 Quellen bezieht, sodaß man davon ausgehen kann,
2767 das derjenige, der sich für sie interessiert auch
2768 gut genug Englisch kann, um die Bibliographie zu
2774 Karl Fogel, Open Source Development with
2775 CVS, Coriolois Open Press, 1999, 1-57610-490-7.
2777 Fogel's "guide to using CVS in the free software
2778 world" is much more than its subtitle. In
2779 the publisher's own words: "Open Source Development
2780 with CVS is one of the first books available
2781 that teaches you development and implementation
2782 of Open Source software." It also includes
2783 the best reference and tutorial to CVS I
2784 have ever seen. It is the book that was so
2785 good that it prompted me to write this HOWTO
2786 because I thought the role it tried to serve
2787 was so important and useful. Please check
2788 it or buy it if you can and are seriously
2789 interested in running a free software project.
2791 Lawrence Lessig, Code and Other Laws of Cyberspace,
2792 Basic Books, 2000, 0-465-03913-8.
2794 While it only briefly talks about free software
2795 (and does it by tiptoeing around the free
2796 software/open source issue with the spineless
2797 use of the term "open code" that only a lawyer
2798 could coin), Lessig's book is brilliant.
2799 Written by a lawyer, it talks about how regulation
2800 on the Internet is not done with law, but
2801 with the code itself and how the nature of
2802 the code will determine the nature of future
2803 freedoms. In addition to being a quick and
2804 enjoyable read, it gives some cool history
2805 and describes how we need free software in
2806 a way more powerfully than anything I've
2807 read outside of RMS's "Right to Read."
2809 Eric Raymond, The Cathedral and the Bazaar:
2810 Musings on Linux and Open Source by an Accidental
2811 Revolutionary, O'Reilly, 1999, 1-56592-724-9.
2813 Although I have to honestly say that I am
2814 not the ESR fan that I used to be, this book
2815 proved invaluable in getting me where I am
2816 today. The essay that gives the book its
2817 title does a good job of sketching the free
2818 software process and does an an amazing job
2819 of making an argument for free software/open
2820 source development as a road to better software.
2821 The rest of the book has other of ESR's articles,
2822 which for the most part are posted on his
2823 website. Still, it's nice thing to own in
2824 hard copy and something that every free software/open
2825 source hacker should read.
2826 Web-Accessible Resources
2828 George N Dafermos, Management and Virtual
2829 Decentralized Networks: The Linux Project.
2831 Since the paper includes its own abstract,
2832 I thought I would include it here verbatim:
2834 This paper examines the latest of paradigms - the Virtual Network(ed) Organisation -
2835 and whether geographically dispersed knowledge
2836 workers can virtually collaborate for a project
2837 under no central planning. Co-ordination,
2838 management and the role of knowledge arise
2839 as the central areas of focus. The Linux
2840 Project and its development model are selected
2841 as a case of analysis and the critical success
2842 factors of this organisational design are
2843 identified. The study proceeds to the formulation
2844 of a framework that can be applied to all
2845 kinds of virtual decentralised work and concludes
2846 that value creation is maximized when there
2847 is intense interaction and uninhibited sharing
2848 of information between the organisation and
2849 the surrounding community. Therefore, the
2850 potential success or failure of this organisational
2851 paradigm depends on the degree of dedication
2852 and involvement by the surrounding community.
2854 This paper was referred to me in my capacity
2855 as author of this HOWTO and I was very impressed.
2856 It's written by a graduate student in management
2857 and I think it succeeds at evaluating the
2858 Linux project as an example of a new paradigm
2859 in management--one that you will be be placing
2860 yourself at the center of in your capacity
2861 as maintainer of a free software project.
2863 As a developer trying to control an application
2864 and guide it to success in the free software
2865 world, I'm not sure how useful Dafermos's
2866 argument is. It does however, provide a theoretical
2867 justification for my HOWTO--free software
2868 project management is a different creature
2869 than proprietary software project management.
2870 If you are interested in the conceptual and
2871 theoretical ways that free software project
2872 management differs from other types of management,
2873 this is a great paper to read. If this paper
2874 answers questions of "how?", Dafermos answers
2875 the (more difficult to defend) questions
2876 of "why?" and does a very good job.
2878 Richard Gabriel, The Rise of "Worse is Better".
2880 A well written article although I think the
2881 title may have confused as many people as
2882 the rest of the essay helped. It offers a
2883 good description of how to design programs
2884 that will succeed and stay maintainable as
2887 Montey Manley, Managing Projects the Open
2888 Source Way, Linux Programming, Oct 31, 2000.
2890 In one of the better articles on the subject
2891 that I've read, Monty sums up some of the
2892 major points I touch on including: starting
2893 a project, testing, documentation, organizing
2894 a team and leadership, and several other
2895 topics. While more opinionated that I try
2896 to be, I think its an important article that
2897 I found very helpful in writing this HOWTO.
2898 I've tried to cite him in the places where
2899 I borrowed from him most.
2901 I have problems much of this piece and I
2902 recommend you read [KRAWITZ] at the same
2903 time you read Monty's article for a good
2906 Eric Steven Raymond, Software Release Practice
2909 At first glance, ESR's release practice HOWTO
2910 seems to share a lot of terrain with this
2911 document. Upon closer examination, the differences
2912 become apparent but they are closely related.
2913 His document, read in conjunction with mine,
2914 will give a reader a good picture of how
2915 to go about managing a project. ESR's HOWTO
2916 goes into a bit more detail on how to write
2917 and what languages to write in. He tends
2918 to give more specific instructions and checklists
2919 ("name this file this, not this") while this
2920 HOWTO speaks more conceptually. There are
2921 several sections that are extremely similar.
2922 It's also much shorter.
2924 My favorite quote from his HOWTO is: ""Managing
2925 a project well when all the participants
2926 are volunteers presents some unique challenges.
2927 This is too large a topic to cover in a HOWTO."
2928 Oh really? Perhaps I just do a poor job.
2930 Vivek Venugopalan, CVS Best Practices.
2932 Venugopalan provides one of the best essays
2933 on effective use of CVS that I've come across.
2934 It is written for people who already have
2935 a good knowledge of CVS. In the chapter on
2936 branching, he describes when and how to branch
2937 but gives no information on what CVS commands
2938 you should use to do this. This is fine (technical
2939 CVS HOWTO have been written) but CVS newbies
2940 will want to spend some time with Fogel's
2941 reference before they will find this one
2944 Venugopalan creates checklists of things
2945 to do before, after, and around releases.
2946 It's definitely worth a read through as most
2947 of his ideas will save tons of developer
2948 head aches over any longer period of time.
2951 Stephen Hindle, 'Best Practices' for Open
2952 Source?, Advogato, March 21, 2001.
2954 Touching mostly on programming practice (as
2955 most articles on the subject usually do),
2956 the article talks a little about project
2957 management ("Use it!") and a bit about communication
2958 within a free software project.
2960 Bram Cohen, http://www.advogato.org/article/258.htmlHow
2961 to Write Maintainable Code, Advogato, March
2964 This article touches upon the "writing maintainable
2965 code" discussion that I try hard to avoid
2966 in my HOWTO. It's one of the better (and
2967 most diplomatic) articles on the subject
2970 Robert Krawitz, Free Source Project Management,
2971 Advogato, November 4, 2000.
2973 This article made me happy because it challenged
2974 many of the problems that I had with Monty's
2975 article on LinuxProgramming. The author argues
2976 that Monty calls simply for the application
2977 of old (proprietary software) project management
2978 techniques in free software projects instead
2979 of working to come up with something new.
2980 I found his article to be extremely well
2981 thought out and I think it's an essential
2982 read for any free software project manager.
2984 Lalo Martins, Ask the Advogatos: why do Free
2985 Software projects fail?, Advogato, July 20,
2988 While the article is little more than a question,
2989 reading the answers to this question offered
2990 by Advogato's readers can help. In a lot
2991 of ways, this HOWTO acts as my answer to
2992 the questions posed in this article but there
2993 are others, many of which might take issue
2994 with whats is in this HOWTO. It's worth checking
2997 David Burley, In-Roads to Free Software Development,
2998 Advogato, June 14, 2000.
3000 This document was written as a response to
3001 another Advogato article. Although not about
3002 running a project, this describes some of
3003 the ways that you can get started with free
3004 software development without starting a project.
3005 I think this is an important article. If
3006 you are interested in becoming involved with
3007 free software, this article showcases some
3008 of the ways that you can do this without
3009 actually starting a project (something that
3010 I hope this HOWTO has demonstrated is not
3011 to be taken lightly).
3013 Jacob Moorman, Importance of Non-Developer
3014 Supporters in Free Software, , Advogato,
3017 Moorman's is a short article but it brings
3018 up some good points. The comment reminding
3019 developers to thank their testers and end-users
3020 is invaluable and oft-forgotten.
3022 Leslie Orchard, On Naming an Open Source
3023 Project, Advogato, April 12, 2000.
3025 I didn't even have a section on project naming
3026 in this HOWTO (See the Section called Naming
3027 your project in "Free Software Project Management
3028 HOWTO") until Leslie Orchard's article reminded
3029 me of it. Thanks to Leslie for writing this
3032 David Allen, Version Numbering Madness, Advogato,
3035 In this article, David Allen challenges the
3036 whole "Major.Minor.Patch" version numbering
3037 scheme. Its good to read this as you read
3038 the Section called Choosing a Method of Version
3039 Numbering in "Free Software Project Management
3040 HOWTO". I liked the article and it describes
3041 some of the projects that I bring up in my
3042 discussion of version numbering.
3046 A. GNU Free Documentation License
3047 ---------------------------------
3049 (Anm. des Übers.: Hier habe ich die Übersetzung
3051 angefügt, zu finden unter http://www.giese-online.de/gnufdl-de.html)
3053 This is an unofficial translation of the
3054 GNU Free Documentation License into German.
3055 It was not published by the Free Software
3056 Foundation, and does not legally state the
3057 distribution terms for documentation that
3058 uses the GNU FDL--only the original English
3059 text of the GNU FDL does that. However, we
3060 hope that this translation will help German
3061 speakers understand the GNU FDL better.
3063 Dies ist eine inoffzielle deutsche Übersetzung
3064 der GNU Free Documentation License. Sie ist
3065 nicht von der Free Software Foundation herausgegeben
3066 und erläutert nicht die Bedingungen der GNU
3067 FDL -- Dies tut nur der original englische
3068 Text der GNU FDL. Dennoch hoffen wir, dass
3069 diese Übersetzung mit dazu beiträgt deutschsprachigen
3070 Personen das Verstehen der GNU FDL zu erleichtern.
3072 Der Zweck dieser Lizenz ist es, ein Handbuch,
3073 Lehrbuch oder ein anderes zweckdienliches
3074 und nützliches Dokument frei, im Sinne von
3075 Freiheit, zu machen; jedermann die Freiheit
3076 zu sichern, es zu kopieren und mit oder ohne
3077 Änderungen daran, sowohl kommerziell als
3078 auch nicht kommerziell weiter zu verbreiten.
3079 Weiterhin sichert diese Lizenz einem Autor
3080 oder Verleger die Möglichkeit, Anerkennung
3081 für seine Arbeit zu erhalten ohne für Änderungen
3082 durch Andere verantwortlich gemacht zu werden.
3084 Diese Lizenz ist eine Art des "copyleft",
3085 was bedeutet, daß von diesem Dokument abgeleitete
3086 Werke ihrerseits in derselben Weise frei
3088 Dies vervollständigt die GNU General Public
3089 License, die eine "copyleft"-Lizenz ist,
3090 und für freie Software entworfen wurde.
3092 Diese Lizenz wurde für Handbücher für freie
3093 Software entworfen, denn freie Software braucht
3094 freie Dokumentation: Ein freies Programm
3095 sollte von Handbüchern begleitet sein, die
3096 dieselben Freiheiten bieten, die auch die
3097 Software selbst bietet.
3098 Diese Lizenz ist aber nicht auf Softwarehandbücher
3099 beschränkt; vielmehr kann sie für jede Art
3100 von textuellen Werken verwendet werden, unabhängig
3101 davon, was das Thema ist, oder ob es als
3102 gedrucktes Buch veröffentlicht wurde. Wir
3103 empfehlen diese Lizenz prinzipiell für Werke,
3104 die als Anleitungen oder Referenzen dienen
3107 1. Anwendbarkeit und Definitionen
3108 .................................
3110 Diese Lizenz findet Anwendung auf jedes Handbuch
3111 oder andere Werk, unabhängig von dem Medium,
3112 auf dem es erscheint, das einen vom Rechteinhaber
3113 eingefügten Hinweis enthält, der besagt,
3114 daß das Werk unter den Bedingungen dieser
3115 Lizenz verbreitet werden darf.
3116 Ein solcher Hinweis gewährt eine weltweit
3117 gültige, tantiemenfreie und zeitlich unbefristete
3118 Lizenz, die es gestattet das Werk, unter
3119 den hier festgelegten Bedingungen, zu nutzen.
3120 Der Begriff Dokument wird im Folgenden für
3121 alle solche Handbücher und Werke verwendet.
3122 Jede Person kann Lizenznehmer sein und wird
3123 im Folgenden mit Sie angesprochen.
3124 Sie akzeptieren diese Lizenz, wenn Sie ein
3125 Dokument derart kopieren, verändern oder
3126 verteilen, daß Sie gemäß den Gesetzen zum
3127 Copyright die Erlaubnis benötigen.
3129 Eine modifizierte Version des Dokumentes
3130 steht für jedes Werk, das das Dokument als
3131 Ganzes oder in Teilen enthält, sowohl auf
3132 Datenträger kopiert, als auch mit Änderungen
3133 und/oder in andere Sprachen übersetzt.
3135 Ein zweitrangiger Abschnitt ist ein benannter
3136 Anhang oder eine Enleitung des Dokumentes,
3137 der sich ausschließlich mit dem Verhältnis
3138 des Autors oder Verlegers des Dokumentes
3139 zu dem eigentlichen Thema des Dokumentes
3140 (oder damit zusammenhängender Dinge) beschäftigt,
3141 und der nichts enthält, das direkt zu dem
3142 eigentlichen Thema gehört. (Wenn das Dokument
3143 beispielweise ein Buch über Mathematik ist,
3144 dann darf ein zweitrangiger Abschnitt nichts
3145 über Mathematik enthalten).
3146 Dies kann eine historische Beziehung zu dem
3147 Thema, oder damit zusammenhängender Dinge,
3148 oder von gesetzlicher, gesellschaftlicher,
3149 philosophischer, ethischer oder politischer
3150 Art sein, die das Thema betreffen.
3152 Die unveränderlichen Abschnitte sind benannte
3153 zweitrangige Abschnitte, deren Titel als
3154 unveränderlicher Abschnitt in dem Lizenhinweis,
3155 der das Dokument unter diese Lizenz stellt,
3157 Wenn ein Abschnitt nicht in die oben stehende
3158 Definition eines zweitrangigen Abschnittes
3159 passt, dann ist es nicht erlaubt diesen Bereich
3160 als unveränderlichen Bereich zu kennzeichnen.
3162 Umschlagtexte sind bestimmte, kurze Textstücke,
3163 die als vorderer Umschlagtext oder als hinterer
3164 Umschlagtext in der Notiz benannt werden,
3165 die besagt, dass das Dokument unter dieser
3166 Lizenz freigegeben ist.
3167 Ein vorderer Umschlagtext kann bis zu 5 Worte
3168 enthalten, ein hinterer Umschlagtext bis
3171 Eine transparente Kopie des Dokumentes bezeichnet
3172 eine maschinenlesbare Kopie, dargestellt
3173 in einem Format, dessen Spezifikationen allgemein
3174 verfügbar sind, und das geeignet ist das
3175 Dokument auf einfache Weise mit einem allgemeinen
3176 Texteditor oder (für Bilder, die aus Pixeln
3177 bestehen) mit einem allgemeinen Bildberabeitungsprogramm
3178 oder (für Zeichnungen) mit einem häufig verfügbaren
3179 Zeichenprogramm zu überarbeiten, und das
3180 geeignet ist es als Eingabe für Textformatierer
3181 zu verwenden, oder als Eingabe für automatische
3182 Konvertierungsprogramme, die eine Reihe von
3183 unterschiedlichen Formaten erzeugen, die
3184 ihrerseits als Eingabe für Textformatierer
3185 verwendet werden können. Eine Kopie in ein
3186 anderes transparentes Dateiformat dessen
3187 Auszeichnung oder das fehlen der Auszeichnungen
3188 derart beschaffen sind, nachfolgende Modifikationen
3189 durch die Leser zu verhindern oder zu erschweren
3190 ist nicht transparent.
3191 Ein Bildformat ist nicht transparent, wenn
3192 es für eine wesentliche Menge von Text verwendet
3194 Eine Kopie, die nicht transparent ist, wird
3195 als opak bezeichnet.
3197 Beispiele verwendbarer Formate für transparente
3198 Kopien schliessen einfachen ASCII-Text ohne
3199 Auszeichnungen, TeX-info Eingabe, LaTeX-Eingabeformat,
3200 SGML oder XML, sofern die verwendete DTD
3201 öffentlich verfügbar ist, sowie standardkonformes,
3202 einfaches HTML, Postscript oder PDF, die
3203 für Veränderungen durch Menschen entworfen
3206 Beispiele für transparente Bildformate sind
3207 u.a. PNG, XCF und JPG.
3208 Opake Formate sind unter anderen solche proprietären
3209 Formate, die nur von proprietären Textverarbeitungsprogramm
3210 gelesen und bearbeitet werden können, SGML
3211 oder XML deren DTD und/oder Verarbeitungswerkzeuge
3212 nicht allgemein verfügbar sind, und maschinengeneriertes
3213 HTML, PostScript oder PDF, das von manchen
3214 Textverarbeitungsprogrammen nur zu Ausgabezwecken
3217 Mit Titelseite wird in einem gedruckten Buch
3218 die eigentliche Titelseite sowie die direkt
3219 darauf folgenden Seiten bezeichnet, die all
3220 das in lesbarer Form enthalten, was in dieser
3221 Lizenz gefordert ist, dass es auf der Titelseite
3223 Für Werke, die in Formaten vorliegen, die
3224 keine Titelseiten haben, gilt als Titelseite
3225 der Text, der der auffälligsten Darstellung
3226 des Titels des Werkes direkt folgt, aber
3227 noch vor dem Inhalt des Werkes steht.
3229 Ein Abschnitt mit dem Titel xyz bezeichnet
3230 einen benannten Unterbereich des Dokumentes,
3231 dessen Titel entweder genau xyz ist, oder
3232 der xyz in Anführungszeichen enthält, der
3233 einem Text folgt, der xyz in eine andere
3234 Sprache übersetzt. (Hier steht xyz für einen
3235 speziellen Abschnittsnamen, der im Folgenden
3236 erwähnt wird wie"Danksagung"(Acknowledgements),
3237 "Widmung"(Dedications), "Anmerkung"(Endorsement)
3238 oder "Historie"(History).).
3239 Den Titel erhalten eines Abschnittes bedeutet,
3240 daß beim Modifizieren des Dokumentes dieser
3241 Abschnitt mit dem Titel xyz bleibt, wie es
3242 in dieser Definition festgelegt ist.
3244 Das Dokument kann direkt hinter der Notiz,
3245 die besagt, dass das Dokument unter dieser
3246 Lizenz freigegeben ist, Garantieausschlüsse
3247 enthalten. Diese Garantieausschlüsse werden
3248 so behandelt, als seien sie als Referenzen
3249 in diese Lizenz eingeschlossen, allerdings
3250 nur um Garantien auszuschliessen: Jede andere
3251 Implizierung, die dieser Ausschluss hat ist
3252 ungültig und keine Wirkung im Sinne dieser
3255 2. Datenträgerkopien
3256 ....................
3258 Sie dürfen das Dokument auf jedem Medium
3259 sowohl kommerziell als auch nicht kommerziell
3260 kopieren und verbreiten, vorausgesetzt, daß
3261 diese Lizenz, die Copyright-Hinweise sowie
3262 der Lizenzhinweis, der besagt, daß diese
3263 Lizenz auf das Dokument anzuwenden ist, in
3264 allen Kopien reproduziert wird, und daß keine
3265 weiteren Bedingungen jeglicher Art zu denen
3266 dieser Lizenz hinzugefügt werden.
3267 Sie dürfen in den Kopien, die Sie erstellen
3268 oder verbreiten, keinerlei technische Maßnahmen
3269 treffen um das Lesen oder das weitere Kopieren
3270 zu erschweren oder zu kontrollieren. Dennoch
3271 dürfen Sie Gegenleistungen für Kopien akzeptieren.
3272 Wenn Sie eine ausreichend große Menge von
3273 Kopien verteilen, müssen Sie zusätzlich die
3274 bestimmungen von Ziffer 3 beachten.
3275 Sie können ausserdem unter denselben Bedingungen,
3276 die oben angeführt sind, Kopien verleihen
3277 und sie können Kopien auch öffentlich bewerben.
3279 3. Kopien in Stückzahlen
3280 ........................
3282 Wenn Sie gedruckte Kopien des Dokumentes
3283 (oder Kopien auf Medien, die üblicherweise
3284 gedruckte Umschläge haben), in einer Stückzahl
3285 von mehr als 100 veröffentlichen, und der
3286 Lizenzhinweis des Dokumentes Umschlagtexte
3287 verlangt, müssen die Kopien in Hüllen verpackt
3288 sein, die alle diese Umschlagtexte klar und
3289 lesbar enthalten. Die vorderen Umschlagtexte
3290 auf dem vorderen Umschlag, die hinteren Umschlagtexte
3291 auf dem hinteren Umschlag.
3292 Beide Umschläge müssen Sie ausserdem klar
3293 und lesbar als den Herausgeber dieser Kopien
3295 Der vordere Umschlag muss den gesamten Titel
3296 darstellen, mit allen Worten gleich auffällig
3297 und sichtbar. Sie können weiteres Material
3298 den Umschlägen hinzufügen.
3299 Das Kopieren mit Änderungen, die auf Umschläge
3300 begrenzt sind, können, so lange der Titel
3301 des Dokuments erhalten bleibt, ansonsten
3302 als Datenträgerkopien behandelt werden.
3304 Wenn der vorgeschriebene Text für einen der
3305 Umschläge zu umfangreich ist um lesbar zu
3306 bleiben, sollten Sie den ersten der aufgelisteten
3307 Texte auf den aktuellen Umschlag nehmen (so
3308 viel wie vernünftigerweise möglich ist) und
3309 den Rest auf direkt angrenzenden Seiten.
3311 Wenn Sie mehr als 100 opake Kopien veröffentlichen
3312 oder verbreiten, müssen Sie entweder eine
3313 maschinenlesbare, transparente Kopie jeder
3314 opaken Kopie beilegen, oder mit bzw. in jeder
3315 opaken Kopie eine Computer-Netzwerk Adresse
3316 angeben, von wo die allgemeine, netzwerk
3317 benutzende Öffentlichkeit, Zugriff zum Download
3318 einer kompletten transparenten Kopie über
3319 öffentliche Standardnetzwerkprotokolle hat.
3321 Wenn Sie sich für die letztere Möglichkeit
3322 entscheiden, müssen Sie mit Beginn der Verbreitung
3323 der opaken Kopien in Stückzahlen, zumutbare
3324 und vernünftige Schritte unternehmen, um
3325 sicher zu stellen, daß die transparenten
3326 Kopien mindestens ein Jahr nach der Auslieferung
3327 der letzten opaken Kopie (direkt oder über
3328 einen Agenten oder Händler) dieser Ausgabe
3329 an die Öffentlichkeit, an der genannten Adresse
3332 Es ist erbeten, aber nicht gefordert, daß
3333 Sie ausreichend lange vor der Auslieferung
3334 einer grösseren Menge von Kopien, Kontakt
3335 mit den Autoren des Dokumentes aufnehmen,
3336 um jenen die Möglichkeit zu geben, Ihnen
3337 eine aktualisierte Version des Dokumentes
3343 Unter den obigen Bedingungen unter Ziffer
3344 2 und 3 können Sie modifizierte Versionen
3345 kopieren und verbreiten, vorausgesetzt, daß
3346 Sie die modifizierte Version unter exakt
3347 dieser Lizenz herausgeben, wobei die modifizierte
3348 Version die Rolle des Dokumentes einnimmt,
3349 und dadurch die weitere Modifikation und
3350 Verbreitung an jeden Lizensieren, der eine
3351 Kopie davon besitzt.
3352 Zusätzlich müssen Sie die folgenden Dinge
3353 in der modifizierten Version beachten:
3355 1. Benutzen Sie auf der Titelseite (und
3356 auf Umschlägen, sofern vorhanden) einen Titel,
3357 der sich von dem Titel des Dokumentes und
3358 von früheren Versionen unterscheidet. (Die
3359 früheren Versionen sollten, wenn es welche
3360 gibt, in dem Abschnitt Historie aufgelistet
3363 Sie können denselben Titel wie den
3364 einer Vorgängerversion verwenden, wenn der
3365 ursprüngliche Herausgeber damit einverstanden
3367 2. Geben Sie auf der Titelseite eine oder
3368 mehrere Personen oder Einheiten, die als
3369 Autoren auftreten können, als für die Modifikationen
3370 verantwortliche Autoren der modifizierten
3371 Version, zusammen mit mindestens fünf der
3372 ursprünglichen Autoren der Ursprungsversion
3373 an (alle vorherige Autoren, wenn es weniger
3374 als fünf sind), es sei denn diese befreien
3375 Sie von dieser Notwendigkeit.
3376 3. Geben Sie auf der Titelseite den Namen
3377 des Herausgebers als Herausgeber an.
3378 4. Erhalten Sie alle Copyright-Vermerke des Dokumentes.
3379 5. Setzen Sie einen passenden Copyright-Vermerk
3380 für Ihre Modifikationen direkt hinter die
3381 anderen Copyright-Vermerke.
3382 6. Schliessen Sie direkt hinter den Copyright-Vermerken
3383 einen Lizenzhinweis ein, der die öffentliche
3384 Erlaubnis erteilt, die modifizierte Version
3385 unter den Bedingungen dieser Lizenz zu benutzen,
3386 wie es im Anhang weiter unten beschrieben
3388 7. Erhalten Sie im Copyright-Vermerk die
3389 komplette Liste der unveränderlichen Abschnitte
3390 und obligatorischen Umschlagtexte, die in
3391 dem Lizenzvermerk des Dokumentes aufgeführt
3393 8. Schliessen Sie eine unveränderte Kopie
3394 dieser Lizenz mit ein.
3395 9. Erhalten Sie den Abschnitt "Historie".
3396 Erhalten Sie den Titel und fügen Sie einen
3397 Punkt hinzu der mindestens den Titel, das
3398 Jahr, die neuen Autoren und Herausgeber,
3399 wie sie auf der Titelseite aufgeführt sind,
3400 enthält. Sollte es keinen Abschnitt Historie
3401 geben, dann erstellen Sie einen, der Titel,
3402 Jahr, Autor und Herausgeber des Dokumentes,
3403 wie auf der Titelseite angegeben, enthält
3404 und fügen Sie einen Punkt hinzu, der die
3405 modifizierte Version wie oben dargestellt
3407 10. Erhalten Sie die Netzwerkadresse, die
3408 angegeben wurde, um Zugang zu einer transparenten
3409 Kopie zu gewähren, sowie entsprechend angegebene
3410 Adressen früherer Versionen, auf denen das
3411 Dokument aufbaute. Diese Angaben können in
3412 den Abschnitt Historie verschoben werden.
3413 Sie können die Netzwerkadresse weglassen,
3414 wenn sie sich auf ein Werk bezieht, das mindestens
3415 4 Jahre vor dem Dokument selbst veröffentlicht
3416 wurde, oder wenn der ursprüngliche Herausgeber
3417 der Version, auf die sich die Adresse bezieht,
3418 seine Erlaubnis erteilt.
3419 11. Erhalten Sie für alle Abschnitt, die
3420 als Danksagungen(Acknowledgements) oder Widmungen(Dedications)
3421 überschrieben sind, den Titel sowie die Substanz
3422 und den Ton aller vom Geber gemachten Danksagungen
3423 und/oder Widmungen in diesem Abschnitt.
3424 12. Erhalten Sie alle unveränderlichen
3425 Abschnitte unverändert, sowohl im Titel als
3426 auch im Text. Abschnittsnummern oder dergleichen
3427 gelten hierbei nicht als Teil des Titels.
3428 13. Löschen Sie alle Abschnitte, die als
3429 Anmerkungen(Endorsements) überschrieben sind.
3430 Ein solchen Abschnitt sollte nicht in der
3431 modifizierten Version enthalten sein.
3432 14. Benennen Sie keinen Abschnitt in Anmerkungen
3433 um, oder in einen Namen, der in Konflikt
3434 mit einem unveränderlichen Abschnitt gerät.
3435 15. Erhalten Sie alle Garantieausschlüsse.
3437 Wenn die modifizierte Version neue Vorspannabschnitte
3438 oder Anhänge enthält, die zweitrangige Abschnitte
3439 sein können, und die kein vom Dokument kopiertes
3440 Material enthalten, können Sie, nach Ihrem
3441 Belieben, einige oder alle diese Abschnitte
3442 als unveränderliche Abschnitte in die Lizenzanmerkung
3443 der modifizierten Version aufnehmen. Diese
3444 Titel müssen sich von allen anderen Titeln
3447 Sie können einen Abschnitt Anmerkungen anfügen,
3448 sofern dieser nichts als Bemerkungen, verschiedener
3449 Stellen, zu der modifizierten Version enthält.
3450 Beispielsweise Publikumsreaktionen oder eine
3451 Mitteilung, daß der Text von einer Organisation
3452 als maßgebliche Definition eines Standards
3455 Sie können einen Teil mit bis zu fünf Worten
3456 als vorderen Umschlagtext und einen mit bis
3457 zu 25 Worten als hinteren Umschlagtext an
3458 das Ende der Liste mit den Umschlagtexten
3459 der modifizierten Version hinzufügen.
3460 Nur je ein Teil für den vorderen Umschlagtext
3461 und den hinteren Umschlagtext können von
3462 jeder Einheit hinzugefügt (oder durch entsprechende
3463 Anordnung erstellt) werden.
3465 Wenn das Dokument bereits einen Umschlagtext
3466 für denselben Umschlag enthält, das von Ihnen
3467 oder der Einheit, in deren Namen Sie tätig
3468 sind, bereits früher eingefügt wurde, dürfen
3469 Sie keine neue hinzufügen. Sie können aber
3470 den alten ersetzen, wenn sie die ausdrückliche
3471 Genehmigung des Herausgebers haben, der den
3472 früheren Text eingefügt hat.
3474 Der/die Autor(en) und Herausgeber des Dokumentes
3475 geben duch diese Lizenz weder implizit noch
3476 explizit die Erlaubnis ihren Namen für Werbung
3477 in den Anmerkungen der modifizierten Version
3480 5. Dokumente Kombinieren
3481 ........................
3483 Sie können mehrere Dokumente, die unter dieser
3484 Lizenz freigegeben sind, unter den Bedingungen
3485 unter Ziffer 4 für modifizierte Versionen
3486 miteinander kombinieren, vorausgesetzt, daß
3487 in der Kombination alle unveränderlichen
3488 Abschnitte aller Originaldokumente, enthalten
3489 sind, und daß Sie diese alle in der Liste
3490 der unveränderlichen Abschnitte der Lizenzanmerkung
3491 des kombinierten Dokumentes aufführen, sowie
3492 alle Garantieausschlüsse erhalten.
3494 Das kombinierte Werk braucht nur eine Kopie
3495 dieser Lizenz zu enthalten, und mehrere identische
3496 unveränderliche Abschnitte können durch eine
3497 einzelne Kopie ersetzt werden.
3498 Wenn es mehrere unveränderliche Abschnitte
3499 mit unterschiedlichem Inhalt aber gleichem
3500 Namen gibt, machen Sie den Namen eindeutig,
3501 indem Sie am Ende des Titels, in Anführungszeichen,
3502 den Namen des original Autors oder Herausgebers,
3503 falls bekannt, oder andernfalls eine eindeutige
3505 Machen Sie dasselbe mit den Titeln der Abschnitte
3506 in der Liste der unveränderlichen Abschnitte
3507 im Lizenzhinweis des kombinierten Werkes.
3509 In der Kombination müssen Sie alle Abschnitte
3510 mit dem Titel Historie in den unterschiedlichen
3511 Dokumenten zu einem einzelnen Abschnit Historie
3512 zusammenführen; entsprechend verfahren Sie
3513 mit den Abschnitten Danksagungen und Widmungen.
3514 Sie müssen alle Abschnitte mit dem Titel
3515 Anmerkungen löschen.
3517 6. Sammlungen von Dokumenten
3518 ............................
3520 Sie können eine Sammlung von Dokumenten erstellen,
3521 bestehend aus diesem Dokument und weiteren,
3522 unter dieser Lizenz stehenden Dokumenten,
3523 wobei Sie die einzelnen Kopien dieser Lizenz
3524 in den verschiedenen Dokumenten durch eine
3525 einzelne Kopie, die in der Sammlung enthalten
3526 ist, ersetzen, vorausgesetzt, Sie befolgen
3527 in allen andern Punkten, für jedes der Dokumente,
3528 die Regeln für Datenträgerkopien.
3530 Sie können ein einzelnes Dokument aus einer
3531 solchen Sammlung herausziehen und einzeln
3532 unter dieser Lizenz verbreiten, vorausgesetzt,
3533 Sie fügen eine Kopie dieser Lizenz in das
3534 extrahierte Dokument ein, und befolgen ansonsten
3535 die Bedingungen dieser Lizenz für Datenträgerkopien.
3537 7. Aggregation mit unabhängigen Werken
3538 ......................................
3540 Eine Zusammenstellung des Werkes, oder von
3541 Ableitungen davon, mit anderen, separaten
3542 und unabhängigen Dokumenten oder Werken,
3543 in oder auf demselben Band eines Speicher-
3544 oder Verbreitungsmediums, wird dann eine
3545 Aggregation genannt, wenn die Copyrights
3546 der Zusammenstellung nicht dazu verwendet
3547 werden die Rechte der Benutzer, die für die
3548 einzelnen Werke gewährt werden, stärker zu
3549 beschränken als dies durch die Lizenzen der
3550 einzelnen Werke geschieht.
3551 Wenn das Werk in einer Aggregation vorhanden
3552 ist, so gilt diese Lizenz nicht für die anderen
3553 Werke dieser Aggregation, die keine Ableitung
3554 des Dokumentes sind.
3556 Wenn die Bestimmungen für die Umschlagtexte
3557 aus Ziffer 3 Anwendung finden, und wenn das
3558 Dokument weniger als die Hälfte der gesammten
3559 Aggregation ausmacht, dann können die Umschlagtexte
3560 auf Seiten gesetzt werden, die das Dokument
3561 innerhalb der Aggregation umschliessen, oder
3562 auf das elektronische Äquivalent eines Umschlages,
3563 wenn das Dokument in elektronischer Form
3565 Andernfalls müssen sie auf gedruckten Umschlägen
3566 erscheinen, die das gesamte Werk umschliessen.
3571 Übersetzungen werden als eine Art von Modifikationen
3572 betrachtet. Damit können Sie eine Übersetzung
3573 des Dokumentes unter den Bestimmungen von
3574 Ziffer 4 verbreiten.
3575 Um die unveränderlichen Abschnitte durch
3576 eine Übersetzung zu ersetzen, benötigen Sie
3577 die spezielle Erlaubnis des Copyright-Inhabers.
3578 Sie können allerdings Übersetzungen von einigen
3579 oder allen unveränderlichen Abschnitten zu
3580 den original Versionen der unveränderlichen
3581 Abschnitte hinzufügen.
3582 Sie können eine Übersetzung dieser Lizenz
3583 und allen Lizenzhinweisen im Dokument sowie
3584 allen Garantieausschlüssen hinzufügen, vorausgesetzt,
3585 daß Sie ebenso die originale englische Version
3586 dieser Lizenz und aller Hinweise und Ausschlüsse
3588 Sollten die Übersetzung und die Originalversion
3589 dieser Lizenz oder eines Hinweises oder Ausschlusses
3590 voneinander abweichen, so hat die Originalversion
3593 Wenn ein Abschnitt des Dokumentes als Danksagung,
3594 Widmungen oder Historie überschrieben ist,
3595 so erfordert die Forderung (Ziffer 4) den
3596 Titel dieses Abschnittes zuerhalten, die
3597 Änderung des aktuellen Titels.
3599 9. Abschlussbestimmungen
3600 ........................
3602 Sie dürfen dieses Dokument nicht kopieren,
3603 verändern, unterlizensieren oder verteilen
3604 mit der Ausnahme, daß Sie es ausdrücklich
3605 unter dieser Lizenz tun.
3606 Jedweder andere Versuch zu kopieren, zu modifizieren,
3607 unter zu lizensieren oder zu verbreiten ist
3608 unzulässig und führt automatisch zum Entzug
3609 der durch diese Lizenz gewährten Rechte.
3610 Dennoch verlieren jene Parteien, die von
3611 ihnen Kopien oder Rechte unter dieser Lizen
3612 erhalten haben, nicht Ihre Rechte, so lange
3613 sie sich in völliger Übereinstimmung mit
3614 der Lizenz befinden.
3616 10. Spätere Überarbeitungen dieser Lizenz
3617 .........................................
3619 Die Free Software Foundation kann von Zeit
3620 zu Zeit neue, überarbeitete Versionen der
3621 GNU Free Dokumentation License veröffentlichen.
3622 Diese neuen Versionen werden im Geiste gleich
3623 bleiben, können sich aber in Details unterscheiden
3624 um neuen Problemen oder Besorgnissen gerecht
3627 Siehe: http://www.gnu.org/copyleft/
3629 Jede Version dieser Lizenz erhält eine eigene
3631 Wenn das Dokument bestimmt, daß eine bestimmt
3632 numerierte Version oder jede spätere Version
3633 dafür gilt, haben Sie die Wahl den Bestimmungen
3634 dieser speziell benannten Version zu folgen,
3635 oder jeder Version, die später von der Free
3636 Software Foundation, nicht als Entwurf, veröffentlicht
3639 Wie Sie diese Lizenz für Ihre Dokumente verwenden
3641 Um diese Lizenz in einem Dokument zu verwenden,
3642 das sie selbst geschrieben haben, schliessen
3643 Sie eine Kopie dieser Lizenz (eine englische
3644 Kopie des Originals anm. des Übersetzers)
3645 in Ihr Dokument mit ein, und setzen Sie den
3646 folgenden Copyright- und Lizenzhinweis gleich
3647 hinter die Titelseite:
3649 Copyright (c) YEAR YOUR NAME
3650 Permission is granted to copy, distribute
3651 and/or modify this document under the terms
3652 of the GNU Free Documentation License, Version
3653 1.2 or any later version published by the
3654 Free Software Foundation;
3655 with no Invariant Sections, no Front-Cover
3656 Texts, and no Back-Cover Texts.
3657 A copy of the license is included in the
3658 section entitled "GNU Free Documentation
3661 Es folgt eine Übersetzung des oben stehenden
3662 Hinweises, der nur zur Klarheit hier angegeben
3663 ist ! (anm.: des Übersetzers)
3664 Copyright Jahr Ihr Name
3665 Kopieren, Verbreiten und/oder Modifizieren
3666 ist unter den Bedingungen der
3667 GNU Free Documentation License, Version 1.2
3668 oder einer späteren Version, veröffentlicht
3669 von der Free Software Foundation, erlaubt.
3670 Es gibt keine unveränderlichen Abschnitte,
3671 keinen vorderen Umschlagtext und keinen hinteren
3673 Eine Kopie des Lizenztextes ist unter dem
3675 GNU Free Documentation License enthalten.
3676 (Ende der Übersetzung des Lizenzhinweistextes)
3678 Wenn Sie unveränderlichen Abschnitte, vordere
3679 und hintere Umschlagtexte haben, ersetzen
3680 Sie die Zeile: "Es gibt keine...... Umschlagtext"
3682 Mit den unveränderlichen Abschnitten:
3683 Liste dem den Titeln der unveränderlichen
3685 mit dem vorderen Umschlagtext:
3686 vorderer Umschlagtext
3687 und dem hinteren Umschlagtext:
3688 hinterer Umschlagtext
3690 Wenn Sie unveränderliche Abschnitte, aber
3691 keine Umschlagtexte oder irgend eine andere
3692 Kombination der drei Bereiche haben, mischen
3693 Sie die verschiedenen Alternativen, daß sie
3694 zu Ihren Anforderungen passen.
3696 Wenn Ihr Dokument nicht-triviale Codebeispiele
3697 enthält empfehlen wir diese Beispiele parallel
3698 unter einer freien Softwarelizenz Ihrer Wahl,
3699 beispielsweise der GNU General Public License
3701 um ihren Gebrauch in freier Software zu erlauben.