Trovo molto bene la bilancia burocratica.
Oltre a questo, non molto. Grandi progetti hanno grandi team perché non c'è altro modo, non perché sia più efficiente (per sviluppatore). Paghi un costo non appena aggiungi una seconda persona al mix in termini di inefficienza (ad es. Trasferimento di conoscenza e comunicazione).
Il più grande progetto su cui ho lavorato contava circa 70 sviluppatori su 5 siti diversi. Anche un cambio di una riga ha richiesto un minimo di giorno, anche se ciò è dovuto in parte al fatto che la costruzione ha impiegato più di 45 minuti su un collegamento di rete da Zurigo a Londra e l'avvio dell'app ha richiesto altri 45 minuti. Il check-in ha richiesto circa 5 minuti per file. Non sto scherzando. Gli sviluppatori di Londra potrebbero farlo in una frazione del tempo.
In ogni caso, quello che tendi a trovare è che su progetti di grandi dimensioni avrai un gruppo di membri del team con cui non interagirai più di tanto. È più simile a una raccolta di mini-progetti poco ampia. Una volta ho letto che lo sviluppo di Microsoft tendeva a suddividere progetti in team di 5-7 sviluppatori, anche per progetti di grandi dimensioni come Microsoft Office.
Parte della differenza è anche la differenza tra aziende piccole e grandi: quelle più grandi tendono ad avere più processi, più regole, meno flessibilità e così via. Ma questo non è affatto garantito.
Però può essere buono per lo sviluppo della carriera. In una piccola azienda qualcuno deve andarsene o morire prima di poter ottenere una promozione (o la società deve crescere in modo tale che il team si espanda e si muova verso l'alto) mentre in dipartimenti di sviluppo più grandi è possibile spostarsi tra squadre e così via.
Inoltre a volte puoi trovare persone davvero intelligenti da cui attaccarti e da cui imparare. Nelle piccole aziende essere così isolati e autosufficienti può essere favorevole ai programmatori che diventano un po '"strani", un po' come un eremita.