Bei Entwicklungsprojekten werde ich immer wieder mit 3rd Party Komponenten konfrontiert. Schliesslich ist es nicht der Sinn der Sache Grid, Charts, Reporting oder dergleichen selbst neu zu erfinden (auch wenn das “not invented here Syndrom” häufig verbreitet ist).
Wenn man nach Lösungen für Problemstellungen fragt bekommt man oft die Antwort: …”da gibts doch eine open source Lösung”. Da dies “offensichtlich” die billigste Lösung ist, wird oft zu Gunsten solcher Libraries entschieden.
Im best-case hält die Library was sie verspricht und die erforderlichen Funktionalitäten können ohne Probleme implementiert werden. In der real world sieht es meistens anders aus:
- Die Library weist nach 3/4 der Implementierung ein Problem auf
- Die Library ist nicht stabil oder nicht performant
- Die Library verursacht komische Nebeneffekte oder weist Memoryleaks auf
Was nun? Jetzt ist guter Rat teuer! Dabei gibt es folgende Szenarien:
- Hinter dem Open Source Projekt steht eine Firma die kostenpflichtigen Support bietet
- Hinter dem Open Source Projekt stehen mehrere Entwickler welche das Projekt aus Prestigegründen ins Leben gerufen haben
- Hinter dem Open Source Projekt stehen wenige Bastler die etwas in den Äther geblasen haben und sich nicht weiter darum scheren
Der erste Fall ist der best-case: Problemticket aufmachen, die Leute anständig bezahlen, Problem gelöst! Der zweite Fall ist problematischer, da die Entwickler keinerlei vertragliche Bindung haben und oft aus Zeitgründen (beispielsweise bei Studenten) keine Lösung bieten können. Der dritte Fall ist eine Katastrophe, da entweder überhaupt kein Ansprechpartner mehr verfügbar ist oder das Team sich verstritten oder aufgelöst hat.
Nun werden Sie als aufmerksamer Leser sicherlich einwenden: “Das ist doch kein Problem wenn man die Quellen hat!”
Ja sicher hat man die aber:
- Ist der Code qualitativ gut?
- Ist der Code lesbar?
- Ist der Code gut strukturiert?
- Hat das Projekt die Resourcen, sich einzuarbeiten
- …
Bei der Auswahl der Library wird selten der Code analysiert. Hauptsache man bekommt sein Problem schnell und billig gelöst. Nur meist ist billig nicht gleich günstig sonst häufig erweist sich die “kostenlose” Lösung als teuer und die teurere Lösung als professionell und günstiger. Zudem haben Sie sich ja für eine 3rd Party Komponennte entschieden weil sie sich eben nicht mit dieser Thematik beschäftigen wollten und es nicht zu Ihren Kernkompetenzen gehört.
Vielleicht ist nun der Eindruck entstanden dass ich ein totaler Open Source Gegner bin. Dem ist nicht so. Ich möchte an dieser Stelle nur die Risiko-Awareness schaffen um nachgelagerte Probleme zu vermeiden. Wenn Sie vorab eine Risikobewertung machen in der Sie die oben genannten Fragen beantworten und mit Punkten bewerten, dann sind Sie auf der sicheren Seite und müssen sich später keine Vorwürfe machen (lassen).
