Stai ancora parlando di capacità di scala. Stai solo parlando di una metodologia di sviluppo che non è in grado di scalare.
Esiste un'unità che alcuni tipi di gestione amano gettare in giro chiamata ora uomo . Diciamo che il progetto x ha impiegato 500 ore uomo. Un numero che potrebbe essere il prodotto di 5 persone che lavorano 100 ore o 100 persone che lavorano 5 ore. Come se quelle due situazioni producessero la stessa quantità di lavoro semplicemente perché equivalgono allo stesso ammontare di costi.
Questo tipo di pensiero è ciò che porta all'aspettativa che un progetto in ritardo possa essere rimandato nei tempi previsti aggiungendo persone. Non è vero Il lavoro e i costi non sono sempre 1 a 1. Questo cambiamento crea problemi che danneggiano la produttività, quindi qui c'è una falsa equivalenza. Non aspettarsi questo risultato è un pensiero da uomo / donna.
Il famoso libro Mythical Man-Month prende il nome da questa unità parla di questo effetto. L'aggiunta di persone in ritardo a un progetto la rallenta. I motivi che offre spazia dalla comunicazione inter-team in crescita di n (n + 1) / 2 agli sviluppatori che cercano di arrivare a mangiare il tempo di sviluppatori esperti che ora devono tenere in mano persone che rischiano di rompere la build.
Il mondo Agile crede che le squadre dovrebbero ridursi non crescere. Le nuove persone hanno bisogno di un posto sicuro per imparare cosa stanno facendo prima che contribuiscano. Hanno bisogno di accedere a sviluppatori esperti ma ciò ha un costo. Se non sei disposto a pagare, lascia che i due sviluppatori che hanno iniziato questa operazione tornino al lavoro e che tutti gli altri inizino un altro progetto.
Ora, se hai tenuto conto di tutto ciò e pensi ancora di essere rallentato da qualcosa di più di quello che potrebbero essere i tuoi primi due sviluppatori sono eroi solisti.
Lavorare su un progetto da solo semplifica moltissime cose. Se qualcosa è bloccato, lo hai bloccato. Nessuno fa il tuo lavoro tranne te. È un tipo speciale di fantastico. Tuttavia, significa che sei solo. Ogni idea stupida hai visto la luce del giorno perché nessuno l'ha interrogato. Ogni punto cieco che hai è incustodito.
Significa che non impari a lavorare con nessun altro. Hai iniziato con due persone che hanno capito come lavorare insieme. Ma lavorare con un team di 20 persone è molto diverso. Pianificare, dividere il lavoro, testare, peer reviewing, controllo del codice sorgente, integrare, implementare tutto richiede molta più disciplina in un team di 20 che in un team di 2.
E in effetti una squadra di 20 è piatta ridicola. La regola della pizza dice che se servono più di due pizze per alimentare la tua squadra è troppo grande. La mia regola generale è se parlare con tutta la tua squadra sembra parlare in pubblico è troppo grande.
18 persone non dovrebbero essere semplicemente "aggiunte alla squadra". Idealmente non coltiverai mai una squadra. Lo lasci ridurre nel tempo. Allora, dove vai se hai già iniziato con 2?
-
Dividi i due sviluppatori esperti. Ciò consente loro di guidare due team diversi. Tutto ciò di cui hanno bisogno sono due aree diverse su cui concentrarsi. Idealmente si aggiungono solo 1 o 2 sviluppatori in più per questi sviluppatori esperti.
-
Avvia una squadra separata. Questo gruppo di lavoro dovrebbe essere abbastanza separato da non dover incontrare costantemente gli sviluppatori esperti.
Una buona taglia per una squadra va da 4 a 8. Idealmente questo permetterà di co-localizzare in modo che possano girarsi sulla sedia e parlare con tutta la squadra senza che la gente debba alzarsi dalla sedia per vedersi facce.
A volte una squadra deve solo crescere. Quando ciò accade, è molto meno un rallentamento se il numero di nuove persone nel team è inferiore al numero di persone con esperienza.