Ho appena scoperto questi due post, qui e qui , dove l'autore spiega
come viene organizzato il codice della divisione
"developer" in Microsoft.
Questa parte spiega il problema:
"Let's imagine for
a minute that any given developer has a brain fart and checks in a build break,
serious bug, etc once every 6 months (which in my opinion would be a team of 800
of the best developers I've ever met). There's about 250 working days in a
year and simple math says 800 * 2 / 250 > 6 serious bugs checked in every
single working day. The fact is it's higher than that. Of course we
do unit testing, code reviews and the like to reduce bugs that make it into the
system but it's simply not possible to eliminate them all. The
ramification of this is that (if everyone is checking into the same tree) the
build is broken frequently and the daily tests rarely pass. In fact the
product won’t even start half (an exaggeration) the time."
Come soluzione hanno implementato tutto un sistema
di "branch" e "merge" su dei Virtual Build Labs che
rappresentano l'infrastruttura per ogni singolo prodotto.
Gli articoli sono veramente interessanti anche se e'
facile perdere il filo del discorso perche' la struttura implementata
e' molto complessa, specialmente quando descrive come fanno le Release
versions.
Consiglio di leggere anche i commenti
dove vengono date maggiori info in
merito.
Oltre a questo, ricordiamoci che hanno anche le divisioni "Windows",
"Office", "MSN", "SQL Server",... beh mi fermo qui
powered by IMHO 1.3