Consigli per programmatore solista la cui squadra si espanderà nel prossimo futuro [chiuso]


25

Da 4 anni sono lo sviluppatore solista di una piccola azienda. Abbiamo una manciata di prodotti ben affermati in un settore di nicchia. Presto assumeremo 1-2 sviluppatori e questo probabilmente cambierà il modo in cui le cose funzionano qui.

Anche se non avrò un titolo "reale", sarò "responsabile" di questa squadra. Quello che voglio fare è creare un dipartimento di programmazione molto organizzato e produttivo per la mia azienda. Ho ottenuto questo lavoro da solista fin dal college, quindi mentre sono diventato esperto come programmatore in questo settore, mi manca molta esperienza di programmazione di squadra. Sento che iniziare con il piede giusto sarà la chiave.

In questo momento sono solo io, alcuni computer e un server SVN. Sto cercando una guida generale sulla costruzione di una squadra da zero.


Una cosa che manca nelle risposte altrimenti buone è quindi: istruzioni su come i nuovi sviluppatori installeranno il loro nuovo ambiente di sviluppo. Ad esempio ottenere questo SDK, installare quell'IDE, installare FooTest, impostare il client YourSQL, ottenere questi script di build e inserirli qui, configurare NPM o pip o Maven o Webpack o qualsiasi altra cosa ... Dovresti creare una prima bozza, quindi lasciare il tuo primo assumere provalo e modifica.
user949300,

Risposte:


14

Metti in ordine la tua casa e assicurati che le cose siano predisposte per uno sforzo collaborativo.

  • Controllo versione - Hai detto che hai già un server SVN, il che è fantastico. Assicurarsi di aver stabilito il repository e organizzato i progetti in modo standardizzato.
  • Build automatici
  • Software di rilevamento problemi / bug
  • Test unitari / di integrazione
  • Server di integrazione continua

La configurazione e l'integrazione dei seguenti elementi nel processo di sviluppo rende molto più semplice coinvolgere le persone, tenere traccia di ciò che viene fatto e impedire che le cose diventino "disordinate".


Mentre tutte le risposte a questa domanda sono ottime, questa è la più vicina a ciò che sto cercando. Grazie Mads.
bufferz,

Ne ho uno che suggerirei di aggiungere: Revisione del codice. Aiuterà le nuove persone ad apprendere il sistema, a comprendere i nuovi contributi e a rendere tutti programmatori migliori. Imposta il sistema con lo strumento giusto e la mentalità che non è contraddittoria ma uno strumento per l'apprendimento, il miglioramento e il chiarimento.
BrianH,

Anche una wiki. E abituarsi a cicli di feedback molto brevi. Gli impegni avverranno ogni cinque minuti, otterrai conflitti di unione. Dovrai coordinare i refactoring più grandi. E non aver paura di lasciarti andare quando gli altri aumentano di velocità, ma hai delle recensioni e ddo accoppia la programmazione per evitare divergenze. Oh, e stabilisci obiettivi chiari.
Alexander Torstling,

Quando ci penso, penso che sia meglio avere qualcuno con più esperienza che ti mostri la strada. La codifica in solo e la codifica in team sono così diverse e i metodi che funzionano potrebbero essere molto intuitivi per un solioista.
Alexander Torstling,

11

assumere qualcuno molto più competente di te

... e con esperienza nel progetto di software per grandi aziende.

Ti aiuteranno a industrializzare i tuoi processi e probabilmente imparerai molto da loro.

Insegnerai loro il tuo mercato di nicchia.

Se non riesci a trovare una persona simile, ti suggerisco di frequentare corsi di formazione relativi alla gestione del team. Ti suggerisco una certificazione Scrum come antipasto.


6

Può essere ovvio, ma assicurati di pensare che ti piacerà davvero lavorare con i nuovi assunti. Cerca di organizzare un paio di birre quando entrambe iniziano a provare e far sentire la squadra come una cosa sola.

Dovrai anche renderli consapevoli di eventuali standard di codifica che segui e di qualsiasi tecnica comune che usi, comune come ripetuto nella tua base di codice.

Alla fine dovresti essere in grado di reagire nel processo e migliorare ... supponendo che tu segua altri consigli e assumi qualcuno con le competenze per integrare il tuo.


4

In mancanza di un vero titolo, sarò "responsabile" di questa squadra.

Non commettere l'errore di lasciare che il tuo desiderio / ambizione di essere "responsabile" si frappongano. Se la tua azienda assume sviluppatori con più esperienza di te, i nuovi assunti potrebbero essere molto più adatti al ruolo di leader del team di te.

Il tuo vero valore per il team e l'azienda è la tua profonda conoscenza dei prodotti attualmente implementati.


4

Questo è molto simile alla situazione in cui mi trovavo qualche mese fa. Il miglior consiglio che posso dare è di abbandonare la tipica arroganza di essere un programmatore e assumere il meglio del meglio che la tua azienda può permettersi.

Sono stato "in carica" ​​per un po ', ma un membro del team con più esperienza è aumentato e ho abbandonato volentieri i miei doveri amministrativi in ​​modo da poter fare quello che sono meglio, scrivendo il codice di qualità. Sono ancora un mentore per la squadra come lo sarai tu.

Se fai ciò che è meglio per l'azienda in questa situazione, sarai ricompensato.


4

Ci saranno discussioni tecniche accese: i nuovi programmatori hanno un pregiudizio, hanno sperimentato alcuni modi per fare le cose e quando si confrontano con un nuovo modo che non capiscono, per prima cosa penseranno che non ha senso e deve cambiare . I programmatori che hanno lavorato da soli per anni sono probabilmente sulla difensiva per il loro lavoro, e anche il loro lavoro sarà in qualche modo idiosincratico, a causa del numero di problemi che hanno risolto senza discutere di cose con altre persone.

Sii consapevole di questi pregiudizi, accetta il nuovo contributo, non essere troppo difensivo e non prendere decisioni avventate per cambiare tutto.

Ci sono molti lati positivi nel lavorare in gruppo, in particolare ottenere il codice da un collega. Insistere su questo per tutti i membri del team incluso te stesso dall'inizio.


2

Come sviluppatore senior avrai bisogno di un cappello da manager e inizierai a guardare le politiche della tua azienda. (in particolare articoli come diritto alle ferie, procedure di congedo per malattia e procedura disciplinare, anche se spero che non ne avrai mai bisogno)

Ora, a seconda delle nuove competenze e abilità dei nuovi assunti, inizierai a delegare alcuni aspetti del tuo lavoro attuale, avrai bisogno del tempo per gestire le priorità e la pianificazione.

Una buona fonte di capacità di gestione semplici e di base su cosa fare e come in modo professionale è http://www.manager-tools.com . Fanno podcast regolari su consigli di gestione e carriera, per non parlare di un consistente catalogo di materiale per te.


1

Molti dei suggerimenti forniti sono eccellenti, aggiungerei solo alcuni della mia esperienza in una posizione simile.

  1. Fatti coinvolgere nelle decisioni di assunzione e non aver paura di porre il veto ai candidati che non lo sono. Dovrai lavorare a stretto contatto con il team e loro rappresenteranno i tuoi clienti e la direzione.
  2. Stabilisci una cultura dell'onestà con i membri del tuo team e aspettati l'onestà da loro, specialmente quando le situazioni sono difficili.
  3. Impara a delegare e quindi concentrarti sulle soluzioni e non sui processi.

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.