Was ist die moralische Verantwortung, wenn Open Source-Software zu früh veröffentlicht wird? Zum Beispiel ein nahezu vollständiges Produkt, das noch nicht vollständig getestet wurde.
Was ist die Erwartung des Programmierers? Warten Sie, bis es vollständig getestet wurde, oder veröffentlichen Sie es als Open Source-Version, und fahren Sie dann mit der Weiterentwicklung, dem Testen und den Weiterentwicklungen fort?
Die Befürchtung ist, dass Software Open Source ist und potenziell zu Problemen für die Verbraucher führen könnte.
Ist das eine unbegründete Angst?
open-source
Thomas Stringer
quelle
quelle
Antworten:
Ich glaube im Gegenteil, dass Sie so schnell wie möglich eine Open-Source-Software veröffentlichen sollten. Es gibt kein "zu früh" dafür (aber es sollte kompilieren).
Oder veröffentlichen Sie den Quellcode zumindest sehr früh und kontinuierlich (z. B. durch häufiges Drücken von github ), ohne formelle Veröffentlichungen vorzunehmen .
Es ist jedoch sehr wichtig, es als Alpha- oder Betastufe zu kennzeichnen und wenn möglich zu sagen (z. B. in einer Datei
README
oder in einemTODO
Blog usw.), was fehlt, nicht getestet oder in schlechtem Zustand ist. Sie sollten auch die Versionsnummer verwenden , um solche Informationen zu übermitteln.Bei freier Software sollte das Beste sein, dass jemand einen Blick in den Quellcode wirft und Ihnen einen kleinen Patch zur Verbesserung vorschlägt. Deshalb machen Sie Ihre Software kostenlos!
Daher müssen Sie Ihre tägliche Arbeit an Ihrer freien Software sichtbar machen! Externe Mitwirkende wären sauer, wenn ihr Patch nicht mit Ihrem aktuellen Software-Quellcode funktioniert oder ein Duplikat davon ist.
Was Sie befürchten sollten, ist, dass sich niemand für Ihre Software interessiert (und dazu beiträgt). Es ist ein langer Weg, Interesse von außen für eine freie Software zu wecken (insbesondere externe Mitarbeiter zu gewinnen).
quelle
TL; DR:
Vorzeitig freigeben. Oft loslassen.
Persönliche Anekdote:
Ich war sehr aufgeregt über das Projekt, an dem ich arbeitete. Sehr aufgeregt. Ich konnte nachts nicht aufgeregt schlafen. Also habe ich meinen Co-Entwickler dazu gebracht, v1.0 schneller zu veröffentlichen, als er wollte.
Es war schrecklich. Nichts funktionierte so, wie es sein sollte. Es gab Bugs in jeder Runde, aber wir haben sie protokolliert und behoben. Wir haben sogar ein paar Early Adopters dazu gebracht, Fehler einzureichen, die wir möglicherweise nicht gefunden haben. Ein oder zwei Wochen später veröffentlichten wir eine neue Version, die viele der Probleme behebt, und fingen dann wieder an, neue Funktionen zu entwickeln.
Eine frühe Veröffentlichung war das Beste, was wir tun konnten. Es stellte unser Produkt vor reale Benutzer. Durch diese aufgedeckten Fehler haben wir möglicherweise unser Projekt gefunden und verbessert. Außerdem haben diese Early Adopters erfahren, dass wir dieses Projekt ernst nehmen. Es wird mehr Releases und eine aktive Entwicklung geben.
Es hätte aber auch leicht in die andere Richtung gehen können. Wir hätten diese Fehlerberichte ignorieren können. Oder wir hätten nicht schnell reagieren können. Es könnte eine andere Geschichte gewesen sein, wenn wir 3 Monate statt ein paar Wochen gebraucht hätten, um v1.1 zu veröffentlichen.
quelle
Es ist dasselbe wie bei Closed-Source-Software. Kommunikation ist wichtig.
Informieren Sie die Benutzer über den Status der Software und warum sie zum Herunterladen verfügbar ist.
Software führt immer zu Kundenproblemen, unabhängig davon, ob sie vollständig getestet wurde oder nicht. Die meisten Kunden akzeptieren diese Tatsache, und einige Kunden tun dies niemals. Wenn die Software jedoch zu mehr Problemen führt, als vernünftigerweise zu erwarten wäre, besteht eine moralische Verpflichtung, den Kunden über das von ihm eingegangene Risiko zu informieren. Informationen sollten sowohl in Kurzform ("Alpha / Beta / EarlyAccess" -Labels) * als auch im Detail vorliegen: Eine Liste bekannter Probleme, Problemumgehungen und besonderer Überlegungen, z. B. wenn es wahrscheinlich ist, dass Daten beschädigt werden.
* Beachten Sie, dass Benutzer von einigen großen Softwarefirmen geschult wurden, "Beta" als einen Zustand zu betrachten, in dem die Software ziemlich solide ist. Dem Benutzer mitzuteilen, dass es sich bei der Software um "Beta" handelt, ist häufig nicht ausreichend.
quelle
Es gibt keinerlei moralische Verantwortung. Niemand wird gezwungen, Ihre halbherzige Software zu verwenden.
Das einzige, worüber Sie sich Sorgen machen müssen, ist Ihre Glaubwürdigkeit.
quelle
Ich habe die Erfahrung gemacht, dass ein Gleichgewicht erreicht werden muss.
Im Moment arbeite ich (im Sinne der Beantwortung von Fragen und der Bereitstellung von Entwicklungsvorschlägen, ohne Code zu sehen) mit einem Entwickler, der ein sehr aufregendes FOSS-Projekt erstellt, das den von mir geschriebenen Code verwendet. Die Veröffentlichung wurde wiederholt verzögert, da Konstruktionsänderungen vorgenommen wurden, die das Projekt auf lange Sicht verbessern werden, jedoch erhebliche Änderungen des Codes erforderlich machen, der bereits geschrieben wurde und bereits "funktionierte". Wäre eine funktionierende, aber unvollständige Veröffentlichung gemacht worden, sobald es etwas zu zeigen gab, könnten Ideen für Änderungen (und aktuelle Patches) von der breiteren Community, die an diesem Projekt interessiert ist, kommen und es eher beschleunigen als haben die Probleme tauchen nacheinander langsam auf, Wie der Entwickler darüber nachdenkt und um Feedback zum Design von mir und anderen interessierten Mitgliedern der Community bittet. Von diesem Standpunkt aus bin ich also ein großer Befürworter von "Früh freigeben, oft freigeben".
Auf der anderen Seite können Releases mit geringer Qualität dazu führen, dass ein neues Projekt schlecht aussieht, bevor es überhaupt in Betrieb genommen wird. Einige Fallstricke, die ich gesehen habe, sind:
Zum Schluss denke ich an Dinge wie:
Diese Art von Problemen führt zu einem "Vaporware" -Image, das schwer zu verwackeln ist, es sei denn, Sie sind sehr offen für den Mangel an Arbeitscode.
Schließlich machen Ihre Versionsnummern Sinn. Nennen Sie Ihr Projekt nicht "1.0", bis es das tut, was die Benutzer ohne Absturz erwarten. Ich hatte schon immer Glück damit, Versionsnummern um "0.5" für die erste Veröffentlichung zu verwenden, aber ich habe auch Dinge wie "0.1" oder "0.10" gesehen, die Sinn machen.
quelle
Es gibt einen Fall, in dem die Veröffentlichung freier Software negative Folgen haben kann. Einige Spezifikationen sind für die Öffentlichkeit unter der Bedingung lizenziert, dass alle an die Öffentlichkeit verteilten Implementierungen bei der ersten Veröffentlichung vollständig der Spezifikation entsprechen. Der Verlag untersagt Ihnen rechtlich, eine in Arbeit befindliche Implementierung der Spezifikation zu verbreiten. Ohne eine spezielle ausgehandelte Lizenz des Herausgebers der Spezifikation müssen Sie diese mit niemandem teilen, bis alle Tests bestanden sind. Dies zwingt ein "Kathedralenmodell" (wie Eric S. Raymond es nannte) zur Implementierung der Spezifikation.
Eine Spezifikation unter einer solchen Lizenz ist die Java-Sprachspezifikation . Diese Einschränkung gilt für Entwickler von virtuellen Maschinen, die mit der JVM kompatibel sind, aber zum Glück nicht für Entwickler von Anwendungen, die in einer JVM ausgeführt werden.
Der Artikel " 4 Shifty Details About Microsofts 'Open Source' .NET " von Liu Qihao & Ciaran O'Riordan erwähnt die Möglichkeit, das Microsoft-Patentversprechen für .NET-Bibliotheken und Laufzeitkomponenten so zu interpretieren , dass unvollständige Implementierungen der CLR auf ähnliche Weise ausgeschlossen werden . Dies gilt jedoch nicht für Anwendungen, die in der CLR ausgeführt werden.
quelle