January 24, 2008
SCM: Continuous vs. Controlled IntegrationFrom Big Bang to Frequent Integration
Again, continuous integration is one of the core practices in agile methods. Continuous integration is the response to big bang integration (working in a silo for a long time and then putting all the pieces together at the end), which has been the root cause behind a huge number of failed and delayed projects.
Figure 1 shows a typical development cycle in which integration is done at the end of the project. With only one line of development going on, it shouldn't be a big trouble.
[Click image to view at full size]
Figure 1: Regular development process.
Problems will arrive in a real situation, like that in Figure 2. The integration is delayed until the end of the project, and then making all the code and components work together becomes a real nightmare. The problem is not only caused by the code which needs to be adjusted: personnel are not used to run integrations because they are not done on a regular basis.
[Click image to view at full size]
Figure 2: Big bang integration, big problems at the end.
So this is where continuous integration enters the scene. What if your team integrates their changes on a regular basis? Then instead of having a big problem at the end of the project, the team will have more frequent but smaller troubles, reducing the risk and making it manageable. Figure 3 depicts a frequent integration process.
[Click image to view at full size]
Figure 3: Frequent integration.
Now the question is: How frequently should I run integration processes? Once a month, once a, week or twice a day?
|
|
||||||||||||||||||||||||||||||
|
|
|
|