È ragionevole NON fornire documentazione tecnica e unit test al cliente?

8

Come fornitore indipendente incaricato di scrivere un prodotto per una società, è ragionevole spedire solo il codice sorgente e la documentazione utente mentre si omettono documenti di progettazione, diagrammi di architettura, test unitari ecc. (in pratica qualsiasi altra cosa non strettamente necessaria per l'esecuzione il prodotto o estenderlo)?

L'obiettivo è rendere il prodotto finale estendibile per il cliente in modo che possano ulteriormente svilupparlo internamente, ma non gratuitamente. Avrebbero scavato a fondo nella fonte per dare un senso ad alcune decisioni progettuali, ecc. E saranno responsabili di scrivere i loro test completi per difendersi dalle regressioni introdotte.

L'idea qui non è rendere il codice inintelligibile. Vorrei solo creare un'opportunità futura per essere contattato per scrivere estensioni in virtù della "conoscenza interiore" e delle competenze che ho dall'essere l'autore originale.

Questo sarebbe considerato non etico?

Modifica: il contratto è attualmente in fase di negoziazione, quindi il problema di ciò che costituisce i deliverable finali non è stato deciso con decisione. Inoltre, avrei dovuto menzionare che manterrò la proprietà del prodotto. Concederò al cliente solo una licenza d'uso. Questo dettaglio fa la differenza se questo è considerato come una cattiva forma?

    
posta Bernie 29.07.2011 - 02:17
fonte

8 risposte

24

Per contratto dovrebbero essere intelligenti includere una sorta di clausola sull'ambito della documentazione che desiderano. Dovrebbero ricompensarti per averli presentati in un formato comprensibile e professionale (rifare lo schizzo del tovagliolo).

Non è immorale fare solo ciò che viene chiesto e pagato, ma fare il possibile per nascondere informazioni è semplicemente sbagliato.

Se mi dai una app scarsamente documentata e complicata con cui non riesco a lavorare, sono più incline a pensare che tu sia un cattivo programmatore di una sorta di genio di cui la mia azienda non può fare a meno. Costruisci una reputazione per fare le cose bene.

    
risposta data 29.07.2011 - 02:24
fonte
10

Li hai caricati per lo sviluppo dei test e dei documenti unitari? e hanno pagato la fattura? Se è così, allora hanno il diritto di ricevere ciò per cui ti hanno pagato.

Altrimenti la settimana prossima vedremo una domanda su p.se.com intitolata "Come costringiamo il nostro appaltatore a fornirci tutta la documentazione tecnica e i test unitari per i quali li abbiamo pagati?"

    
risposta data 29.07.2011 - 03:45
fonte
7

Stai solo facendo del male a te stesso. Se il loro staff interno guarda ciò che hai fatto e trova una completa mancanza di documentazione, penserà che sei un goofball e sarà meno in grado di trattenerti in futuro.

    
risposta data 29.07.2011 - 02:30
fonte
5

Vorrei chiederti quale di questi pensi ti descrive:

You're being paid for your expertise in designing and making software, establishing what the business problem is, and managing the project as a whole. You charge them a license fee, they don't own the software or the design, and you hand them the source code just to make them feel better - they really have no right to use it.

o

You're being paid for your time to design and make software for them. They know the business problem and they're managing the project. They own the design, the software, the source code, and all the work products you create during hours you bill them for. They have full rights to use all of that however they want.

Non cercare di combinare queste due impostazioni. Potresti caricare di più per il primo (dal momento che stai portando più abilità ad esso, e assumendo più rischi) o meno (dal momento che finiscono col possedere meno) o lo stesso (se pensi che queste cose si compensino.) Generalmente facciamo il primo, e ci rincuoriamo di volta in volta per essere grandi, non per tenere le informazioni. Se hai vissuto la vita al secondo posto e vuoi passare al primo modo, c'è molto di più rispetto a non condividere i tuoi documenti di progettazione.

    
risposta data 29.07.2011 - 18:55
fonte
3

Lo considero non etico, sì.

    
risposta data 29.07.2011 - 02:23
fonte
3

Ci sono davvero due domande che devono essere risolte qui, e le affronterò entrambe:

  • Devo avere per fornire quella documentazione al client?
  • Dovrei fornire tale documentazione al client?

Devo avere per fornire quella documentazione al client?

Devi fornire loro ciò che il tuo contratto dice che fornirai loro. A mio parere, ciò significa che se il codice sorgente non può essere ragionevolmente mantenuto / modificato senza fornire anche la documentazione, è necessario fornire anche la documentazione appropriata.

Potresti voler consultare Lavori fatti per il noleggio ai sensi della legge sul copyright del 1976 dell'Ufficio del copyright degli Stati Uniti a verifica se la documentazione, i test unitari, ecc. sono effettivamente di proprietà del tuo cliente. Se lo sono, vorresti sicuramente fornirglieli.

Dovrebbe fornire tale documentazione al client?

Se vuoi di nuovo fare affari con loro, o se vuoi che ti raccomandino ad altri, allora devi fare tutto il lavoro necessario per trasformarli in entusiasti fan della tua attività.

Ciò significa che è necessario consegnare loro il codice sorgente della più alta qualità, adeguatamente commentato e qualsiasi altra cosa che sarebbe interessata ad avere. Il mio consiglio sarebbe che quando vi incontrate per consegnare i risultati, siate pronti a dare loro i test unitari, ecc. Dopo aver passato tutte le cose più importanti, allora dite qualcosa come "A proposito, Ho anche generato test unitari per questi componenti. Vuoi anche quelli? "

Lavorare per generare lealtà con i tuoi clienti e in futuro avrai di nuovo la loro attività.

    
risposta data 29.07.2011 - 17:32
fonte
1

Supporrei che a questo punto ci sarebbe un contratto o un accordo scritto / documento in atto con l'elenco di tutta la documentazione che devi consegnare a loro.

In caso contrario, potresti chiarire loro che la personalizzazione del prodotto, oltre a quella nelle guide per l'utente, richiederà una conoscenza aggiuntiva dei meccanismi interni del codice. E se sei in una posizione negoziale, potresti chiedere loro di contattarti per ulteriori miglioramenti e ottenere il pagamento per questo.

Da quanto ho capito, sei già pagato per scrivere il codice per il loro prodotto, cioè lo possiedono. Quindi possono considerarlo immorale se si esce senza documentare tutto.

Ti suggerisco di scrivere un documento con struttura a scheletro con un'architettura di alto livello e puntatori su dove cercare i miglioramenti chiave delle funzionalità. Quali sono i file chiave e così via. Se il tuo lavoro è buono, saranno felici di tornare da te per ulteriori compiti.

    
risposta data 29.07.2011 - 11:33
fonte
1

Mi piace questo articolo: link

Ciò che stai descrivendo non mi darebbe il Warm Fuzzy Feeling di poter lavorare ancora con te.

Potresti essere un genio, ma se cadi morto da A Bus , ho bisogno di mantenere ciò che ho comprato da te.

Se non mi dai questa abilità, non ti assumerò mai di nuovo o ti consiglierò di assumerti per qualsiasi cosa mi occupi.

Ora, se vendi un binario , ad esempio una "confezione personalizzata" in cui puoi vendere lo stesso prodotto ad altre società, è più ragionevole lavorare sul modello "meno informazioni" , perché ora stai vendendo un prodotto.

La differenza è che con la fonte, sto acquistando la possibilità di modificare il codice sorgente lungo la strada. Tuttavia, con binario, sto semplicemente acquistando la possibilità di eseguirlo.

    
risposta data 30.07.2011 - 01:34
fonte

Leggi altre domande sui tag