Ho lavorato come unico sviluppatore in un'azienda che conosceva una tecnologia specifica, l'unica che ha fatto il tipo di programmazione che ho fatto e come appaltatore in situazioni simili. (Ho anche lavorato in team con altri sviluppatori che conoscevano diversi strumenti e con altri sviluppatori che hanno fatto esattamente quello che ho fatto.)
I vantaggi di essere l'unico programmatore
- Come accennato, hai spesso la libertà di utilizzare qualsiasi strumento o lingua che ritieni di poter imparare. Non devi sempre presentare un caso ai tuoi colleghi per ottenere il permesso di lavorare con New Technology X mentre tutti gli altri usano la tecnologia corrente Y.
- Hai più responsabilità. Essenzialmente, tu funzioni come lead di progetto e sviluppatore su ciascuno dei tuoi progetti, e con la tua capacità di identificare e implementare nuove cose, sei anche tu il capo reparto. (Non dirlo ai venditori: amano parlare con i responsabili delle decisioni e non hai tempo di parlare con loro.)
- Non c'è dubbio sul credito per il lavoro che viene svolto: ovviamente tu e tu solo tu hai fatto accadere le cose.
- Puoi dedicare più tempo a lavorare sui tuoi progetti e meno tempo a riunioni su progetti che sono fondamentalmente di qualcun altro (ma sei lì come persona di supporto, possibile backup o altro).
Contro
- Come sottolinea David in un commento, sei l'unico sviluppatore, quindi nessuno sviluppo viene fatto senza di te. Una volta mi sono vantato con mio fratello di essere "il ragazzo" di un particolare progetto al lavoro. Ha accuratamente descritto la mia situazione per me: ero intrappolato. Non potevo andare avanti in quella compagnia perché non sarei mai riuscito a sbarazzarmi di quel progetto. (Aveva ragione anche lui. Ci sono voluti diversi mesi di allenamento per un lungo periodo di tempo prima che potessi consegnarlo a qualcuno che era persino in qualche modo capace di supportarlo.) Potresti avere difficoltà a fare una vera vacanza quando nulla può essere fatto senza di te.
- Come sottolinea Pierre, non c'è nessuno sul sito per fare revisioni del codice o condividere le migliori pratiche con te. Puoi raggiungere i tuoi coetanei in vari modi, ma nulla è altrettanto efficace di toccare un collega sulla spalla e chiedergli di guardare il tuo codice per 5-10 minuti.
- Analogamente, potresti avere difficoltà ad acquisire esperienza con nuovi strumenti. La formazione fuori sede può essere rara quanto il tempo di vacanza: qualcuno si lamenterà che la compagnia non può permettersi di guardare fuori da Language 3.0 per una settimana in cui non c'è nessuno che possa far funzionare le app di Language 2.0.
- L'avanzamento di carriera può essere estremamente difficile da gestire. Potresti non avere una posizione per cui puoi lottare, anche un cambio di titolo può essere difficile da ottenere, e le revisioni di fine anno non hanno alcun quadro di riferimento, quindi un lavoro eccellente potrebbe passare inosservato se non altro La ragione è che nessuno capisce veramente quello che fai.
Se decidi di trasferirti in un'azienda in cui lavoreresti come parte di un team di programmatori, non penso che la tua esperienza da solista possa farti molto male. La tua mancanza di esperienza con i modelli di progettazione non è necessariamente tanto importante quanto la tua volontà di apprenderli. (Potrebbero esserci situazioni in cui stai intervistando un candidato con un background simile e anche esperienza in tutti i metodi che l'azienda utilizza, ma questo è vero per tutti.)
Sulla stessa linea, la tua mancanza di esperienza in una squadra è bilanciata dalla tua capacità di indossare molti cappelli. Ci sono alcuni sviluppatori che sono buoni giocatori di squadra ma non sviluppano mai la capacità di gestire un progetto; hai già dimostrato che puoi farlo.
Consiglierei che quando sei uno sviluppatore solista, dovresti passare un po 'di tempo a leggere su strumenti e tecniche che gli sviluppatori simili stanno usando, quindi anche se non li usi da solo, sei consapevole che esistono e tu posso riferirmi a loro durante un'intervista, anche se solo per dire "Sì, ho letto un po 'di quadri MVC, ma non li ho mai usati io stesso". Fai tutto il possibile per rimanere in contatto con altri sviluppatori: partecipa alle riunioni del gruppo di utenti locali, leggi e commenta i blog (o ne mantieni uno dei tuoi), cerca di arrivare ai workshop di volta in volta, guarda webinar e simili. (Potresti anche considerare siti come lynda.com per la formazione interna: non è buono come una conferenza di una settimana da qualche altra parte, ma puoi guardare i video nel tuo tempo libero e non mandare tutti in modalità panico perché sei fuori dall'ufficio.)