2009-02-01 7 views
6

Il mio capo è un po 'stretto quando si tratta di tecnologia e approva di rado progetti che non incidono direttamente sulle entrate. Egli (erroneamente) ignora il lato dei costi dell'equazione molte volte, specialmente per progetti tecnologici in cui è difficile approssimare i costi. Qualcuno qui ha documenti bianchi, articoli, ecc. Per un razionale argomento basato sul rapporto costi-benefici per la creazione di un ambiente di sviluppo adeguato (server di sovversione, sviluppo, staging e produzione)?Come posso giustificare (costi-benefici) il tempo necessario per impostare un ambiente di sviluppo adeguato (Subversion)?

Grazie!

+0

Penso che il fatto che tu abbia SVN al momento rende questa domanda meno ovvia. Un manager potrebbe evitare di formalizzare qualcosa dal timore che un processo mal concepito possa essere reattivo. Ci sono molte opzioni e trovare la giusta combinazione potrebbe richiedere una serie di modifiche minori. – Mark

+0

Sto anche supponendo dalla tua formulazione che non proviene da uno sfondo di sviluppo, quindi stai gestendo efficacemente te stesso. Ovviamente dovrai chiarire quali sono i tuoi obiettivi e dargli continui rassicurazioni sui miglioramenti, piuttosto che ottenere il permesso. – Mark

+0

Stavo per fare una domanda sui costi, ma penso che queste risposte la coprano. Sarebbe bello se qualcuno modificasse (Subversion) dal tuo titolo per generalizzarlo un po 'di più. – Makach

risposta

6

Martin Fowler aveva un articolo su benefits of Continuous Integration. Ci vorrà del tempo per configurare una build automatizzata. Nell'ultimo progetto in cui ho introdotto l'IC ci sono voluti uno sviluppatore al giorno per far funzionare le cose circa una settimana per avere tutto a posto. Ci sono così tanti vantaggi che è difficile elencarli tutti, ma qui ci sono quelli che ci hanno aiutato:

  • incoraggia l'integrazione frequente - aiuta tutti rimane sulla stessa pagina
  • test automatizzati - ogni volta che qualcuno controlli in fa in modo che le questioni sono trattate con i primi
  • distribuzione automatica - un solo clic e in pochi minuti l'ultima versione del nostro software è in tutti i server

Per me, il più grande cambiamento è stato l'ultimo. Ha trasformato un processo di un'ora che era soggetto a errori (ti sei ricordato di aggiornare il numero di versione remoto? Oh crap ...) in un processo di 5 minuti che potremmo eseguire il rollback se qualcosa fosse andato storto.

Quando stavo imparando a configurare CI, this article by Carol Lotz era infinitamente utile. Passa attraverso, passo dopo passo, la creazione di un progetto complicato.

6

Wow, cosa stai utilizzando per il controllo del codice sorgente in questo momento? Proprio niente? In caso contrario, si dovrebbe solo farlo e configurare un server Subversion. La cosa bella è che non devi chiedere l'approvazione perché non c'è bisogno di soldi per cambiare le mani.

Se non riesci nemmeno a farlo senza chiedere, ti suggerisco di trovare un capo più illuminato.

+0

Stiamo utilizzando un repository SVN di base, ma tutti gli sviluppatori mantengono una copia di sviluppo locale sulle loro macchine e quindi lo inseriamo in un ramo sul repository SVN e quindi direttamente nella produzione. Mi sembra che abbiamo davvero bisogno di formalizzare il processo e avere un processo di pubblicazione multi-step. –

+0

quindi non è come giustificare l'uso di SVN, ma come ottenere un processo di sviluppo completo, costruire e rilasciare il sistema. Avresti dovuto dirlo, è una domanda completamente diversa. – gbjbaanb

4

Direi che il costo di non utilizzare alcun tipo di sistema di controllo del codice sorgente si rifletterà nel costo potenziale di perdere un po 'di codice o di dover eseguire la riconciliazione manuale di più versioni simultanee dello stesso codice, il che equivale a un costo diretto e misurabile nell'orario di lavoro.

0

Sono d'accordo con Greg. Poiché Subversion, CC.net, TortoiseSVN, AnkhSVN sono tutti gratuiti, dovresti essere in grado di creare un bel sistema CI per il cambiamento.

0

Non conosco alcun documento valido come hai chiesto, ma puoi dirgli che molte persone qui in SO (parlo per me) pensano che il tuo capo abbia sbagliato completamente e sia miope. Rispondo incondizionatamente alla risposta di Greg.

2

È meglio chiedere il perdono per chiedere il permesso.

Basta configurare il server di controllo del codice sorgente, senza prima chiedere. Se succede qualcosa di brutto, scusa e vai avanti. Quando la configurazione del controllo sorgente si rivela utile, basta dire "oh sì, ho impostato un sistema di controllo del codice sorgente" e tutti saranno piacevolmente sorpresi.

1

Oltre al commento di Scott solo facendo (parafrasato), se si inizia con un sistema distribuito, come git o bazaar invece di Subversion, si può iniziare con avere in esecuzione localmente senza gli altri anche un impatto, e poi diffonderlo tra gli altri sviluppatori nel tempo.

0

Potrebbe eseguire un'analisi dei rischi? Questa è una disciplina di project management accettata e consiste essenzialmente nell'enumerazione dei rischi, nel tentativo di quantificarli in termini di probabilità e impatto e nell'identificazione di possibili misure di mitigazione. Questo approccio dovrebbe funzionare almeno per il controllo del codice sorgente, a meno che il tuo capo ignori volontariamente i rischi, il che sarebbe molto ... coraggioso da parte sua. :-)

Se si verifica un disastro del codice sorgente, il tuo capo deve sembrare piuttosto stupido (e spericolato) e avrai un aspetto preveggente. Anche il suggerimento di Peter è buono - impostalo per te stesso e poi, quando qualcuno perde qualche codice sorgente, o qualche cambiamento, casualmente dire "Oh, l'ho fatto di recente ma ho semplicemente ripescato la versione precedente dal controllo del codice sorgente e ho perso solo circa 20 minuti di lavoro. Vuoi che ti imposti con un login? ")

Problemi correlati