Wie Freie Software entsteht

Die Entwicklung von Freier Software unterscheidet sich grundlegend von der klassischen Software-Entwicklung, so wie sie an Universitäten gelehrt wird oder wie sie tatsächlich praktiziert wird.

Wasserfallmodell

Software-Entwicklung in 6 Phasen, mit möglicher Korrektur

[Wasserfallmodell]

Das ist ein theoretisches Universitäts-Modell.

Tatsächliche Software-Entwicklung I

Konventionelle Software-Entwicklung

Tatsächliche Software-Entwicklung II

Konventionelle Software-Entwicklung beinhaltet auch

Kommunikation — Konventionell

[Klassische Kommunikation]

Hierarchische Kommunikationsstrukturen

Kommunikation jenseits der Hierarchie oft nicht erwünscht

Entstehung Freier Software

Erläuterungen

Kommunikation — Freie Software

  • Keine Hierarchien
  • Keine Einschränkungen
  • Jeder mit jedem
  • Teilnehmer sind gleichberechtigt
  • Einfacher Draht zu den Entwicklern
  • Kommunikation öffentlich
  • Teilweise öffentlich archiviert

[Kommunikation bei Freier Softwarre]

Entwicklungsarbeit

Mitarbeit

Software-Projekte

Generell

Grundlagen für Freie Software

Damit Freie Software "funktioniert", wird eine Lizenz benötigt, die folgendes sicherstellt:

Entwicklungsfeld

Man ist, was man kann:

Also:

Evolution Freier Software

Resultat:

Survival of the fittest

Software-Zyklus

  • Tatsächlicher Kreislauf
  • Software-Reuse
  • Kontinuierliche Weiterentwicklung
  • Einbeziehung der Anwender
  • Möglichkeiten zur Mitarbeit

[Software-Zyklus]

Hinzufügen neuer Mitarbeiter

Was passiert, wenn zu einem späten Zeitpunkt neue Mitarbeiter zu einem Software-Projekt hinzugfügt werden?

Konventionelle Software-Entwicklung

  • Zusätzliche Zeit für Einarbeitung notwendig
  • Zusätzliche Kommunikation
  • Hält bisherige Mitarbeiter von der Arbeit ab
    • Verlangsamt ein Projekt
    • Ist nicht ratsam

Freie Software

  • Einarbeitung weniger stark da:
    • Kommunikation öffentlich und archiviert
    • Neue Personen müssen Archive lesen
    • Quellcode vorher verfügbar
  • Fehlerbereinigung
  • Einbringen neuer Aspekte

Merkmale Freier Software

Anforderungen für Freie Software

Infrastruktur für Freie Software

Sourceforge und BerliOS bieten:

Open Projects Network (jetzt: Freenode) bietet:

Beispiel 1: Linux-Kernel

Beispiel 2: KDE

Beispiel 3: Debian GNU

Scheitern eines Projektes?

Akademische Frage:
Kann ein Software-Projekt scheitern?
Oder wann ist es gescheitert?