Monday, December 31, 2007

Multi-Stage Continuous Integration Part I

I’m a big fan of continuous integration. I’ve used it and recommended it for many years. But it has a dark side as well. When it is combined with the practice of mainline development, especially for a large development effort, it can turn into “Continuous Noise.” In this case, you get notified every 10 minutes or so (depending on how much building and testing is going on) that the build and/or test suite is still failing.

In the diagram, the stability of the mainline is graphed over time. In this example, the graph starts when the product is released and the mainline is 100% stable. It builds without errors and all tests pass. As new development starts, developers make changes that break the build or cause tests to fail. Because they are all working against the mainline, it is likely that just as one developer fixes the problems they caused, another developer is checking in more changes that will create one or more new problems.

As the stability of mainline goes up and down, everybody that is working against mainline is affected. If the mainline doesn't build or there are tests that don't pass, then everybody has to wait until the problem is fixed.

It could be argued that the problem in this case is that the developer that broke the build should have updated their workspace, done a full build, and then run the full test suite after that. Basically, a full integration build and test. In practice this doesn’t work very well.

For any meaningful project, a full integration build and test will take time. Even if you somehow get that time down to 10 minutes, a lot can happen in 10 minutes, such as other people checking in their changes and invalidating your results (whether you realize it or not). It is more likely that this full cycle will take on the order of an hour or more. While you can certainly do something else during that hour, it is inconvenient to wait and necessitates task switching which is a well-known productivity killer.

Even though developer integration build and test has its problems, many shops have implemented it. While this practice is not ideal, it is an idea that is headed in the right direction.

Next: Multi Stage CI Part II .


Anonymous said...

undoubtedly are a superb method of dipping your do it yourself within a little bit of luxury. Kawasaki Fairings Lots of guys not forgetting women, typically desire of owning and placing on a pair or very much better nonetheless many pairs of those oh so gorgeous shoes.Onitsuka Tiger Mexico 66 in the event you have not entered the style earth at current you could possibly be astonished to discover the fact that artist shoes are not just for girls Asics Tiger Shoesbut you could get instead a broad range for guys as well which consists of the Paul Smith shoes, Beats By Dr Dre Headphones Squared shoes, Prada shoes, Dior shoes, Gucci shoes as well as the report goes on.

Darmowe Automaty Do Gry Hot Spot Online said...

i love this blog!!

offshoring vs outsourcing difference said...

It's blog is grate

dissertationwritings said...

Need assistance with dissertationwritings? Dissertationwritings encompass various aspects, such as literature review, data analysis, and discussion of findings. If you find yourself struggling with any part of the dissertation writing process, consider seeking support from academic resources, such as writing centers or online platforms that offer guidance from experienced researchers and writers. Remember, effective dissertationwritings require meticulous attention to detail and adherence to academic conventions.