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

News Release: Tizra Announces an Open Platform for Interactive Publishing at Tools of Change

Web-based software lets publishers build interaction and community around their content, without being locked into proprietary tools and devices.

February 13, 2013 (New York, NY)--Tizra announced today at the O'Reilly Tools of Change Conference a combination of upgraded user interfaces and content management tools that provide publishers with a new option for publishing interactive digital content.  The system builds on the open standards of the web, providing an alternative to proprietary "walled garden" systems, which require publishers to commit to authoring tools, viewing devices and distribution channels controlled by specific vendors.

The new platform being demonstrated at the conference includes a completely re-designed web-based content viewing interface, which improves usability and compatibility across all the most popular web browsers and viewing devices, as well as enhanced linking and the ability to deliver access-controlled files in any digital format.

&q…

New Mobile-Optimized Template Simplifies Site Design

Pre-designed templates are increasingly popular as a quick way to get new Tizra sites launched, or to refresh the design of an existing site.  A key driver in both cases is keeping up with increasingly high user expectations for ease of use and visual appeal, particularly on mobile devices. To address these needs, we’ve released a major upgrade to our Bootstrap-based responsive design template. The new version makes it much easier to customize with your own colors and logo, improves mobile interaction with the latest version of the Bootstrap framework, and adds numerous other visual and usability refinements.

Existing Tizra customers can try it out now by selecting the “Bootstrap Responsive Template” in the PRESENTATION area. Or if you’d like to see a quick preview, take a look at this demo site… https://abedemo.tizrapublisher.com

Free MIT Press Webinar: Building an Ebook Site with Tizra

Exploiting Tizra's iPhone compatibility is one topic on the webinar agenda.When MIT Press launched CISnet just over a year ago, they were trying something radical: Creating a custom ebook site without investing in custom software and without expensive content conversion. The result was in the words of revered computer science professor Hal Abelson, "a treasure." Now MIT Press has very kindly agreed to share some of what they've learned from their experience developing CISnet on the Tizra platform, and some of their ideas for future expansion.Join MIT Press Editorial Director Gita Manaktala, and Digital Publishing Manager Jake Furbush for a free webinar…Tuesday, October 27 at 3pm EDTSpace is limited. Reserve your seat now! We look forward to a fascinating discussion.