Notwendigkeit des eigenen Ansatzes
« | 04 Dec 2018 | »Oft behaupten Personen, dass man in der Software-Entwicklung niemals Dinge
doppelt tun soll.
Das mag ja grundsätzlich stimmen, doch wird es damit gleich gesetzt, dass
bestehende Praktiken nicht mehr hinterfragt werden dürfen.
Ich sehe das anders: Den besten Wissenseinblick erlangt man oft erst durch den Nachbau von Bestehendem.
Das Rad wird ständig neu erfunden und auch wenn damit viel Arbeitszeit aufgewendet wird, so sind es oft jene Neuerfindungen, die wirtschaftliche Erfolge ermöglichen.
Ansonsten könnte man ja zynisch behaupten:
- Linux war an sich nicht notwendig. Es gab ja schon Unix.
- Warum wurde OpenBSD geschaffen, schließlich war NetBSD schon auf dem Markt.
- Das iPhone war unnötig, es gab ja schon Windows Mobile.
- Und Windows CE PDAs brauchte keiner, weil es schon welche mit PalmOS gab.
Doch dieses Spiel ließe sich auch bis in die tiefsten Systembibliotheken von allen Betriebssystemen zurückverfolgen.
… oder wie Uwe Boll einst scherzend meinte:
Warum soll Captain America 2 rauskommen, es gab doch schon einen ersten Teil.
Nicht immer waren Neuerfindungen von wirtschaftlichem Erfolg gekrönt.
Da fällt mir SkyOS eines geschätzten
Landsmannes ein, oder auch PrettyOS,
dessen Entwicklung
online dokumentiert
wurde.
Projekte wie dieses generierten jedoch eine gewaltige Menge an Wissen, die
wieder in andere Projekte einfließen konnte.
Kein Buch, das ein bestehendes Projekt zu dokumentieren versucht hätte, wäre ebenso tief ins Detail gegangen.
OpenSSL war auch über viele Jahre eine der führenden Kryptographie-Bibliothek und trotzdem möchte ich parallele Projekte wie Crypto++, GnuTLS oder die MS Crypto API nicht missen.
Auch werden weder KDE, Plasma, Gnome, LXDE ihre Entwicklung einstellen, nur weil es schon ein ähnliches alternatives Projekt gibt. Und in Sachen Entwicklung ist das gut so. Denn alle Projekte beeinflussen sich gegenseitig wenn sie ihre Features fertiggestellt haben, was in einem einzigen Projekt so nicht möglich wäre.
Auch an unseren Schulen lernen wir Dinge, auf die wir theoretisch verzichten können. Warum sollen wir rechnen lernen, wenn die Smartphones das per Sprachsteuerung tun?
Antwort: Weil es unseren Verstand erweitert und wir nur so in die Lage versetzt werden, Neues zu entdecken.
Deshalb möchte ich gerne allen Entwicklungsleitern und Entscheidungsträgern in der Softwareindustrie folgenden Rat geben:
Lasst euren Entwicklern Bildung zukommen! Auch durch aktives Forschen und Nachbauen in Projekten. Erfahrung ist nie ein Fehler auch wenn sie Zeit braucht.
Ich musste schon allzu oft feststellen, dass Schnelllösungen mit
Fremdsoftware “irgendwie” hingeschmiert werden, um enge Terminpläne
einzuhalten.
Doch das fehlende Detailwissen rächt sich, und dann darf der Support
den Unmut der Kunden ausbaden.
Sich einen eigenen Ansatz für ein bereits gelöstes Problem zu überlegen ist nie ein Fehler.
Ich selbst habe die Vorzüge der
STL zu schätzen
gelernt, nachdem ich mit meinem Versuch, es besser hinzubekommen,
gescheitert bin.
Das war kein Fehler sondern ein ganz essentieller Schritt in
meiner Entwicklung.
Lasst euch also nie davor abschrecken, etwas auszuprobieren, etwas zu zerlegen oder etwas nachzuahmen!