Ist es sinnvoll, dem Kunden KEINE technische Dokumentation und Unit-Tests zur Verfügung zu stellen?

8

Als unabhängiger Anbieter, der mit dem Schreiben eines Produkts für ein Unternehmen beauftragt wird, ist es sinnvoll, nur den Quellcode und die Benutzerdokumentation zu versenden, während Konstruktionsdokumente, Architekturdiagramme, Komponententests usw. weggelassen werden (im Grunde alles andere, was für die Ausführung des Produkts oder nicht unbedingt erforderlich ist) erweitere es)?

Ziel ist es, das Endprodukt für den Kunden erweiterbar zu machen, damit er es intern weiterentwickeln kann, jedoch nicht kostenlos. Sie hätten sich eingehend mit der Quelle befasst, um einige Entwurfsentscheidungen usw. zu verstehen, und sie sind dafür verantwortlich, ihre eigenen umfassenden Tests zu schreiben, um die Einführung von Regressionen zu verhindern.

Die Idee hier ist nicht, den Code unverständlich zu machen. Ich möchte nur eine zukünftige Möglichkeit schaffen, aufgrund des "Insiderwissens" und des Fachwissens, das ich als Originalautor habe, mit dem Schreiben von Erweiterungen beauftragt zu werden.

Wäre dies unethisch?

Bearbeiten: Der Vertrag wird derzeit ausgehandelt, daher ist die Frage, was die endgültigen Ergebnisse darstellt, noch nicht entschieden. Außerdem hätte ich erwähnen sollen, dass ich das Eigentum an dem Produkt behalten werde. Ich werde dem Kunden nur eine Nutzungslizenz gewähren. Macht dieses Detail einen Unterschied, ob dies als schlechte Form angesehen wird?

Bernie
quelle
4
Was sagt der Vertrag, was Sie tun müssen?
Der Vertrag wird derzeit ausgehandelt, daher wurde nichts entschieden.
Bernie
1
Wenn ja, lassen Sie den Preis widerspiegeln, was Sie versenden sollen.
1
Offensichtlicher Rat: Machen Sie den Vertrag sehr klar, damit keine Unklarheiten über die Pflichten bestehen!
Agos
Wenn sie nur eine Nutzungslizenz haben, müssen Sie diese Informationen nicht bereitstellen. Sie sollten Ihren Code auch nicht ändern, wenn sie nur eine Nutzungslizenz haben und nicht Eigentümer des Codes oder der Lizenz, ihn selbst zu ändern.
Bill Leeper

Antworten:

24

Vertraglich wäre es klug, eine Art Klausel über den Umfang der gewünschten Dokumentation aufzunehmen. Sie sollten Sie dafür entschädigen, dass Sie sie in einem verständlichen und professionellen Format präsentieren (wiederholen Sie die Serviettenskizze).

Es ist nicht unethisch, nur das zu tun, was verlangt und bezahlt wird, aber es ist einfach falsch, sich die Mühe zu machen, Informationen zurückzuhalten.

Wenn Sie mir eine schlecht dokumentierte und verschlungene App geben, mit der ich nicht arbeiten kann, bin ich eher der Meinung, dass Sie ein schlechter Programmierer sind, als auf eine Art Genie, auf die mein Unternehmen nicht verzichten kann. Bauen Sie sich den Ruf auf, Dinge richtig zu machen.

JeffO
quelle
Ich glaube nicht, dass er nur die Hälfte der Dokumentation geben würde, nur das, was zählt: Die gesamte Endbenutzerdokumentation, die er hat. Ich würde das Auslassen von Architektur- und Design-Diagrammen als "verkrüppelte" Dokumentation bezeichnen
TheLQ
1
Den Ruf aufzubauen, Dinge richtig zu machen, ist nur ein Tisch. Warum nicht einen Ruf aufbauen, der über das hinausgeht?
Scott C Wilson
11

Haben Sie sie für die Entwicklung der Komponententests und Dokumente belastet? und haben sie die rechnung bezahlt? Wenn ja, haben sie Anspruch auf das, wofür sie Sie bezahlt haben.

Andernfalls sehen wir nächste Woche hier auf p.se.com eine Frage mit dem Titel "Wie zwingen wir unseren Auftragnehmer, uns alle technischen Unterlagen und Komponententests zu geben, für die wir sie bezahlt haben?"

jqa
quelle
1
Bernie erwähnte, dass die Ergebnisse noch nicht ausgehandelt wurden. Wenn Sie für ein Produkt bezahlen, zahlen Sie nicht unbedingt für den gesamten Quellcode, Architekturdiagramme, Recherchen, IP usw. Sie zahlen für den Erhalt der Ergebnisse.
Kristofer Hoch
1
Lesen Sie seine Bearbeitung, das Projekt wurde noch nicht einmal vereinbart, daher hängt alles davon ab, wie der Kunde verhandelt. Wenn die SOW und die Rechnung einen Artikel enthalten, wird der Kunde dies im Allgemeinen wünschen. Der Kunde kann die Nichtlieferung als Entschuldigung dafür verwenden, die Zahlung abzulehnen oder nur teilweise zu bezahlen, unabhängig davon, was im Rest des Vertrags steht.
JQA
7

Du tust dir nur weh. Wenn ihre internen Mitarbeiter sich ansehen, was Sie getan haben, und feststellen, dass es an Dokumentation mangelt, werden sie denken, dass Sie ein Trottel sind und Sie in Zukunft weniger wahrscheinlich behalten werden.

Scott C Wilson
quelle
+1 Ich stimme zu. Manchmal zahlt es sich für Sie aus, heute etwas zu verschenken. Natürlich müssen Sie das im Blick behalten.
1
Das stimmt, aber ich würde diesen Fall nicht einmal als wirklich etwas verraten bezeichnen. Dies sollte als Teil des gesamten Pakets betrachtet werden, für das sie bezahlt haben. Übrigens, super einfache Möglichkeit zu erkennen, ob etwas unethisch ist: Wie würden Sie sich fühlen, wenn Sie auf der Empfangsseite wären?
Scott C Wilson
5

Ich würde fragen, welche davon Sie Ihrer Meinung nach beschreibt:

Sie werden für Ihr Fachwissen beim Entwerfen und Erstellen von Software, beim Ermitteln des Geschäftsproblems und beim Verwalten des gesamten Projekts bezahlt. Sie berechnen ihnen eine Lizenzgebühr, sie besitzen weder die Software noch das Design und Sie geben ihnen den Quellcode, damit sie sich besser fühlen - sie haben wirklich kein Recht, ihn zu verwenden.

oder

Sie werden für Ihre Zeit bezahlt, um Software für sie zu entwerfen und herzustellen. Sie kennen das Geschäftsproblem und verwalten das Projekt. Sie besitzen das Design, die Software, den Quellcode und alle Arbeitsprodukte, die Sie während der Stunden erstellen, für die Sie sie in Rechnung stellen. Sie haben das volle Recht, all das zu nutzen, wie sie wollen.

Versuchen Sie nicht, diese beiden Setups zu kombinieren. Möglicherweise berechnen Sie mehr für das erste (da Sie mehr Fähigkeiten einbringen und mehr Risiko eingehen) oder weniger (da sie am Ende weniger besitzen) oder dasselbe (wenn Sie der Meinung sind, dass sich diese Dinge ausgleichen). Wir tun dies im Allgemeinen erste, und wir werden immer wieder neu eingestellt, indem wir großartig sind, nicht indem wir Informationen zurückhalten. Wenn Sie das Leben auf dem zweiten Weg gelebt haben und auf den ersten Weg gehen möchten, steckt viel mehr dahinter, als Ihre Designdokumente nicht zu teilen.

Kate Gregory
quelle
+1 für "Wir werden immer wieder neu eingestellt, indem wir großartig sind, nicht indem wir Informationen zurückhalten." Es hat auch für mich viele Jahre funktioniert.
Bob Murphy
3

Ich würde das für unethisch halten, ja.

psr
quelle
3

Es gibt wirklich zwei Fragen, die hier beantwortet werden müssen, und ich werde sie beide ansprechen:

  • Muß ich habe zu dem Kunden , dass die Dokumentation zur Verfügung stellen?
  • Sollte ich dem Kunden diese Dokumentation zur Verfügung stellen?

Muß ich habe zu dem Kunden , dass die Dokumentation zur Verfügung stellen?

Sie müssen ihnen mitteilen, was in Ihrem Vertrag angegeben ist. Meiner Meinung nach bedeutet dies, dass Sie auch die entsprechende Dokumentation bereitstellen müssen, wenn der Quellcode nicht angemessen gepflegt / geändert werden kann, ohne auch die Dokumentation bereitzustellen.

Sie können sich Werke ansehen, die gemäß dem Copyright Act von 1976 des US Copyright Office gemietet wurden, um festzustellen, ob die Dokumentation, Komponententests usw. tatsächlich Ihrem Kunden gehören. Wenn dies der Fall ist, möchten Sie diese auf jeden Fall bereitstellen.

Sollte ich dem Kunden diese Dokumentation zur Verfügung stellen?

Wenn Sie jemals wieder mit ihnen Geschäfte machen möchten oder wenn Sie möchten, dass sie Sie anderen empfehlen, müssen Sie alle erforderlichen Arbeiten ausführen, um sie zu begeisterten Fans Ihres Geschäfts zu machen.

Das bedeutet, dass Sie ihnen den Quellcode von höchster Qualität, angemessen kommentiert und alles andere, an dem sie interessiert wären, übergeben müssen. Mein Rat wäre, wenn Sie sich mit ihnen treffen, um die Ergebnisse zu übergeben, bereit zu sein, ihnen die Komponententests usw. zu geben. Nachdem Sie alle wichtigen Dinge besprochen haben, sagen Sie etwas wie: "Übrigens, Ich habe auch Komponententests für diese Komponenten erstellt. Wollen Sie diese auch? "

Arbeiten Sie daran, Loyalität mit Ihren Kunden zu schaffen, und Sie werden ihr Geschäft in Zukunft wieder aufnehmen.

Ryan
quelle
1

Ich würde an dieser Stelle davon ausgehen, dass ein Vertrag oder eine schriftliche Vereinbarung / ein schriftliches Dokument vorliegt, in dem alle Unterlagen aufgeführt sind, die Sie an sie liefern müssen.

Wenn nicht, können Sie ihnen klar machen, dass die Anpassung des Produkts - darüber hinaus in den Benutzerhandbüchern - zusätzliche Kenntnisse der internen Code-Funktionsweise erfordert. Und wenn Sie in einer Verhandlungsposition sind, können Sie sie bitten, sich mit Ihnen in Verbindung zu setzen, um weitere Verbesserungen zu erhalten und dafür bezahlt zu werden.

Soweit ich weiß, werden Sie bereits dafür bezahlt, den Code für ihr Produkt zu schreiben , dh sie besitzen ihn. Sie können es also für unethisch halten, wenn Sie gehen, ohne alles zu dokumentieren.

Ich schlage vor, dass Sie ein Skelett-Gliederungsdokument mit einer High-Level-Architektur und Hinweisen darauf schreiben, wo Sie nach den wichtigsten Funktionsverbesserungen suchen müssen. Welches sind die Schlüsseldateien und so weiter. Wenn Ihre Arbeit gut ist, werden sie sich gerne für weitere Aufgaben bei Ihnen melden.

JoseK
quelle
1

Ich mag diesen Artikel: http://unixwiz.net/techtips/be-consultant.html

Was Sie beschreiben, würde mir nicht das Gefühl geben, jemals wieder mit Ihnen zusammenzuarbeiten.

Sie mögen ein Genie sein, aber wenn Sie tot von einem Bus umfallen , muss ich das beibehalten, was ich bei Ihnen gekauft habe.

Wenn Sie mir diese Fähigkeit nicht geben, werde ich Sie nie wieder einstellen oder empfehlen, Sie für alles einzustellen, mit dem ich zu tun habe.

Wenn Sie nun eine Binärdatei verkaufen , z. B. eine "benutzerdefinierte Schrumpffolie", bei der Sie dasselbe Produkt an andere Unternehmen verkaufen können, ist es sinnvoller, das Modell "weniger Informationen" auszuarbeiten, da Sie jetzt ein Produkt verkaufen.

Der Unterschied besteht darin, dass ich mit der Quelle die Möglichkeit kaufe, den Quellcode später zu ändern. Mit Binary kaufe ich mir jedoch einfach die Möglichkeit, es auszuführen.

Paul Nathan
quelle
+1: Basierend auf dem "Busfaktor" sende ich unerwünschte Designdokumente usw. an meine Kunden und dränge sie aktiv dazu, meine Builds gelegentlich selbst zu replizieren. "Taking the High Road" hat so gut funktioniert, dass ich gerade neue Arbeiten ablehne. Ich habe auch die Erfahrung gemacht, dass der Versuch, die metaphorischen Gonaden einer Person zu quetschen, normalerweise keine vertrauensvolle Beziehung erzeugt, die zu wiederholten Geschäften führt.
Bob Murphy