Boss ha paura di usare un sistema di controllo delle versioni per un nuovo progetto, dovrei comunque?

7

Vedi link

La mia domanda è simile, ma qui ci sono le principali differenze nel mio scenario:

  • Stiamo iniziando un nuovo progetto da zero, usando PHP e la tecnologia web. Non ci sarebbero tempi morti nello sviluppo come lo adotteremmo dall'inizio, se avrò la mia strada.

  • Il mio team di sviluppo è composto da me e dal mio capo. Siamo il dipartimento "IT" di un'azienda relativamente piccola. C'è un altro operatore IT che fa il supporto desktop ma non lo sviluppo.

  • Il mio titolo di lavoro è programmatore; il mio capo è IT Manager. Il livello superiore del management piace al mio capo. Piacciono anche a me, ma probabilmente non abbastanza per darmi l'autorità di scavalcarlo.

L'app Web sostituirà un'applicazione legacy di FoxPro senza alcun controllo del codice sorgente. Infatti, a causa dei requisiti legali, è stata presa la decisione (prima dell'assunzione) di inserire l'app in 7 programmi completamente separati - non solo i file che calcolano le cose che possono variare a seconda dello stato - ma l'intera directory è stata copiata, 7 volte e diversi stati sono stati assegnati a diversi sviluppatori. Le cose divergevano da lì. L'idea del mio capo di controllo della versione è di copiare e incollare interi file sorgente dallo stato in cui sta lavorando, in tutti gli altri stati, sovrascrivendo così quei file. Piccole modifiche vengono registrate manualmente nei file di testo e devono essere copiate e incollate dallo sviluppatore per lo stato di destinazione. Questo non funziona sempre così bene. Sono accusato di aver cambiato le cose e di averle provocate un'interruzione quando questi file sono stati incollati.

La proposta del mio capo, incollata direttamente da un'email:

  • Gli aggiornamenti devono essere inviati come pacchetti nella cartella SUBMISSIONS. Il pacchetto dovrebbe contenere tutti i file rilevanti e un file 'UPDATE.NFO' che contiene una descrizione dell'aggiornamento, un elenco di tutti i nuovi file inclusi (con descrizioni) e un elenco di tutti i file modificati con i dettagli delle modifiche.

  • I pacchetti di aggiornamento dovrebbero concentrarsi su un singolo elemento e non allontanarsi dal suo scopo. Il codice dovrebbe essere progettato per essere modulare e riusabile quando possibile.

  • Tutti i pacchetti inviati devono essere installati nell'ambiente di test di ciascun sviluppatore subito dopo l'invio. Ogni sviluppatore deve rivedere la nuova aggiunta e comunicare eventuali dubbi sulla sua installazione all'ambiente di produzione. Prima di essere caricato nell'ambiente di produzione, è necessario tenere un aggiornamento del pacchetto standard per almeno 3 giorni lavorativi per questo processo di revisione. Gli aggiornamenti / correzioni ad alta priorità possono saltare questo requisito.

(email finale)

Il motivo per cui il controllo del codice sorgente è stato inventato è di rendere tutto automatico, giusto? Ho suggerito la sovversione, perché è quello che ho usato al college. A Boss non piace la sovversione perché "Fa casino del codice" e le persone su Internet gli hanno detto che non andava bene. (Dove sta guardando ???) Non so se non gli piaccia solo la sovversione, o tutti i prodotti di controllo del codice sorgente (non ha ancora risposto a questa domanda). Non sto chiedendo un confronto / contrasto di sistemi diversi come svn vs git, posso farlo da solo. Sto cercando una terza parte che possa presentare un argomento logico per l'uso di una forma di controllo della versione SOME.

Per favore, colleghi coder, aiutami. Se qualcosa che puoi dire, indirizzata al mio capo, avrebbe un effetto sulla mia situazione, ti prego di venire avanti. Il mio capo può essere ragionato se viene presentato un argomento logico. Sto mettendo avanti il mio sforzo personale per convincerlo, attraverso la ricerca e la dimostrazione, ma se le persone della comunità di sviluppo sono in modo schiacciante dalla mia parte, penso che potrebbe riconsiderare. Per essere onesti, devo anche chiedere agli oppositori del controllo di versione di parlare. RSVP.

O sbaglio del tutto? Il controllo del codice sorgente è davvero necessario nella mia situazione? Questo è il nostro principale software business-critical di cui stiamo parlando, quindi finirà per non avere dubbi. Ma ci sono solo 2 sviluppatori (ora).

LA MIA DOMANDA REALE: Se non riesco a convincerlo, ci sarebbe alcun senso per me usarlo solo per me stesso? Sto parlando come qualcuno con un'esperienza molto limitata che effettivamente usa svn; tutto quello che so davvero è il checkout e il commit. Quali sono le caratteristiche del controllo del codice sorgente (potrebbe includere altri prodotti oltre a svn) che potrebbero essere di aiuto nel mio sforzo di sviluppo individuale?

E per favore nessun commento "Ricevi un altro lavoro". Lo so, gente, credimi, lo so. Prima che si presenti, si può presumere che io sia pazzo. Forse sono solo una ventosa per la sfida o un semplice vecchio masochista. Ma considera solo un'opzione.

    
posta user42069 03.12.2011 - 04:38
fonte

4 risposte

27

Non chiederglielo. Non dirglielo. Mostralo.

Installa svn, o git, o qualunque cosa ti piaccia su qualche macchina in più. Esercitatevi a usarlo da soli fino a quando non vi sentite a vostro agio non solo per usarlo, ma per spiegarlo. Se hai intenzione di metterlo a tuo agio con il tuo nuovo sistema, avrai bisogno di essere più che comodo con te stesso. Dovrai essere in grado di aiutarlo a riprendersi facilmente quando rovina un'unione o controlla qualcosa nel posto sbagliato.

Quando sei pronto, mostragli esattamente di cosa stai parlando. Dimostragli che non "fa casino" di nulla. Fai notare che non ti permette semplicemente di recuperare facilmente qualsiasi versione precedente del tuo codice, ma ti permette anche di sapere esattamente cosa è cambiato tra le due versioni.

Fai notare che se succede qualcosa al server (bug grave, virus, hacker, crash del disco ...) assomiglierai entrambi all'eros se riuscirai a ricostruire istantaneamente la versione necessaria. Fai notare, inoltre, che ti sembrerà il doppio se riesci a produrre qualsiasi su richiesta. Cerca la tua vecchia e-mail e compila un elenco dei problemi che hai avuto nell'ultimo anno che avresti potuto evitare con il controllo della versione.

Offri a lui un cheat che renderà più facile per lui utilizzare il tuo sistema di controllo delle versioni.

Infine, suggerisci alcune opzioni ma lascia a lui la decisione . Dovresti configurare il tuo server o utilizzare uno dei molti servizi ospitati ? Dovresti usare svn, git o qualcos'altro? Dovresti eseguire la migrazione di tutti e sette i progetti al sistema o provarne uno o due all'inizio?

    
risposta data 03.12.2011 - 06:25
fonte
25

I vantaggi del controllo del codice sorgente vanno ben oltre il permettere a più sviluppatori di lavorare su un singolo pezzo di codice. Eric Sink, il fondatore di SourceGear , elenca alcuni validi motivi per usa il controllo del codice sorgente come unico sviluppatore :

- It's an undo mechanism.
- It's a historical archive.
- It's a reference point for diff.
- It's a backup.
- It's a journal of my progress. 
- It's a server. 

Eric ha anche una Guida al controllo del codice sorgente dei principianti. C'è un tutorial Mercurial online gratuito disponibile da Joel Spolsky, Mercurial è un popolare sistema di controllo delle versioni distribuito.

Come passo successivo ti suggerisco di iniziare a utilizzare il controllo del codice sorgente localmente sul tuo computer, come unico sviluppatore. Molto presto il tuo capo noterà che sei capace di pura magia, come dire in pochi minuti, se non in secondi, fino a che punto un bug super-critico va e poi gli diresti esattamente quali account dei clienti sono stati colpiti e devono essere risolti prima di tutto l'inferno si scatena. O essere in grado di annullare qualsiasi cambiamento, il CEO disapprova il super veloce.

E infine, prima di provare a convincere il tuo capo, potresti voler approfondire l'argomento obiezione di gestione . Sono 101 delle vendite.

Se non si riesce - andare avanti non appena è praticamente possibile, non è il caso di sprecare il tuo tempo inclinando i mulini a vento.

    
risposta data 03.12.2011 - 06:17
fonte
9

Sì, utilizzare il controllo del codice sorgente, anche se solo per te, è assolutamente utile. Git, ad esempio, funziona molto bene per uno sviluppatore autonomo e ti permette di fare cose come il branch e l'unione (con il minor costo possibile) e la versione delle modifiche man mano che fai.

SVN - o qualsiasi altro sistema di controllo della versione, in realtà - ti consente di farlo anche tu, ma l'unione è un po 'più problematica.

    
risposta data 03.12.2011 - 04:50
fonte
3

If I can't convince him, would there be any point to me using it only for myself?

Sì. C'è il vantaggio di usarlo solo per te stesso. Ottieni la cronologia delle modifiche in modo da poter vedere le differenze.

No. Non c'è alcun vantaggio perché il tuo capo ha condannato il tuo progetto a un sacco di rilavorazioni inutili perché non ha funzionato.

    
risposta data 03.12.2011 - 04:58
fonte

Leggi altre domande sui tag