Se si acquisisce il codice di una terza parte, quali sono i risultati finali?

4

Il mio team deve assumere un progetto da un'azienda esterna. Hanno fornito l'ultimo stato del bagaglio a noi come un file zip e stanno cercando di convincerci, di accettarlo come una consegna completa del loro sviluppo.

Mi oppongo strongmente a questo, poiché considero il codice sorgente come il seguente:

code = cronologia dei singoli commit + struttura del progetto (leggi rami, tag) + documentazione (tanto quanto c'è)

In altre parole lo considero come una consegna molto incompleta di un progetto, che non farebbe altro che rendere lo sviluppo futuro più incline agli errori. Inutile dire che non possiamo contare sul supporto degli ex sviluppatori per le domande che sorgono a causa del codice legacy.

Sono consapevole che questa domanda potrebbe essere considerata un po 'basata sull'opinione pubblica, ma forse è ancora possibile trovare fatti concreti che definiscono il codice sorgente e quando può essere considerato completo?

C'è qualche letteratura che posso citare su quell'argomento?

    
posta Dr.Elch 19.05.2017 - 05:51
fonte

4 risposte

10

Ti viene offerta una versione con fonte. Quello che stai chiedendo è il repository del codice sorgente.

Nessuno sviluppatore moderno vorrebbe essere senza la cronologia nel repository.

La domanda è: quanto vale per te? Hai guardato il contenuto della zip? Ti hanno lasciato un casino orribile con cui staresti meglio senza? È in uno stato utilizzabile? Compilano anche?

Non hai spiegato perché sono riluttanti a darti di più. Mi dispiacerebbe pensare che semplicemente non usassero il controllo del codice sorgente ma ho sentito storie peggiori.

Se inizi a litigare sulla definizione del codice sorgente o sulla rivendicazione di trattenerti al contratto, le cose andranno giù in rovina. Devi capire perché stanno trascinando i loro piedi su questo. Potresti chiedere qualcosa che non hanno o qualcosa che li metterebbe in imbarazzo o qualcosa che non avrebbero mai pensato che avresti voluto o qualcosa che semplicemente non capiscono come darti. Una piccola diplomazia potrebbe risolvere questo mistero e darti un'idea migliore su come procedere.

Hai i tuoi problemi. Loro hanno loro. Mostra loro che tieni a loro e loro potrebbero decidere di prendersi cura dei tuoi. Non bruciare mai i ponti con persone che hanno già toccato il codice. Non sai mai quando una telefonata potrebbe farti risparmiare settimane di lavoro.

    
risposta data 19.05.2017 - 06:18
fonte
5

È tutto ciò che hai nel contratto. Se il contratto scrive la consegna deve includere la documentazione, la cronologia delle revisioni deve quindi essere consegnata. Altrimenti, potresti non avere motivi legali per chiedere altro oltre al codice sorgente.

Scrivere documentazione richiede tempo e non dovrebbe essere parte della consegna a meno che non sia stato concordato. Poiché la società è un'entità esterna, non ha la responsabilità di fornire segreti interni come i commit di revisione a meno che non sia specificato nel contratto.

I risultati finali sono quelli specificati nel contratto. Potresti chiedere di più (il meglio che possono fare è solo un NO), ma non sono sicuro che funzionerà senza ulteriori pagamenti.

    
risposta data 19.05.2017 - 06:10
fonte
2

La storia in realtà non ti dà nulla per cui valga la pena discutere. Hai mai intenzione di tornare a una versione precedente? Vuoi vedere quale membro del team esterno ha introdotto un bug?

Analogamente agli altri metadati del progetto, anche se hai letteralmente avuto il tutto con i risultati dei test ecc. non avrai le conoscenze interne necessarie per leggerli, comprenderli e farne uso.

Vorrei chiedere:

  • Una versione di lavoro compilata del software (o ammissione che è incompleta)

  • Codice sorgente completo per quella versione (o più recente) e istruzioni su come compilare.

  • Elenco di, copie e licenze per tutti i componenti di terze parti utilizzati.

  • Tutte le risorse come dati / opere d'arte ecc. in entrambi i formati modificabili e in uso

  • Tutta la documentazione di architettura, codice, apis e interfacce e manuali utente prodotti o in produzione.

  • Qualsiasi database utilizzato

risposta data 19.05.2017 - 11:53
fonte
0

Se non è specificato nel contratto, non è richiesto da loro.

Dato che stai assumendo il controllo del progetto, non c'è molto incentivo per la gestione della società esterna a fornire il repository del codice sorgente, non otterranno più denaro per questo.

Gli sviluppatori potrebbero sentirsi in modo diverso, ma di solito non hanno voce in capitolo su come dovrebbe essere fatto.

Assumendo il progetto, presumo che continuerai lo sviluppo o la manutenzione del suddetto progetto. Potresti essere in grado di fare qualche progresso parlando con chiunque ti paghi (il "cliente") per assumere i codici e / o la persona che paga la società esterna per eseguire lo sviluppo e consegnare i codici a te.

    
risposta data 19.05.2017 - 09:13
fonte