Es gibt einige Open-Source-Projekte, die ich bei der Arbeit in ein Produkt integrieren möchte. Wir haben weder die Bandbreite noch das Fachwissen, um dies selbst zu tun. Ich fand diese durch die Suche in Google. Ich kenne keine "Hauptakteure", die die Projekte nutzen, aber ich bin von dem, was ich sehe, ziemlich ermutigt.
Jetzt bin ich ein bisschen besorgt über das Risiko, dem ich durch die Verwendung von Joe-Blows Open-Source-Projekt ausgesetzt bin. Wenn ich 95% des Weges dorthin benötige, können die restlichen 5% leicht hinzugefügt oder behoben werden. Vielleicht ist es nicht trivial.
Wie bestimmen die Leute, ob ein Open Source-Projekt ausgereift genug ist, um in einem Produkt verwendet zu werden?
Dies ist kein Hobbyprojekt, daher sind Stabilität, Wartbarkeit usw. von größter Bedeutung.
quelle
Antworten:
Die Kriterien, die ich verwende, sofern das Projekt meinen Anforderungen entspricht:
4 & 5 helfen nicht wirklich bei Nischenprojekten, wie es sich anhört.
Das Wichtigste ist, ob es Ihren Anforderungen entspricht? Wenn Sie der Meinung sind, dass dies der Fall ist, müssen Sie als Nächstes ein Gurtzeug erstellen, um das Projekt zu testen und festzustellen, ob Sie das tun können, was Sie möchten. Auf diese Weise erhalten Sie ein Gefühl für die API (sofern es sich um eine Bibliothek handelt) und deren Funktionsweise.
Am Ende des Tages, wenn es etwas Open Source gibt, das 90% von dem macht, was Sie tun, verzweigen Sie es, fügen Sie die zusätzliche Funktionalität hinzu und senden Sie es an die Community zurück. Ich habe das schon bei kommerziellen Projekten gemacht.
quelle
Bei kleinen Bibliotheken sollten Sie immer davon ausgehen, dass Sie sich trennen müssen und das Projekt bereits abgebrochen wurde. Dies ist normalerweise kein Problem, besonders wenn das Projekt auf Github oder BitBucket gehostet wird, weil sie es dumm machen, das Projekt anderer Leute zu forken. Bei kleinen Bibliotheken können Sie die Wartung des Projekts jederzeit selbst übernehmen, wenn der ursprüngliche Projektbetreuer nicht mehr vorhanden ist oder die Projektrichtung an Orten übernehmen möchte, an denen Sie nicht mehr arbeiten möchten.
Ich mache mir weniger Sorgen um die Projektaktivität, da ausgereifte Bibliotheken, die ihr Gefühl der "Perfektion" erlangt haben, im Allgemeinen nur noch Fehlerbehebungen vornehmen müssen, sodass sich ihre Aktivität verlangsamt. Die Projektaktivität ist nur wichtig, wenn die Bibliothek ein sich aktiv entwickelndes Ziel enthält. Beispielsweise müsste ein Wrapper für externe Services ständig aktualisiert werden, wenn sich der externe Service weiterentwickelt. Daher ist eine aktive Entwicklung unerlässlich, eine Mathematikbibliothek jedoch nicht viel Neuentwicklung, wenn sie alle Funktionen hat, die sie benötigt.
Für größere Bibliotheken wird es schwieriger. Die Übernahme ist viel aufwendiger, zum Glück bewegen sich größere Bibliotheken in der Regel nicht so schnell, da sie in der Regel ausgereifter sind.
Wie @Sam in seiner Antwort sagte, stimme ich zu, dass das Wichtigste bei der Bewertung von Open Source-Bibliotheken darin besteht, wie weit es Ihren Anforderungen entspricht. Sobald alle Lizenzprobleme geklärt sind, ist die Verwendung einer Open-Source-Bibliothek selten ein Fehler, da Sie immer nach Süden gehen können.
quelle
Schauen Sie in den Bug-Tracker des Projekts. Wenn Sie viele Tickets sehen, die von vielen verschiedenen Personen eingereicht wurden, und auch Antworten von verschiedenen Personen, dann ist das ein gutes Zeichen. Mehr Fehlertickets == Größere Benutzergemeinschaft == Wahrscheinlicher, dass Sie produktionsbereit sind.
quelle
Die Nachrichten sind nicht gut, aber das heißt nicht, dass sie falsch sind: Sie wissen es nicht.
Wenn es analoge Implementierungen in der Produktion gäbe, wüsste man, dass dies machbar ist, aber wie Sie sagten, verwenden keine "Hauptakteure" die Projekte.
Wenn Sie sich im eigenen Haus entwickelt hätten, würden Sie wissen, aber wie Sie sagten, haben Sie nicht die Ressourcen.
Es ist vernünftig, es wissen zu wollen, aber ... das tust du nicht.
Ich hoffe, diese Antwort hilft, denn Sie sollten Notfallpläne haben, um die Verbindung zu einer Technologie herzustellen, auf die Sie angewiesen sind, die Sie jedoch nicht kontrollieren ... und zu wissen, dass Sie nicht wissen, ob sie zuverlässig ist, ist ein Schritt in diese Richtung.
quelle
Die Frage muss anders gestellt werden. Was Sie wirklich fragen, ist, ob Sie mit diesem Open-Source-Projekt das Produkt am besten entwickeln können?
Dies betrifft notwendigerweise nicht nur das betreffende Open Source-Projekt, sondern auch Ihre anderen Optionen. Wenn Ihre einzige andere Option darin besteht, alles selbst zu schreiben, ist es besser, das Projekt zu verwenden, wenn Sie den Code so gut verstehen, dass Sie ihn ändern können.
Dann stellt sich natürlich die andere Frage, ob Ihr Projekt überhaupt realisierbar ist. Das heißt, Sie müssen den Aufwand abschätzen, einschließlich des Risikos, die vom Open-Source-Code erhoffte Funktionalität reparieren oder vervollständigen zu müssen. Wenn das Projekt nicht häufig verwendet wird, müssen Sie den Code dafür überprüfen.
quelle