Skip to main content

The importance of continuous integration

Leading a team of developers in the effort of building a robust, quality software product should involve the establishment of some process and tools to assist the team effort and serve as a safety net for the errors of getting people to work together. Continuous integration is, I believe, a crucial element of that process. Introduced by Martin Fowler and Matt Foemmel (see article Continuous Integration), continuous integration establishes the practice of frequent integration of work developed by the several team members verified by automated build and testing of integrated code within a clean sandbox. This practice is valuable for several reasons:
  • It promotes the development of a clear process of building/deployment independent of any specificity of developer's platforms. Code that exists on a single platform only is bound to become dependent on specific aspects of that platform without anyone really noticing the dependencies until trying to port to other platforms. The existence of the integration clean sandbox allows these specific dependencies issues to not go unnoticed.
  • It promotes the development of testing. Being based on the premise of "test often" it makes the testing development part of the team's process. The fact that there is a platform built specifically for build and testing verification transforms, from the developer's perspective, testing efforts into an even more useful and justifiable effort.
  • It allows for quick detection of code integration issues by providing the clean slate for bringing all the code together. The little quirks of code combining can be detected by effective smoke/regression testing.
How hard is it to put in place continuous integration ? It depends a lot on where you are in your development process when you decide to take it up. If your team already makes use of build tools (e.g. Ant, Maven, even Make), makes use of a version control system (e.g. CVS, Subversion) and already does some kind of automated testing (e.g. xUnit) it can become pretty straightforward (You do use these don't you?!?). Continuous integration becomes simply a matter of setting up the integration sandbox and establishing the automation to detect changes in the version control system, building the changed system and testing the changes. You do not even need to go very far to accomplish that. You can find already systems that give you the continuous integration functionality that you need. At Tizra we have chosen to use the Cruise Control open-source, free framework for our continuous integration process (BSD-style license). It does pretty much what we need to do and keeps us on top of any integration issue that might arise from our development effort. It provides us unit tests results gathering, reporting and historical stats gathering for all checks. Continuous integration should be, in my opinion, an important practice for any serious software development company and I, for one, will make every effort to ensure it is put in place in every project I work with.

Comments

Popular posts from this blog

Optimizing eContent Sales: 5 Strategies for Monetizing Content

Targeted promotions and content bundle upsells are two ideas to test in optimizing sales. This is the third in a series of blog posts based on our webcast,  "10 Factors to Consider when Developing your Digital Publishing Strategy."  You can still watch it in its entirety here: So far we have talked about the importance of understanding your   audience  and whether or not to sell direct . Today, we investigate the various monetization strategies publishers utilize.  The entire publishing industry has been experimenting with pricing and delivery models, from the Netflix-like subscription services offered by Oyster and Scribd, to bundling of ebooks with print editions, to chapter-at-a-time sales and more. Yet no single pricing model has emerged.  What does that tell publishers? It means that you need the flexibility to experiment with your pricing strategy and adapt quickly to market fluctuations and demands. You will need a commerce and delivery...

Slater Invests in Tizra

This is a big one for us. Rhode Island's Slater Technology Fund is betting $500,000 that Tizra will "really open the floodgates for book-based content from thousands of publishers." Their investment caps a year in which we've gone from four people , two dogs and an idea to a company that someone besides us and our friends and families believe will set online publishing on its ear. We even have our very own Forbes article . Thanks to the folks at Slater for being great advisors as well as investors, and to the many friends and family members who preceded them!

Association of Research Libraries Goes Live with Tizra

After extensive internal testing, the Association of Research Libraries has begun offering recent issues of its flagship publication on a public test site hosted by Tizra. The organization announced recently that Research Library Issues is now available in full-text searchable form at… http://publications.arl.org We're thrilled about this, not only because because it's a vote of confidence from a high profile organization, but also because ARL's membership includes some of the most prestigious research institutions in the world (including the libraries of MIT and Indiana University, whose presses are already using Tizra). In addition to greater production efficiency and flexibility, ARL's use of Tizra stems from a desire to provide members with capabilities including… Better full-text search. More targeted references via social software and other links. Better compatibility with web enabled mobile devices like the iPhone. We are proud to count ARL—and RLI reade...