Cosa succede ai programmatori a cui manca il lavoro di squadra?
Quindi diventa difficile lavorare su progetti troppo grandi per un singolo programmatore. Difficile per il programmatore solista e difficile per il resto della squadra.
Dove iniziano i problemi?
Tutti i tipi di posti. Al momento abbiamo un solo programmatore che non è in grado di lavorare in team. Tende a fare scorciatoie che hanno effetti negativi sul resto dell'applicazione perché si concentra troppo sul risolvere il bug di fronte a lui. O scrivendo la nuova funzionalità in modo tale che non sia compatibile con il resto dell'applicazione. Dobbiamo riorganizzare le cose in modo che ogni check-in del codice venga esaminato dal resto del team. Ma al fine di non individuarlo, esaminiamo anche i controlli del codice di tutti gli altri, quindi insieme alla riunione dello stato del mattino, non facciamo alcun lavoro fino a dopo pranzo. Quindi nel nostro ufficio, ciò significa che 4 persone stanno perdendo 1/2 giornata di lavoro ogni giorno perché un ragazzo è pessimo nel lavoro di squadra. Non posso dire che sia un miglioramento rispetto alle avventure precedenti, perché potremmo perdere casualmente da un giorno a una settimana (di solito inseguendo nuovi bug) dai suoi check-in che rompono le cose (chiamiamo quei "furti"). Alcune delle correzioni del suo codice finiranno per eliminare una mezza dozzina di bug a causa di quanto aggrovigliata e disordinata l'applicazione (la mia raccomandazione aammazzalo dall'orbita e ricomincia da capo perché questo è l'unico modo per essere sicuro che non sia stato accettato).
Quando siamo di buon umore, lo chiamiamo un "programmatore a testa in giù" che tende a guardare la tastiera e digitare molto velocemente. Non presta attenzione a ciò che fanno gli altri.
Essere un buon programmatore compensa almeno un po '?
No. La maggior parte dei programmatori che sono cattivi giocatori di squadra hanno un'opinione molto alta delle proprie abilità, e questo si chiama effetto Dunning-Kruger . PDF di carta.
Forse: il programmatore solista dovrebbe essere molto meglio del resto della squadra. Ma questo significa solo che nessun altro può mantenere ciò che fa; e quando ciò accade, probabilmente significa che il programmatore solista non è in realtà molto meglio del resto della squadra - lui (ed è quasi sempre un ragazzo) è solo più bravo a ingannare tutti.
Nello sviluppo del software aziendale, la società sarà in giro molto tempo dopo la tua partenza. Molto probabilmente i programmi sono stati scritti prima di iniziare e verranno mantenuti molto tempo dopo la tua scomparsa. Se scrivi cose che sono così speciali e sorprendenti che nessun altro può capirle, allora finisci nella situazione in cui si trova Naughty Dog - il loro sviluppatore principale ha smesso, nessun altro capisce il linguaggio di programmazione proprietario che il ragazzo ha scritto (e scritto cose in), quindi ora devono cambiare tutto in C ++.
È normale per un programmatore avere una visione del suo lavoro invece di fare solo ciò che gli viene detto?
È comune - come un ingorgo o il diabete. Non lo definirei normale. Nel mondo aziendale, ci sono molte altre cose da considerare; il forte ego che molti sviluppatori hanno in genere fa pensare allo sviluppatore che nient'altro conta. Questa "mancanza di adattamento" e la mancanza di considerazione per il resto del business è il motivo per cui così tanti tipi di manager giungono alla conclusione che gli sviluppatori di software sono difficili da lavorare.