"Deus, dona mihi serenitatem accipere res quae non possum mutare, fortitudinem mutare res quae possum, atque sapientiam differentiam cognoscere.
http://www.little-idiot.de/his/ und als PDF zum Ausdrucken
OpenSource ist ein Phänomen, welches vor einigen Jahren nicht denkbar war. Wie kann Software entstehen, ohne daß jemand dafür bezahlt? Der Wert eines Betriebssystems wird mit mehreren Mrd.$ beziffert, die Wartungskosten (Weiterentwicklung, Optimierung, Treiber, ...) betragen jährlich etwa 40% der ursprünglichen Entwicklungskosten.
Die "impliziten Logiken" der Dynamik der Softwareentwicklung in der OpenSource - Gemeinde sind schwierig zu verstehen, da sie durch Wechselwirkungs - Prozesse der menschlichen, psychologischen Eigenschaften und ungeschriebenen Regelwerken der Zusammenarbeit entstehen, die sich selber verstärken bzw. abschwächen. Jemand beginnt, ein Programm für etwas zu schreiben, und flugs gesellen sich hunderte Programmierer freiwillig hinzu, opfern ihre Freizeit und es entsteht - z.B. Linux. OpenSource / FreeWare = GNU Software verwendet die modernsten Erkenntnisse der verteilten Programmierung, die sich hinter Schlagworten, wie Agile Programming, Aspektorientierung, Extreme Programming, Pair Programming, ... verbergen. Die Gemeinde von inzwischen 300.000 Programmierern, über alle Kontinente verteilt, hat recht erfolgreiche Methoden der Zusammenarbeit gefunden, wie Linux, Free/Open/NetBSD - Kernel, die GNU Software, die Benutzeroberflächen GNOME, KDE samt Entwicklungswerkzeugen (Qt, OPIE, GTK+, GTKmm, XPCom, GCC, GCJ, G++, Python, PERL, RUBY, JAVA, ...), und die immense Zahl von kostenlosen, gut funktionierenden Softwarepaketen zeigen (OpenOffice, GIMP, Firefox, Mozilla, Netscape, ...).
Hierzu muß man die Wechselwirkungen gekoppelter, dynamischer Systeme verstehen lernen, also den Menschen mit seinen psychologischen Eigenschaften, die Struktur der Arbeitsorganisation, die Wurzeln der Motivation. Vielleicht für viele, erfahrene Programmierer nichts neues, aber: Erfahrung zählt garnichts, man kann auch 25 Jahre alles falsch gemacht haben!
Die Welt hat sich verändert: Früher hat der Großvater dem Sohn und Enkel erklärt, wie man ein Fahrrad repariert, heute erklärt der Enkel dem Großvater, wie man eine Fernsteuerung programmiert. Ursache - Fortschritt in der Technik. Die inneren Logiken der Welt haben sich verändert, darunter z.B. auch Vertriebslogiken, Herstellungsprozesse, u.s.w. Viele Firmenchefs verstehen einfach nicht, warum und wie sich so grundlegend alles verändert, was jahrzehntelang Gültigkeit hatte - sie geben das Geschäft auf, weil sie impliziten Logiken des NetBusiness z.B. nicht verstanden haben, die nun heutzutage anders sind. Entlassungen sind die Folge. Auf der anderen Seite entstehen riesige Unternehmen, rein virtuell im Internet, wie z.B. einige Software- Entwicklungsfirmen mit mehr als 35.000 Mitarbeitern. Nur derjenige, der diese dynamischen Prozesse versteht, und seine Denkweise ständig anpasst, kommt ohne Probleme und relativ angstfrei durchs Leben. Wer auf der Stelle tritt, muß Niederlagen hinnehmen.
Wie kann Software entstehen, ohne daß jemand dafür bezahlt?
Was war zuerst da? Henne oder das Ei? Ok - anders gefragt: Was war zuerst da, der Künstler oder die Skulptur? Antwort: Die Skulptur. Sie wartete nur darauf, vom Künstler freigelegt zu werden! Abgesehen davon sollte jeder Christ die Frage nach Huhn und Ei eindeutig beantworten können: Und Gott schuf Himmel und Erde, die Pflanzen, die Tiere, die Menschen ... und keine Eier!-)
Es gibt eine göttliche Ordnung, sagt man. Ein einfaches Naturgesetz besagt, daß ein Stein auf einem Berg solange herunterrollt, bis er - unten am Fuße angekommen - seinen endgültigen Platz erreicht hat, danach bewegt sich nichts mehr. Daraus schließe ich - Was hält die Welt in Gang? - Nichts ist dort, wo es hingehört! Wenn nämlich alles an seinem endgültigen Platz wäre die Summe aller Kräfte ausgeglichen wäre, würde sich nichts mehr bewegen. Daraus schließe ich, daß es niemals eine "göttliche Ordnung" gegeben hat, sondern im Gegenteil - Gott hat eine "göttliche Unordnung" geschaffen, und nun ist alles in Bewegung, strebt zu seinem endgültigen Ort.
In einem fehlerhaften Axiomensystem kann alles bewiesen werden: Angenommen wir definieren in unserem durchweg logischen Zahlensystem eine einzige Ausnahme: 2+2=5. Daraus folgt dann beliebiger Unsinn, je nachdem, wie man Argumentiert: 6+6=(5+1)+(5+1)=(2+2)+1+(2+2)+1=10! Aus Falschem folgt beliebiges - "ex falso sequitur quodlibet!". Sprache ist ein Axiomensystem. Durch geschickte Pfadfindung kann in einem fehlerhaften Axiomensystem alles "bewiesen" werden. Verkaufstrainig basiert ausschließlich auf geschickter Argumentation mit Suggestion und Empathie, sowie der geschickten Steuerung der Gedankenpfade beim Gegenüber, Gedankenkeime säen, nennt man das. Siehe auch Axiomensysteme, philosophisch/mathematisch betrachtet.
Behauptung: Microsoft ist eigentlich pleite, angesichts Linux, OpenOffice ... ohne Zukunft - Microsoft weiß das - und hat daher sich für 2.5 Mrd.$ in die deutsche Telekom eingekauft, welche selber mit Voicestream eine hervorragende Handy - Vernetzung in den U.S.A. bietet, weil die halbierte GSM Frequenz erlaubt, viel weniger Masten aufzustellen, als die Konkurrenz, dies also enorm Kosten spart, wie Ron Sommer damals schon korrekt erkannt hat.
Gerald Zaltmann (Harvard University - "How customers think") schlug unlängst Merzedes eine Umfrage vor: "Fragt doch mal Eure Kunden, was sie denken, was Merzedes über sie denkt?" - Antwort - Dukatenesel, wenig Qualität für viel zuviel Geld, ADAC Pannenstatistik an Platz 37, Qualität steht in keinem Zusammenhang zum (noch) hohen Image, ... eine sehr negative Prognose, die auf ein gestörtes Hersteller - Kundenverhältnis schließen läßt. Die bisherigen Umfragen der Kundenzufriedenheit sind so mit Suggestivfragen gepflasert, die die Gedanken auf andere Pfade lenken, sodaß kaum ein vernünftiges Ergebnis dabei heraus kommen kann. Und in der Tat muß Merzedes ganze Firmenflotten nach nur wenigen Monaten wieder zurück nehmen, weil die Autos regelmäßig liegenbleiben. Ebenso BMW. Firmenwagen von Audi und Toyota sind qualitativ wesentlich besser.
Wir sehen nicht, daß wir nicht sehen - Blinde Fleck - Siehe S. 117, "Wahrheit ist die Erfindung eines Lügners", Heinz von Förster.
Zirküläre Bezüge - "Was ist Sprache?" - Die Frage allein schon ist Anwendung von Sprache - "Um Rekursion zu verstehen, muß man Rekursion verstanden haben!" - Eine Eigenschaft von Universalsprachen, daß man rekursiv Dinge beschreiben kann - analog: "Um Sprache zu verstehen, muß man Sprache verstanden haben!" Liebe - was ist Ursache, was ist Wirkung?
"Ich sehe, daß Ihr seht, wie ich Euch sehe!" - Menschen verhalten sich komplett anders, wenn sie nicht alleine sind. "candid camera", "Versteckte Kamera" - ein Faszinosum.
Entkopplung Gehirn - Umwelt: Es erschallt ein "Miau", und wir errechnen das Bild von Katze vor unserem geistigen Auge - Kognition (siehe Maturana, Baum der Erkenntnis)
Man schaue sich auf dem Tisch eine Tasse an, schließe die Augen und greife sie. Dies kann nur dadurch funktionieren, daß wir unsere Umwelt "errechnen". Wir haben keine direkte Wahrnehmung, bzw. benötigen sie auch nicht. Dementsprechend "traumwandeln" wir oft auch durch unsere Welt, ohne z.B. den vollen Mülleimer zu bemerken ;-) - Ein klares Zeichen dafür, daß wir viel mehr "glauben" als "wissen", wenn wir nicht genau hinsehen, bzw. viel kommunizieren.
Werbung für Aldi - Kognition (Vorausrichtung einer Denkweise) - Wenn wir dann wirklich etwas brauchen, laufen wir hin, und kaufen es - Autopoiese - siehe Maturana, "Baum der Erkenntnis".
Ist das, was ich erzähle, real? Logikfehler: "Linux existiert!" - Also ist die Erklärung korrekt! Weil die Welt existiert, existiert Gott? Siehe Nicolaus von Autrecourt: Briefe an Pater Arezzo.
Eric Raymond schrieb 1996 ein Text, "The Cathedral and the basaar", der zum ersten Male die Struktur der Entstehung freier Software beschrieb. Der Ursprung jeder freien Software ist ein bisher ungelöstes Problem oder ein unbefriedigtes Bedürfnis. So wurden viele TCP/IP Protokolle, Softwarepakete "erfunden", um ein Problem zu lösen (Streaming Protokolle, PPP, PPPoE,...siehe RFC, IETF.ORG), oder eine Unzulänglichkeit eines bestehenden Softwarepaketes. Oft ist es sogar das mit dem Softwarepaket verbundene Copyright, welches eine Heerschar von Programmierern veranlaßt, hochkomplexe Programme und sogar ganze Betriebssysteme einfach neu zu schreiben. Das von Richard Stallmann begründete Prinzip der GNU Software (Alle Software gehört der Gemeinschaft, jeder darf diese unentgeltlich nutzen, alle Änderungen/Verbesserungen daran sind wieder zu veröffentlichen, Maintainer - Prinzip) hat inzwischen viele Anhänger gefunden. Es ist natürlich nur denkbar geworden durch die globale Vernetzung. Kommerzielle Firmen haben den Zeitgeist erkannt, und gründen ihr Business - Modell ausschließlich auf Dienstleistung, siehe IBM. Jeder lukrative Markt wird inzwischen von GNU Software, bzw. Software, die unter anderen Lizenzen oder auch "Dualen Lizenzen" steht, bedient. Erfolgreiche Ideen werden von der Heerschar von global über 300.000 Programmierern, die ihre Freizeit für ein Ideal opfern, unverzüglich in Code umgesetzt. Kaum ein Softwarepaket, welches nicht nachprogrammiert wurde, und dabei das Original noch an Qualität, Wartbarkeit und Eleganz im Code übertrifft. Siehe www.freshmeat.net und www.sourceforge.net. Von einem freien Officepaket bis hin zu Raumbelegungsprogrammen und ganzen ERP/CRM Paketen ist hier alles zu haben. Eric Raymond beschreibt die wichtigsten Aspekte der Basaar - Methode wie folgt:
Jedes gute Programm beginnt mit einem ungelösten Problem oder einer Unzulänglichkeit eines bestehenden Programmes, welches einen Programmierer reizt.
Plane, Code wegzuschmeißen, es wird eh passieren (Fred Brooks: "The Mythical Man Month, Kapitel 11)
Die Kosten der jährlichen Programmpflege/Wartungskosten liegen bei etwa 40% der Entwicklungskosten. Je mehr User es gibt, desto höher sind auch die Wartungskosten. Mehr User finden mehr Fehler.
Gute Programmierer wissen, was sie zu tun haben, was sie wie codieren müssen. Großartige Programmierer wissen, was sie neu schreiben müssen, und was sie weiterverwenden können.
Veröffentliche früh und oft; versuche nicht, fehlerfreie Software auszuliefern, es gibt sie eh nicht. (genutzt wird hierbei die Neugierde und die Experimentierfreude von Anwendern, die Zeit haben, neue Software auszuprobieren).
Die Wichtigkeit, User zu haben. Höre auf deine Kunden, appelliere an ihren Spieltrieb, baue neue "Features" ein, belohne sie für ihr Feedback.
Das Gesetz von Linus: Vorausgesetzt, genügend Augen schauen auf den Code, sprich es gibt genug Co-Entwickler oder Beta - Tester, werden alle Probleme in kurzer Zeit bekannt, und die Problemlösung wird schon von irgendwem gefunden werden.
"Linus's Law": Debugging ist parallelisierbar, weil keine Koordination notwendig ist, im Gegensatz zum Schreiben von Code - Ein wichtiger Hinweis für Entscheider - viele Kunden finden, sofern der Code OpenSource ist, auch die Fehler von alleine. Dies spart enorm Kosten und ist der Hauptgrund für OpenSource !!!
Intelligente Datenstrukturen und simpler Code funktioniert viel besser, als intelligenter Code und primitive Datenstrukturen. Dies ist *das* Argument für OO-Datenbanken, wie z.B. GOODS, ZODB, PostgreSQL (Kern ist OO!).
Behandle Beta - Tester als wären sie deine wertvollste Resource, und sie werden zu genau dieser. Wertschätzung ist ein wichtiges, psychologisches Kriterium der Motivation und ein Steuerungselement, Menschen für etwas zu begeistern.
Gute Ideen zu haben, ist nur die zweitbeste Möglichkeit. Gute Ideen von Usern aufnehmen, ist die beste Idee.
Die besten und innovativsten Ideen und Fortschritte beim Programmieren macht man, wenn man erkennt, was am Konzept falsch war, und es einfach - gnadenlos und ohne mit der Wimper zu zucken, über Bord wirft. Sei immer bereit, Code einfach wegzuwerfen, Du wirst es eh tun, wenn das Konzept nicht stimmt, allerdings bis dahin viel Zeit verschwenden.
Schaffe möglichst viele Schnittstellen für Plugins, dokumentiere sie perfekt, animiere, Module zu schreiben, siehe Linux Modules Plugin, Apache Module (PHP, PERL, JAVA...), belohne Programmierer, indem sie auf der Projekt - Homepage einen "Ehrenplatz" bekommen!
Dokumentiere besonders die Schnittstellen für Erweiterungen besonders gut, schreibe Tutorials, Howtos, kleine, einfache Anleitungen, die das Design der Software erklären. Du wirst so viele Mitarbeiter finden.
Er muß Leute davon überzeugen, daß das Softwarepaket sich in naher Zukunft gut entwickeln wird, Meilensteine nennen, Features ankündigen, das öffentliche Interesse in Zeitungen und Fachzeitschriften wecken, um möglichst viele Co-Entwickler für das Projekt begeistern zu können (Ein Apell an Menschen mit leichter Profilneurose, siehe Belohnungssysteme) Bill Gates hat in einem Interview gesagt, daß Microsoft noch nie deswegen ein neues Softwarerelease verkauft hätte, weil es weniger Fehler enthielt, sondern immer nur dadurch, daß es neue Features enthielt (Neugierde ist die Vorfreude auf Erkenntnis).
Ein guter Koordinator muß kein brillianter Programmierer bzw. Softwaredesigner sein, er muß aber erkennen können, wann jemand anderes tatsächlich eine gute Idee hat, die das Team weiter bringt, wie z.B. die Reduktion der Komplexität, der Code - Abhängigkeit untereinander.
Ein guter Projektleiter versteht es, die Aufmerksamkeit auf spezielle Aufgaben zu lenken: Aus der Sicht des Programmierers schaut dies dann so aus: Wenn Du die richtige Einstellung hast, finden die interessanten Probleme Dich! (eine "teleologische" Erklärung, vom Ziel her begründet, siehe philosophische Erkenntnistheorie)
Wenn das Interesse an einem Programm nicht mehr besteht, ist es die letzte Aufgabe eines Basar-Projektleiters, es in fachkundige Hände weiterzureichen
Redhat hat alle Entwickung an die OpenSource Gemeinde übergeben: Projekt Fedora.
Netscape hat die Entwicklung eingestellt und dies als Mozilla Projekt veröffentlicht. Mit Hilfe der Crossplattform - Library XPCOM wurden u.a. neben Firefox auch OpenOffice entwickelt.
OpenOffice ist wohl neben Linux und GNU Tools das komplexeste Projekt. Es ist ebenfalls mit XPCOM programmiert.
Compiere CRM/ERP Tool wird bald Ersatz für SAP R/3.
PostgreSQLentwickelt sich zu dem besten Datenbank - Server überhaupt - Oracle - Kompatibilität ist fast erreicht.
PHPNuke Portalsoftware wurde mehrfach neu geschrieben, mangels Designfehlern (mal fehlte ein Language - File, dann Skins)
Postnuke - ein von PHPNuke abgespaltenes Projekt, mangels Designfehler des damaligen PHPNuke.
Zope CMS - System Zope ist eines der modernsten Softwareprojekte überhaupt: XP Development, UNIT Tests, ...
Es gibt aber auch eine ganze Reihe erfolgloser Projekte, wie z.B. Netscape (Code nicht mehr wartbar), CA Ingres (zu spät, PostgreSQL und MySQL machen das Rennen), SAPDB - nun MAX-DB (zu spät, PostgreSQL ist besser), unzählige Linux Distributionen, Datenbankhersteller (Gupta), Novell, Content Management Systeme, ...
| Zurück | Inhaltsangabe | Weiter |
| OpenSource Software-Entwicklung | Der Mannschaftsgeist" |