FEATURED BOOK: Continuous Integration: Improving Software Quality and Reducing Risk
|
|
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
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.
|