Guardando i numeri, diresti che il tuo team pratica realmente il principio K.I.S.S. o diresti che segue la legge di Parkinson ?
- .NET Framework 2.0 il nucleo é composto in tutto da soli 12 Assembly per piú di 12.000 classi (una media di 800 per progetto) e 2.800.000 istruzioni IL (190.000 per progetto)
Fonte: Analyzing the .NET Framework 2.0 with NDepend
- Google ha un singolo source code repository che é completamente accessibile a tutti i 10.000 sviluppatori. Sebbene tutti i sistemi vengono rilasciati indipendentemente l'uno dall'altro (con cicli di rilascio che variano da una settimana a un mese), tutto viene compilato dalla HEAD senza l'uso di binari precompilati, il repository accetta diverse migliaia di modifiche al giorno con picchi di 20+ modifiche per minuto.
Fonte: Mark Striebeck engineering manager a Google, al suo speech al XPDay London 2009 (guarda anche il report da questo post)
- Flickr riceve 40.000 nuove foto per secondo e ha ne archivia piú di 3 miliardi di foto al giorno, vengono eseguiti piú di 10 nuovi rilasci al giorno. Due fattori abilitanti per queste prestazioni tra i molti citati: un unico version control condiviso e no branching.
Fonte: Dev and Ops Cooperation at Flickr
E ora chiediti:
- In quanti Project/Assembly é scomposta la code-base?
- Da quanti code repository distinti (server o trunk) devi fare il get dei sorgenti per compilare la code-base?
- Quante Solution distinte devi compilare per compilare la code-base?
- Oltre al trunk su quanti altri branch sviluppa il team?
La legge di Parkinson applicata alla complessitá della code-base dice che la complessitá della code-base tende ad espandersi sino alla massima capacitá del team e della azienda di gestire la complessitá, invece di limitarsi alla complessitá minima richiesta dai problemi affrontati.