We have 5292 guests and 10 members online
Home > Articles > Columns > Featured Books > FEATURED BOOK: Continuous Integration: Improving Software Quality and Reducing Risk

FEATURED BOOK: Continuous Integration: Improving Software Quality and Reducing Risk

E-mail
Written by Brad Appleton   
Tuesday, 11 September 2007 17:00

ba0907-1 by Paul M. Duvall with Steve Matyas & Andrew Glover 

For those of you seeking a book on the subject of Continuous Integration (a.k.a. "CI"), what it is, how to do it, why to do it, what the benefits are, and the details of how to do it ... look no further. The book you have got to run out and get is here! It is Paul Duvall et.al.'s Continuous Integration: Improving Software Quality and Reducing Risk. It includes descriptions of no less than 40 CI practices, five dozen code listings, coverage of  systems using Java, C/C++/C#, Python, Ruby, and dozens of tools and environments. No other book is as thorough in capturing not just the concepts and the mental attitude of CI, but also all the related practices and current technologies (including Ant, NAnt, JUnit, NUnit, CruiseControl, Continuum, Bamboo, Buildforge, Rake, Luntbuild, ParaBuild, Guantlet, Sin, Maven (and Maven 2), CruiseControl.NET, AntHill, and more).  You can check out this book at Amazon.com  

 

 

 
From the very start, this book is approachable yet pragmatic, comprehensive, and succinct. The book is divided into two main parts, each of which has four chapters: Part I covers concepts, principles, and practices, while Part II covers how to implement a full-featured CI system. The final section and appendices cover the present and future of CI, surveying available tools and technologies and providing evaluations of most of the major ones. The book's companion site at http://www.integratebutton.com/ hosts a blog, sample chapters, some video podcasts, and downloads of scripts (e.g., for ANT, Cruise-Control, etc.).

Part I begins with  a "Getting Started" chapter {sidebar id=1} that includes version control, feedback mechanisms and setup, and even database integration and documentation. Then, it describes the features of CI and describes what the CI "experience" is like, as well as explaining the value and benefits of CI. An entire chapter is devoted to reducing software & project risks with CI, followed by all the necessary ingredients and challenges for building software quickly and gathering and analyzing related integration data and metrics after every build.

Part II shows how to transition from "Getting Started" to going "Full Featured." It explains how to implement continuous database integration, continuous testing, continuous inspection (automated static analysis), continuous deployment, and institute continuous feedback (including such feedback mechanisms as E-mail, SMS (text messages), lava lamps, ambient orbs and X10 devices, the windows taskbar, sounds and wide-screen monitors.

The last section of the book spends a few pages musing on the future of CI, then segues immediately into the appendices, beginning with a very comprehensive list of resources for: CI websites and articles, CI tools and products, build scripting, version control, database, testing, automated inspection, deployment, feedback mechanisms, and documentation. The final appendix gives some considerations for evaluating CI tools, and then goes on to evaluate almost a dozen different automated build and build scheduling tools.

I remember first catching wind of this book a few years ago when Paul was putting together his first few chapters, publishing thoughts and excerpts on a (now defunct) blog. Then about a year later I was asked to review a manuscript for the book (which I was happy to do) and I thought it looked very promising, with the potential of being the most comprehensive and authoritative work on the subject to date. I've been waiting almost a year for the book to hit the bookshelves, and now that it finally has, I think it delivers on its promise. No other book to date even comes close to being such a comprehensive and authoritative source of principles, practices, and resources about continuous integration.

[Get a copy of this Book]



About the reviewer
Brad Appleton is an enterprise SCM/ALM solution architect for a Fortune 100 technology company. Currently he helps projects and teams adopt and apply agile development & SCM practices. Brad also author's the Agile CM Environments blog, and is co-author of Software Configuration Management Patterns: Effective Teamwork, Practical Integration, the "Agile SCM" column in CMCrossroads.com's CM Journal, and is a former section editor for The C++ Report. Since 1987, Brad has extensive experience using, developing, and supporting SCM environments for teams of all shapes and sizes. He holds an M.S. in Software Engineering and a B.S. in Computer Science and Mathematics. 


Trackback(0)

Comments (0)Add Comment


Write comment

security code
Write the displayed characters


busy
Last Updated on Wednesday, 17 October 2007 16:46
 
Cialis

Agile Marketplace - Announcements and Special Offers

The Business Case for ALM Transformation
Are legacy systems holding your company back?  Breakthrough these technical constraints with an open and scalable environment that meets your unique business need to transform. There is no reason to be locked into an obsolete platform. The output of a number of recent transitions from legacy systems, this is practical white paper shares lessons learned and illustrates how guidance and enablement can pave the way for change.
Download this Whitepaper