La leadership non vede valore nel processo standard per la configurazione della macchina e l'orientamento del nuovo sviluppatore


9

Circa 3 mesi fa il nostro principale sviluppatore web e designer (stessa persona) ha lasciato l'azienda, i pascoli più verdi sono stati il ​​motivo della partenza. Buono per loro, dico. Il mio problema è che il suo dipartimento era completamente privo di documenti. Le cose sono state difficili da quando il piombo è partito, c'è molta conoscenza sia delle conoscenze teoriche che usiamo per citare nuovi progetti sia delle conoscenze tecniche / di implementazione dei nostri prodotti esistenti che abbiamo perso a causa della sua partenza. Il mio ruolo normale è come product manager (per i nostri prodotti stessi) e come analista aziendale per alcuni dei nostri lavori di consulenza basati su progetti. Mi sono insegnato a programmare l'anno scorso e nel tentativo di continuare ad andare avanti ' ho assunto il compito di configurare il mio laptop come una macchina di sviluppo con la speranza di implementare alcune delle più semplici richieste di funzionalità e di correggere alcuni dei bug più semplici che vengono inviati al nostro sistema di ticketing. Ma nessuno sa come prendere un nuovo computer Windows e configurarlo per funzionare perfettamente con le nostre app di produzione.

Ho richiesto al mio capo, che è ancora in contatto con lo sviluppatore che se ne è andato, di chiedere loro di documentare e creare un processo a bordo di un nuovo sviluppatore, installazione di software, pacchetti richiesti, processo da distribuire ai server delle applicazioni di produzione, ecc. questo esiste e sto ruotando le ruote cercando di far funzionare il mio computer come una macchina di sviluppo funzionale. Ma non sembra capire la necessità che esista un tale processo. Apparentemente il nuovo sviluppatore che ha sostituito quello che ha lasciato ha usato una macchina preconfigurata per il nostro ambiente, quindi anche il nuovo sviluppatore non poteva impostare una nuova macchina se avessimo aggiunto un altro sviluppatore.

La mia domanda è in due parti:

  1. Sbaglio nel presupporre che dovrebbe esistere un processo di integrazione e configurazione di un nuovo computer per far parte del nostro ecosistema di sviluppo?

  2. Sono un bambino whinny e dovrei capire il processo e creare un documento per conto mio?


1
Gran parte di ciò dipende dalla tecnologia utilizzata e da altri dettagli. In alcuni stack tecnologici è possibile trovare le dipendenze più importanti che devono essere installate in alcuni file di configurazione, in altri casi questo deve essere documentato. Penso che lo sviluppatore che ora lavora con il sistema dovrebbe sapere meglio quali informazioni sono assolutamente cruciali.
Thorsten Müller,

2
E questa dovrebbe essere una lezione di vita. Preparare le cose è metà del lavoro, assicurandoti che tutto non collassi quando te ne vai è l'altra metà.
MrFox,

Sta iniziando a frustrarmi, sto cercando di essere proattivo, ma ci sono alcuni problemi di configurazione che mi mancano. (Pubblicherò cose specifiche di errore su overflow) Lo stack è il seguente: server MS SQL, Visual Studio 2008, Visual Source Safe, IIS 7, codice app ASP.NET.
OpenCoderX

1
Visual Source Sicuro eh? Se è così, sospetto che qualunque cosa il ragazzo precedente non sia stato terribilmente geniale. Poi di nuovo, almeno c'è il controllo del codice sorgente.
Wyatt Barnett,

1
Sono un GIT che muore duro. Una volta che avrò una versione del sito in esecuzione localmente, userò GIT per tenere traccia delle mie modifiche, quindi eseguirò il check-in solo del mio ramo master GIT su VSS. Controllo del codice sorgente nel controllo del codice sorgente.
OpenCoderX

Risposte:


5

Prima di tutto, è strano che uno sviluppatore debba configurare l'ambiente di lavoro. Questa attività è in genere per gli amministratori di sistema. Quindi, considerando che questo non è qualcosa che dovresti fare, hai il diritto di aspettarti che qualcun altro lo faccia per te.

Nella maggior parte (se non in tutte) le società è previsto un periodo di preavviso. Di solito varia da una settimana a un mese. Ma comunque quel tempo è sufficiente per consentire alla persona in partenza di aiutare la società a fare un po 'di documentazione, aggiungere commenti al codice, documentare l'architettura, ecc. Temo che sia troppo tardi per farlo ora, ma non dimenticartene la prossima volta che qualcuno se ne va.

Hai assolutamente ragione aspettarti che ci dovrebbe essere un processo per la creazione di un nuovo ambiente. In effetti, se la tua azienda cresce e hai più sviluppatori, dovrai affrontare lo stesso problema _ questo potrebbe essere un argomento pesante per convincere il tuo capo. Potresti anche usare l'argomento per convincere la direzione ad assumere un amministratore di sistema per tali compiti (presumo che tu non ne abbia uno dal momento che affronti il ​​problema). Oltre a impostare l'ambiente di sviluppo, se si dispone di una nuova macchina, questa deve essere integrata nella rete locale, ecc.


Abbiamo un amministratore di sistema e la loro posizione è quella di configurare la macchina con accesso alla rete di base, diritti utente (Active Directory) e installare qualsiasi software. Ad esempio, ho dovuto lavorare con l'amministratore di rete per installare Visual Source Safe e Visual Studio, ma dopo l'installazione è lì che finiscono le loro conoscenze. Non è mai stato nelle loro intenzioni fare quelle configurazioni.
OpenCoderX

1
Forse sono troppo viziato _ il nostro amministratore di sistema può persino eseguire query sql quando pubblica il progetto (senza conoscere sql))). In questo caso devi assolutamente avere la documentazione))
superM

In molte aziende, in particolare quelle paranoiche o gestite in modo incompetente, il "periodo di preavviso" è il tempo impiegato per andare a piedi dall'ufficio risorse umane o dal direttore per consegnare le dimissioni per essere scortati fuori dalla porta.
jfrankcarr,

Penso che il vantaggio che è rimasto abbia dato diverse settimane di preavviso, ma non so quali cose abbia fatto per prepararci alla sua partenza. Penso che per lo più abbiano addestrato il sostituto, che è andato bene, ma ha avuto la macchina che usano installata dalla persona che ha lasciato. Avrei dovuto bloccarmi un po 'di più la situazione, ma fino a quando la loro programmazione di partenza per me non era solo un hobby. Sono stato ripreso quando ho scoperto che il nostro nuovo sviluppatore sapeva quanto me sulla configurazione di un nuovo sistema.
OpenCoderX

Questo sarà diverso per le diverse aziende, ma ovunque ho lavorato, il processo di configurazione della macchina ha dovuto essere documentato come requisito di deposito a garanzia.
JohnL

5

Sbaglio nel presupporre che dovrebbe esistere un processo di integrazione e configurazione di un nuovo computer per far parte del nostro ecosistema di sviluppo?

No. Avere questi processi eviterà i problemi che hai già affrontato. In alcune organizzazioni più grandi, esiste un'immagine disco standard di come dovrebbe essere la macchina di uno sviluppatore. Quando viene assunto un nuovo sviluppatore, un computer disponibile con le giuste specifiche hardware viene cancellato e ripreso utilizzando questa immagine disco "sviluppatore". Una lista di controllo standard (a volte include l'installazione di software post-imaging per determinati strumenti non inclusi nell'immagine) è seguita dal personale tecnico che lo fa per garantire che tutti i computer degli sviluppatori si avviino allo stesso modo (gli utenti possono modificarli e modificarli dopo averli loro - a loro rischio e pericolo!).

Allo stesso modo, alcune applicazioni con un'installazione notoriamente complessa hanno documenti che spiegano ai nuovi sviluppatori come estrarre il codice, configurare il server, costruire e distribuire localmente l'applicazione. Un'applicazione ha anche uno script di installazione solo per le workstation per facilitare questo processo.

Sono un bambino whinny e dovrei capire il processo e creare un documento per conto mio?

Lo sei, ma solo un pochino. Una cosa è dire che questo avrebbe dovuto essere tutto documentato molto tempo fa e che lo sviluppatore che se ne sarebbe andato avrebbe dovuto effettuare un trasferimento completo delle conoscenze ai loro giorni di sostituzione (o settimane se possibile) prima di partire. Sembra che nulla di tutto ciò sia accaduto, e ora è tutto in passato.

Così quello che ora? Dubito che lo sviluppatore che ha lasciato sarà di grande aiuto. Hanno già un nuovo lavoro diurno e chissà con cosa sono impegnati nella propria vita. Dubito che ci siano motivi legali che il tuo manager potrebbe usare per costringerli ad aiutare. Sarebbe bello se impiegassero qualche ora del loro tempo per rispondere ad alcune domande, ma non ci contare. Sembra che tu sia bloccato a capirne la maggior parte da solo. Questo ti dà l'opportunità di documentare accuratamente il processo corretto e farlo nel modo giusto. Chi ti segue ti ringrazierà per questo! In bocca al lupo!


1

Per prima cosa, devi scendere da Visual SourceSafe. Penso che debba essere detto. Per lo meno, passa a TFS. E ci sono anche altre opzioni.

Ora che è fuori mano. Penso che questo sia il caso di "se vuoi che le cose siano fatte bene ..." Il tuo obiettivo finale dovrebbe essere che uno sviluppatore possa accendere la sua macchina appena installata connettersi alla fonte, ottenere le ultime, premere f5 (o qualunque cosa tu usi per il tuo eseguire il collegamento dell'applicazione) e avere un'applicazione funzionante.

Un'opzione è creare un ambiente di lavoro da zero e utilizzarlo come immagine di sviluppo di base. Quando arriva uno sviluppatore, tutto ciò che devi fare è distribuire quell'immagine sulla sua macchina e dovrebbe funzionare.

Ci sono alcuni libri su come spostare il tuo ambiente verso uno stato più pratico. Mi piace la consegna continua e l' integrazione continua della serie Fowler, ma ci sono altre opzioni là fuori.


1

Quando ho iniziato il mio lavoro attuale, avevo una procedura documentata per la configurazione di un PC sviluppatore.

Ho seguito la procedura da solo, evitando decisamente l '"aiuto" del team esistente.

(La conoscenza deve essere incorporata nel documento, non lo sviluppatore che è stato il più lungo.)

Ho contrassegnato la procedura con le modifiche della linea rossa in cui era errata o incompleta e una settimana dopo c'erano due cose, una procedura che funzionava e un PC di sviluppo funzionante.

Dopo un errore del disco rigido un anno dopo, ci sono voluti 2 giorni per ricostruire.

Dillo al tuo capo: se il disco rigido si guasta su quel PC, non ci sarà sviluppo!

Ho deciso che 2 giorni sono stati uno spreco di due giorni ....

Ora utilizziamo macchine virtuali con immagini del disco per ogni progetto di sviluppo.

Il programma di installazione consiste nel copiare l'immagine della VM sul PC di destinazione e avviarla. C'è un'icona chiamata "runme" su cui fai clic, chiede il tuo nome utente e quindi cambia il nome utente utilizzato per accedere al codice sorgente al tuo. Cambia anche il campo dell'autore del documento vuoto dell'IDE con il tuo nome.

(Ho scritto runme in circa 2 ore, siamo sviluppatori, programmiamo via i nostri problemi)

I nostri PC per sviluppatori sono macchine standard ad eccezione di un server VM.

Stiamo usando virtualbox, che non è costoso.

L'uso di macchine virtuali rende la sostituzione di una macchina un lavoro da 20 minuti senza sforzo . Questo compito sarebbe più veloce se avessimo Gigabit Ethernet su cui copiare la VM.

Discretezza completa: sono il capo squadra in cui lavoro e la mia direzione mi dà un freno (-ish) gratuito.


Mi sono spesso chiesto di fare VM invece di impostare tutto sul PC. Avere una macchina virtuale piacevole e incontaminata per lo sviluppo e non preoccuparsi che i ragazzi IT abbiano forzato un aggiornamento a rovinare il sistema di sviluppo.
Joel Rondeau,

Una volta stavo eseguendo il debug di un programma C ++ che interagiva con molte DLL di sistema quando veniva eseguito un aggiornamento antivirus. Ha cambiato alcune DLL. Immagino che non avrei mai più riprodotto quel test.
Tim Williscroft,

0

Dovrebbe esserci della documentazione che dice quale software è necessario per compilare ed eseguire l'applicazione.

Dovrebbe esserci anche la documentazione che delinea ciò che richiede una casella client per eseguire l'applicazione.

Non sono la stessa lista.

Se la tua azienda assumesse un nuovo sviluppatore, per quanto tempo dovrebbe iniziare a programmare? Un giorno? Una settimana? Senza sapere quale software è necessario per compilare il codice, questo può essere un processo di prova ed errore che potrebbe richiedere del tempo. Ma dovrebbe essere qualcosa che deve essere fatto una sola volta.

La mia domanda è: cosa sta facendo il nuovo sviluppatore? Questo dovrebbe essere il suo lavoro, non il tuo. È il sostituto dell'altro ragazzo. Sì, fa schifo che sia entrato in un ambiente senza documentazione, ma dovrebbe essere suo compito documentare le cose. Fallo sedere e capire qual è l'ambiente di sviluppo e documentarlo. Fagli capire e documentare ciò che è necessario per eseguire l'app su una casella client.

Per quanto riguarda il contatto con il vecchio sviluppatore, non lo farei. IMHO, se uno sviluppatore lascia un'azienda senza documentazione o trasferimento di conoscenze, spera di essere chiamato a fare un lavoro a un tasso di consulenza. Non è professionale e non dovrebbe essere premiato. Sì, potrebbe occorrere del tempo extra per capirlo da soli, ma il team imparerà qualcosa nel processo e la documentazione prodotta sarà aggiornata e aggiornata.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.