Continuous integration

November 9, 2008

In this web article Martin Fowler, author of several popular books on topics such as refactoring and test-driven development, explains the agile practice of continuous integration (CI). CI is the process of committing and integrating frequently (at least once per day). This allows development teams to find bugs quickly and increase communication.

As Fowler points out, the basic idea is that team members divide their work into small chunks and commit them frequently, possibly every few hours. Developers do this by first checking out the current repository after they have finished their work chunk, then building and testing a local build and finally, if everything works fine, commiting the changes to the server. After commiting, the complete build is tested on the integration machine.

Obviously, CI requires a well-defined test suite, which is why CI works hand-in-hand with test-driven development methods. Additionally, very good automation mechanisms are necessary in order to avoid unnecessary maintenance overhead. Fowler devotes several sections to this topic.

Continuous integration has several advantages. Above all, it allows the development team to find bugs very quickly, as developers constantly test how their code interacts with the code from other developers.

As I have come across this topic recently in several presentations of different companies (among them Ericsson), who all name continuous integration as one of their major practices, I think this is a very interesting article with a huge relevance in the industry. It is definitly worth reading.

Link to the article:
Continuous integration

Entry Filed under: Web article. Tags: , , , , , , .

1 Comment Add your own

  • 1. Jay Harris  |  November 10, 2008 at 14:10

    Continuous Integration is absolutely all of this, but there is even more to it. Through “automated deployments” and “making it easy to get the latest deliverables”–two of Fowler’s other components of CI–it is easy for the QA team to get at the latest bits and test the application. Also, another of Fowler’s items, “everyone can see the results of the latest build,” the management teams have visibility into the state of the application, helping them make decisions, such as those surrounding deployment to a staging or production environment, or when to begin client testing.

    For anyone interested in further reading, I recommend Martin Fowler’s online article on continuous integration or Paul M. Duvall’s book on the same topic.

    Reply

Leave a Comment

Required

Required, hidden

Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Subscribe to the comments via RSS Feed


About

This blog is intended to provide students, software engineers, business people, and all other interested people an entry point for accessing current and fundamental literature about software engineering and IT business.

Categories

Tags

Agile Automation Build Business Computer Science Continuous integration Human IT Iterative development Management Metrics Organization Quality Scrum Software Engineering Source control Strategy Test-Driven Development

Authors

Blogroll

Feeds