Channels ▼


SCM: Continuous vs. Controlled Integration

From 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?

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.