Martin Fowler's paper on Continuous Integration(martinfowler.com)
martinfowler.com
Martin Fowler's paper on Continuous Integration
http://martinfowler.com/articles/continuousIntegration.html
http://martinfowler.com/articles/continuousIntegration.html
I have also worked on projects where we had a "preflight" process. This meant that all potential changes were uploaded to a build machine and tested with the head branch to see if they compiled. Only if they successfully compiled were the changes actually added to source control. This sounds a lot like what they call 'pending head' - http://martinfowler.com/bliki/PendingHead.html . It's interesting that Fowler doesn't consider pending head/preflight a necessary part of CI or of good development; IME it dramatically cuts down on broken builds because it keeps developers honest. Didn't check to see if your code compiles? Too bad for you, it's not going in.
Fowler mentions several problems with CI builds still breaking. "One reason is discipline, people not doing an update and build before they commit". So maybe he would agree that preflight/pending head is beneficial. It also helps because you can go home on time - you don't have to stick around and babysit a build process if you commit code late in the day. That saves dev time and makes things progress faster.
Very good article; thanks for posting.