Cosa deve essere fatto per consentire a un team di sviluppo di ridurre al minimo le difficoltà con l'aggiunta di nuovi membri del team? [duplicare]

5

Lavoro in una piccola azienda di sviluppo web e sto gestendo tutto il PHP / MySQL / ecc. per un po. Sto cercando di migliorare le nostre pratiche per consentire una collaborazione più semplice man mano che cresciamo. Alcune cose che ho in mente sono:

  • Implementazione di un sistema di controllo delle versioni (controllo del codice sorgente)
  • Standard di codifica per la squadra (a meno che mandato da un certo quadro, ecc.)
  • Applicazione di una directory comune struttura per i nostri desktop (per scopi di backup, ecc.)
  • Web-based Compito / progetto / tempo / file / Password / contatto gestione e collaborazione app (ci abbiamo provato un po ', forse creane uno)

Che cosa gli sviluppatori più esperti considerano come primi passi necessari in quest'area? Raccomandi qualche libro? Una cosa da considerare è che la maggior parte delle nostre attività quotidiane comporta la manutenzione e l'aggiunta di funzionalità minori piuttosto che nuovi progetti e la dimensione della squadra sarà compresa tra 3 e 5.

Ho appena trovato una domanda relativa a team che si espanderanno da uno sviluppatore solista .

    
posta Travis 22.11.2010 - 21:37
fonte

4 risposte

9
  • Implementazione di un sistema di controllo delle versioni

Se questo significa controllo del codice sorgente e non lo stai facendo, fallo ora ORA. Non aspettare, non finisci nemmeno di leggere questo. Fallo. Se intendi inventare uno schema di pantaloni fantasia per numerare le tue uscite, allora è semplice. Prova questo ...

X.00 = versione principale che potrebbe interrompere la compatibilità o si desidera addebitare denaro per.

0.X0 = nuove funzionalità che non rompono le cose. Aggiornamento gratuito.

0.0X = correzioni di errori.

  • Standard di codifica per il team (a meno che non sia obbligatorio per un determinato framework, ecc.)

Ancora una volta, mantienilo semplice. Una pagina A4 è più che sufficiente.

  • Applicare una struttura di directory comune per i nostri desktop (a scopo di backup, ecc.)

Il tuo sistema di controllo del codice farà questo per te. Quando un dev esegue un controllo, otterrà la struttura della directory. Il tuo VCS è un backup, assicurati di eseguire il backup della macchina con il VCS su di esso. Tutto ciò che non è in VCS non è importante e non necessita di backup.

  • Attività / progetto / tempo / file / password basati sul Web / gestione contatti e app di collaborazione (abbiamo provato un po ', potrei semplicemente crearne uno)

Non sprecare tempo a crearne uno. Gli strumenti gratuiti in rete sono abbastanza buoni.

Inoltre vuoi ...

  • un sistema di integrazione continua. Quando un dev controlla qualcosa, deve sapere che non hanno rotto nulla, cioè. si costruisce in un ambiente pulito, non si è dimenticato di aggiungere nuove dipendenze, di eseguire test per dimostrare che non hanno provocato una regressione, il sistema distribuisce in un ambiente pulito.
  • un sistema di implementazione che include il rollback. Dovresti essere in grado di distribuire un nuovo sistema o spingere un aggiornamento con un singolo comando e annullare una versione non corretta altrettanto semplicemente.
risposta data 22.11.2010 - 23:16
fonte
6

Penso che la cosa importante che ti sei perso (dato che la maggior parte del tuo tempo è stata spesa per mantenere) sono i test unitari. Poiché la manutenzione di default richiede la modifica del codice esistente, i Test di unità ti aiuteranno a determinare in modo efficace se tali modifiche interromperanno qualsiasi altra cosa.

L'altra cosa che non vedo è un sistema di tracciamento dei problemi. Ancora una volta, se stai facendo un sacco di lavori di manutenzione, allora un buon sistema di tracciamento dei problemi è imperativo (anche se potresti già averne uno e non li hai menzionati).

    
risposta data 22.11.2010 - 22:17
fonte
2

Nel mio precedente lavoro su webdev, eravamo 5 sviluppatori che lavoravano.

  • Abbiamo usato con successo redmine per tenere traccia e creare nuovi progetti, supportato sovversione e mercuriale come versione sistema di controllo (VCS); in tandem. Quindi ai progetti non era proibito usare diversi VCS rispetto al resto. L'unica cosa che conta è che tu tenga traccia dei tuoi numeri di emissione e redmine faccia il resto.

  • Gli standard di codifica crescono per necessità. Quando il team inizia ad avere conflitti di fusione, tende a stabilire standard tra di loro per evitare i conflitti. È una buona esperienza di apprendimento.

Sono confuso dalla struttura della struttura di directory comune. Gli sviluppatori Web di solito sono bravi a pulire i computer e a configurare nuovamente il computer rapidamente. Se hai problemi a configurare di nuovo il computer, dovresti controllare la versione delle configurazioni web in modo tale che i tuoi progetti siano già configurati quando controlli il codice.

    
risposta data 22.11.2010 - 22:42
fonte
1

La chat è fantastica

Tutto ciò di cui hai veramente bisogno per collaborare, IMO, è qualsiasi cosa con la chat e il trasferimento di file e qualcosa come i documenti Google per il monitoraggio dei problemi. Ho trovato Skype come uno degli strumenti più utili in ogni azienda in cui ho lavorato.

La chat ha un valore inestimabile perché ti consente di informare le persone di problemi o preoccupazioni che non sono immediatamente bloccati senza dover aspettare e aspettare che finiscano un'altra conversazione, ecc. e tende ad avere un aspetto più immediato di e -mail.

Inoltre, l'unica cosa che mi piace dei processi Scrum è la situazione quotidiana, tranne che per chattarla all'incirca alla stessa ora del giorno. Nessuna sala riunioni attende. È più facile per le persone lavorare a casa quando si è malati o in attesa del tizio del cavo o qualsiasi altra cosa ... Ed è prezioso avere quella registrazione scritta in modo da poter documentare i problemi ricorrenti quando vedi le stesse cose che si ripetono più e più volte. Crea una stanza diversa per quel check-in giornaliero, in modo che non si tenga conto di tutti gli altri dettagli giorno per giorno che tendono a comparire in chat.

Allenamento su strumenti / codice precedente

Non ho mai visto più tempo sprecato per nient'altro. Se hai uno strumento a cui qualcuno non ha familiarità, familiarizzali con esso. Consegnali un buon libro. Invitali a sedersi con te per sessioni di debug occasionali su un IDE, ecc. Allo stesso modo con il codice che stai mantenendo o riutilizzando molto. Prova a documentarlo mentre presenti nuovi sviluppatori e fanno domande, ecc. Ma sicuramente siediti con le persone e parli del codice legacy prima di lanciarlo e dare loro molte attività di debug nella fase iniziale in modo che possano scavare un po 'di più prima di aggiungere funzionalità o riutilizzarne alcune parti.

Qualunque cosa tu scelga per Documention, Stick With It

Mantenere tutti i documenti in un unico posto, scritto con lo stesso strumento e accessibile allo stesso modo è enorme. Non farai in futuro a nessuno un favore, lasciando che le persone semplicemente doc, comunque, ovunque con quello che vogliono.

Chiedi a tutto il team di fare stime per progetti correlati

È estremamente utile per i principianti ottenere opinioni più esperte e in definitiva aiuta tutti a migliorare.

Problemi di configurazione di Nip in Bud

Sono stato in scenari in cui potrebbero essere necessari giorni per configurare una nuova macchina. Non ci sono scuse per questo. Ottieni tutti gli strumenti essenziali e i server preconfigurati su un'immagine build / ghost per tenerlo aggiornato man mano che vengono aggiunti nuovi elementi. Non dare per scontato che gli sviluppatori possano semplicemente gestire l'installazione dei propri contenuti. È facile dimenticare quanti strati di cose hai aggiunto nel corso degli anni.

Usa correttamente il controllo della versione

Alcuni dei suddetti problemi di configurazione che ho incontrato erano in gran parte dovuti a un altro team che non si sentiva a proprio agio con le diramazioni, costringendoci a ripetere circa 30 file di configurazione XML a mano (che non sarebbe mai dovuto accadere ) una volta al mese o giù di lì ogni volta che aggiornavamo una versione dell'app che mantenevamo. Se non sei ancora un utente esperto di VCS, diventane uno o noleggia uno. Inoltre, non lasciare che Maven, Ant e una versione obsoleta di Eclipse entrino in un file XML 15+. È davvero brutto.

Aggiornamento alle versioni più recenti di Tools / Frameworks / Librabries Quando possibile

Non si sa mai quando la roba diventerà obsoleta e improvvisamente un nuovo sviluppatore deve rintracciare qualcosa che non è più disponibile. Cose del genere possono anche accumulare tempo di accelerazione, anche se di solito questo problema verrà risolto creando immagini di tutto ciò di cui hai bisogno. Un altro problema che eviterai è quello di dover gestire una serie di aggiornamenti in un colpo solo.

    
risposta data 09.12.2013 - 20:43
fonte

Leggi altre domande sui tag