Was ist Open-Source?
Open-Source ist der Oberbegriff für Software, die unter einer der vielen Open-Source-Lizenzen erstellt und weitergegeben wird. Dieser Ansatz steht im Gegensatz zu proprietären Lösungen, die man ohne Erlaubnis des Unternehmens nicht wiederverwenden oder gar verändern kann. Es steht Ihnen frei, ein iPhone zu kaufen, auf dem eine Taschenrechner-App vorinstalliert ist, aber Teile des Codes nicht für Ihre eigene Lösung zu verwenden.
Auch wenn es keine Transaktion gibt, sind Open-Source-Lizenzen real und können durchgesetzt werden. Hier sind die wichtigsten Dinge, die man mit Open-Source-Software tun oder nicht tun darf:
- Modifizierung des bereitgestellten Codes
- Weitergabe von modifiziertem Code
- Verknüpfung des bereitgestellten Codes mit Code unter einer anderen Lizenz
- Patentierung von verändertem Code
- Privatisieren von modifiziertem Code, d.h. ihn nicht an die Gemeinschaft weitergeben
- Unterlizenzierung von verändertem Code unter einer anderen, möglicherweise weniger offenen Lizenz
Die Unterlizenzierung legt im Wesentlichen fest, ob Sie die Vorteile von Open-Source auf kommerzielle und damit oft proprietäre Weise nutzen können. Einige Entwickler haben kein Problem damit, dass Sie Geld für eine Ableitung ihrer öffentlichen Arbeit verlangen, während andere dies nicht zulassen.
Bis auf wenige Ausnahmen ist Open-Source-Software für Entwickler (und normale Menschen) kostenlos. Dies gilt auch für QS-Lösungen: JMeter, SoapUI und die Selenium-Software, die wir in unser Testmanager-Tool integrieren, werden alle kostenlos verteilt. Das bedeutet nicht, dass die Unternehmen kein Geld verdienen. Selenium ist eine Non-Profit-Organisation, die aber dennoch jährlich 180.000 Dollar an Sponsorengeldern einnimmt. Betrachtet man die kommerzielle Nutzung von Open Source, so bringt WordPress genug Hosting- und Werbeeinnahmen, um im Jahr 2019 mit 3 Mrd. Dollar bewertet zu werden.
Integrieren Sie die beste Open-Source-QS-Software in Ihre Tests
Vorteile der Verwendung von Open-Source für Entwickler
Warum ist Open-Source also gut? Es gibt eine Reihe von Vorteilen, die sich unterschiedlich auf die Entwicklungskosten und den Betrieb auswirken.
- Open-Source macht zeitraubende Arbeit überflüssig. Bei der Softwareentwicklung ist es oft nicht nötig, das Rad neu zu erfinden. Der Code anderer Leute ist transparent, um zu sehen, dass er nicht schädlich ist, also warum ihn nicht wiederverwenden, wenn man es kann? Man braucht keinen eigenen E-Mail-Verifizierungsablauf zu entwickeln, wenn er seit zehn Jahren kaum weiterentwickelt wurde. Das sieht man auch in der Fertigung, von gängigen Smart-Home-Protokollen bis hin zu Spielkonsolenherstellern, die fortschrittliche Emulatoren von Drittanbietern wiederverwenden, um Spiele abwärtskompatibel zu machen.
In ähnlicher Weise funktioniert Open-Source hervorragend, wenn Sie einen Betatest durchführen oder ein frühes Build vorbereiten. Warum stundenlang an einem Installationsassistenten basteln, wenn Sie nur testen müssen, wie die wichtigsten Funktionen funktionieren? Es wäre sogar noch frustrierender, die Zeit investiert zu haben, wenn sich beim Test herausstellt, dass man schnell Änderungen vornehmen muss.
- Open-Source bringt eine neue Perspektive. An einer ganzen Reihe von Open-Source-Lösungen haben Dutzende, wenn nicht Hunderte von Menschen mitgewirkt. Die meisten Aufgaben wurden von der Gemeinschaft aus mehr Blickwinkeln angegangen, als ein Entwicklungsteam jemals aufzählen, geschweige denn ausprobieren könnte. Das sollte Ihnen helfen, die perfekte Lösung zu finden oder eine Open-Source-Lösung zu optimieren, auch wenn Sie Effizienzgewinne nicht so spannend finden.
Noch interessanter ist, dass Sie nachvollziehen können, wie eine Gemeinschaft zu einer bestimmten Implementierung gekommen ist. Öffentliche Repositories haben eine Historie der Commits, so dass Sie die Entwicklung des Codes über Jahre und sogar Jahrzehnte verfolgen können. Die Commit-Historie sowie Diskussionen in der Community können Sie dazu inspirieren, etwas Bewährtes in eine neue Richtung zu lenken.
- Open-Source hat eine noch nie dagewesene Qualität. In Open-Source-Projekte fließt eine Menge Leidenschaft. In Kombination mit der Neigung einiger Entwickler, Dinge zu optimieren, wird es immer jemanden geben, der versucht, großartigen Code in etwas noch Besseres umzuwandeln. Die Tatsache, dass an einem bestimmten Problem schon seit Monaten und Jahren gemeinsam gearbeitet wird, ist ebenfalls sehr hilfreich.
Die schiere Menge an zusätzlichen Augen hilft ebenfalls sehr. Selbst wenn Sie bei FAANG arbeiten, ist es sehr unwahrscheinlich, dass mehr Leute einen kritischen Blick auf Ihren Code werfen, als wenn er online verfügbar ist. Wenn Sie ein kleines Team sind, das sich nicht auf technisch versierte Kunden konzentriert, kann es sein, dass Sie ohne Open-Source nur sehr wenig Feedback bekommen.
Nachteile der Verwendung von Open-Source-Code
Hier sind die größten Fallstricke, die mit der Einführung von Open Source verbunden sind.
- Sie haben nicht (vollständig) die Kontrolle. Das berüchtigtste Beispiel hierfür ist ein Urheberrechtsstreit zwischen einem Produkthersteller und dem unabhängigen Programmierer Azer Koçulu wegen eines Dateinamens. Er fühlte sich ungerecht behandelt und veröffentlichte alle seine Beiträge, einschließlich der 11 Codezeilen, die dafür sorgten, dass CSS-Zeilen mit einem Leerzeichen beginnen. Dies führte unter anderem dazu, dass die Websites von Facebook, Netflix und Spotify nicht mehr funktionierten.
Dieser spezielle Ausfall konnte schnell behoben werden, da die npm-Software-Registry die Sache selbst in die Hand nahm und den Code innerhalb von 10 Minuten wieder freigab. Es bedeutet jedoch, dass die Verwendung eines komplexen Nestes von Open-Source-Paketen, die auf anderen Open-Source-Code verweisen, über einen hereinbrechen kann. Das lässt sich mit einer geeigneten Aktualisierungspipeline vermeiden, die nicht durch falsche Vorstellungen von DevOps behindert wird.
- Die Wartung kann zu Ihrem Problem werden. Die Leidenschaft, die hinter Open-Source-Projekten steckt, kann ihnen zum Verhängnis werden. Wenn Ihre Software auf einem Open-Source-Projekt basiert, das z. B. durch ein Google Chrome-Update beschädigt wurde, kann es sein, dass der Ersteller das Problem nicht behebt. Plötzlich liegt es in Ihrer Verantwortung, die Kompatibilität wieder herzustellen (und möglicherweise einen Beitrag zur Open-Source-Gemeinschaft zu leisten).
Einige Plattformen sind für solche Probleme besser gerüstet als andere. Sowohl WordPress als auch Jenkins erlauben es Dritten, Plugins zu übernehmen, die aufgegeben wurden, damit die Entwicklung fortgesetzt werden kann. Wenn es sich um etwas weniger Kritisches handelt, kümmert sich vielleicht jemand anderes um ein Problem, bevor es zu Ihrem wird.
Hat Open-Source eine Zukunft?
Unserer Meinung nach sieht die Zukunft von Open-Source genauso rosig aus wie die Gegenwart. Es wird immer noch Entwickler geben, die Lieblingsprojekte entwickeln, von denen die größere Gemeinschaft profitieren wird. Die Startup-Industrie wird, auch wenn sie durch die Rezession geschwächt ist, weiterhin Open-Source-Code für ein MVP-Produkt zusammenfügen. Große Unternehmen werden immer noch den Anreiz haben, die Wartung ihres Tech-Stacks zu vereinfachen, indem sie ihn an die Community lizenzieren (z. B. Facebooks React).
Fazit
Open-Source ist eine großartige Angelegenheit. Es ermöglicht Ihnen, die Leidenschaft und Erfahrung von Hunderten von Entwicklern zu nutzen, sie in Ihr Produkt einfließen zu lassen und den öffentlichen Code vielleicht noch besser zu machen. Die beiden größten Fallstricke können durch Arbeiten, die Sie wahrscheinlich ohnehin für proprietären Code durchführen würden, weitgehend entschärft werden.
Verbinden Sie eine beliebige Community-QS-Lösung über REST API