Programming Books C Java PHP Python Learn more Browse Programming Books
Continuous Integration: Improving Software Quality and Re... and over one million other books are available for Amazon Kindle. Learn more

Sorry, this item is not available in
Image not available for
Color:
Image not available

To view this video download Flash Player

 


or
Sign in to turn on 1-Click ordering
Sell Us Your Item
For a $12.30 Gift Card
Trade in
More Buying Choices
Have one to sell? Sell yours here
Start reading Continuous Integration on your Kindle in under a minute.

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

Continuous Integration: Improving Software Quality and Reducing Risk [Paperback]

by Paul M. Duvall, Steve Matyas, Andrew Glover
4.5 out of 5 stars  See all reviews (24 customer reviews)

List Price: $57.99
Price: $40.40 & FREE Shipping. Details
You Save: $17.59 (30%)
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
In Stock.
Ships from and sold by Amazon.com. Gift-wrap available.
Want it Monday, April 28? Choose Two-Day Shipping at checkout. Details
Free Two-Day Shipping for College Students with Amazon Student

Formats

Amazon Price New from Used from
Kindle Edition $22.39  
Paperback $40.40  
Shop the new tech.book(store)
New! Introducing the tech.book(store), a hub for Software Developers and Architects, Networking Administrators, TPMs, and other technology professionals to find highly-rated and highly-relevant career resources. Shop books on programming and big data, or read this week's blog posts by authors and thought-leaders in the tech industry. > Shop now

Book Description

July 9, 2007 9780321336385 978-0321336385 1

For any software developer who has spent days in “integration hell,” cobbling together myriad software components, Continuous Integration: Improving Software Quality and Reducing Risk illustrates how to transform integration from a necessary evil into an everyday part of the development process. The key, as the authors show, is to integrate regularly and often using continuous integration (CI) practices and techniques.

 

The authors first examine the concept of CI and its practices from the ground up and then move on to explore other effective processes performed by CI systems, such as database integration, testing, inspection, deployment, and feedback. Through more than forty CI-related practices using application examples in different languages, readers learn that CI leads to more rapid software development, produces deployable software at every step in the development lifecycle, and reduces the time between defect introduction and detection, saving time and lowering costs. With successful implementation of CI, developers reduce risks and repetitive manual processes, and teams receive better project visibility.

 

The book covers

  • How to make integration a “non-event” on your software development projects
  • How to reduce the amount of repetitive processes you perform when building your software
  • Practices and techniques for using CI effectively with your teams
  • Reducing the risks of late defect discovery, low-quality software, lack of visibility, and lack of deployable software
  • Assessments of different CI servers and related tools on the market

The book’s companion Web site, www.integratebutton.com, provides updates and code examples.

 


Frequently Bought Together

Continuous Integration: Improving Software Quality and Reducing Risk + Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (Addison-Wesley Signature Series (Fowler)) + Agile Testing: A Practical Guide for Testers and Agile Teams
Price for all three: $119.33

Buy the selected items together


Editorial Reviews

About the Author

Paul Duvall is the CEO of Stelligent, a firm that helps clients create production-ready software every day. A featured speaker at many leading software conferences, he has worked in virtually every role on software projects: developer, project manager, architect, and tester. He is the principal author of Continuous Integration: Improving Software Quality and Reducing Risk (Addison-Wesley, 2007), a 2008 Jolt Award Winner. Paul contributed to the UML 2 Toolkit (Wiley, 2003), writes a series for IBM developerWorks called Automation for the people, and contributed a chapter to No Fluff Just Stuff Anthology: The 2007 Edition (Pragmatic Programmers, 2007). He is passionate about automating software development and release processes and actively blogs on IntegrateButton.com and TestEarly.com.

Stephen M. Matyas III is vice president of AutomateIT, a service branch of 5AM Solutions. He has a varied background in applied software engineering, with much of his professional, hands-on experience being in the areas of enterprise Java and custom software development and services.

Andrew Glover, president of Stelligent Incorporated, is a frequent speaker at conferences throughout North America, as well as author and coauthor of many books and online articles.

Excerpt. © Reprinted by permission. All rights reserved.

Early in my career, I saw a full-page advertisement in a magazine that showed one keyboard key, similar to the Enter key, labeled with the word “Integrate.” The text below the key read, “If only it were this easy.” I am not sure who or what this ad was for, but it struck a chord with me. In considering software development, I thought, surely that would never be achievable because, on my project, we spent several days in “integration hell” attempting to cobble together the myriad software components at the end of most project milestones. But I liked the concept, so I cut out the ad and hung it on my wall. To me, it represented one of my chief goals in being an efficient software developer: to automate repetitive and error-prone processes. Furthermore, it embodied my belief in making software integration a “nonevent” (as Martin Fowler has called this) on a project—something that just happens as a matter of course. Continuous Integration (CI) can help make integration a nonevent on your project.

What Is This Book About?

Consider some of the more typical development processes on a software project: Code is compiled, and data is defined and manipulated via a database; testing occurs, code is reviewed, and ultimately, software is deployed. In addition, teams almost certainly need to communicate with one another regarding the status of the software. Imagine if you could perform these processes at the press of a single button.

This book demonstrates how to create a virtual Integrate button to automate many software development processes. What’s more, we describe how this Integrate button can be pressed continuously to reduce the risks that prevent you from creating deployable applications, such as the late discovery of defects and low-quality code. In creating a CI system, many of these processes are automated, and they run every time the software under development is changed.

What Is Continuous Integration?

The process of integrating software is not a new problem. Software integration may not be as much of an issue on a one-person project with few external system dependencies, but as the complexity of a project increases (even just adding one more person), there is a greater need to integrate and ensure that software components work together—early and often. Waiting until the end of a project to integrate leads to all sorts of software quality problems, which are costly and often lead to project delays. CI addresses these risks faster and in smaller increments.

In his popular “Continuous Integration” article, 1 Martin Fowler describes CI as:

. . . a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily—leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly.

In my experience, this means that:

  • All developers run private builds 2 on their own workstations before committing their code to the version control repository to ensure that their changes don’t break the integration build.
  • Developers commit their code to a version control repository at least once a day.
  • Integration builds occur several times a day on a separate build machine.
  • 100% of tests must pass for every build.
  • A product is generated (e.g., WAR, assembly, executable, etc.) that can be functionally tested.
  • Fixing broken builds is of the highest priority.
  • Some developers review reports generated by the build, such as coding standards and dependency analysis reports, to seek areas for improvement.

This book discusses the automated aspects of CI because of the many benefits you receive from automating repetitive and error-prone processes; however, as Fowler identifies, CI is the process of integrating work frequently—and this need not be an automated process to qualify. We clearly believe that since there are many great tools that support CI as an automated process, using a CI server to automate your CI practices is an effective approach. Nevertheless, a manual approach to integration (using an automated build) may work well with your team.

Rapid Feedback
Continuous Integration increases your opportunities for feedback. Through it, you learn the state of the project several times a day. CI can be used to reduce the time between when a defect is introduced and when it is fixed, thus improving overall software quality.

A development team should not believe that because their CI system is automated, they are safe from integration problems. It is even less true if the group is using an automated tool for nothing more than compiling source code; some refer to this as a “build,” which it is not (see Chapter 1). The effective practice of CI involves much more than a tool. It includes the practices we outline in the book, such as frequent commits to a version control repository, fixing broken builds immediately, and using a separate integration build machine.

The practice of CI enables faster feedback. When using effective CI practices, you’ll know the overall health of software under development several times a day. What’s more, CI works well with practices like refactoring and test-driven development, because these practices are centered on the notion of making small changes. CI, in essence, provides a safety net to ensure that changes work with the rest of the software. At a higher level, CI increases the collective confidence of teams and lessens the amount of human activity needed on projects, because it’s often a hands-off process that runs whenever your software changes.

A Note on the Word “Continuous”
We use the term “continuous” in this book, but the usage is technically incorrect. “Continuous” implies that something kicks off once and never stops. This suggests that the process is constantly integrating, which is not the case in even the most intense CI environment. So, what we are describing in this book is more like “continual integration.”

Who Should Read This Book?

In our experience, there is a distinct difference between someone who treats software development as a job and someone who treats it as a profession. This book is for those who work at their profession and find themselves performing repetitive processes on a project (or we will help you realize just how often you are doing so). We describe the practices and benefits of CI and give you the knowledge to apply these practices so that you can direct your time and expertise to more important, challenging issues.

This book covers the major topics relating to CI, including how to implement CI using continuous feedback, testing, deployment, inspection, and database integration. No matter what your role in software development, you can incorporate CI into your own software development processes. If you are a software professional who wants to become increasingly effective—getting more done with your time and with more dependable results—you will gain much from this book.

Developers

If you have noticed that you’d rather be developing software for users than fiddling with software integration issues, this book will help you get there without much of the “pain” you thought would be involved. This book doesn’t ask you to spend more time integrating; it’s about making much of software integration a nonevent, leaving you to focus on doing what you love the most: developing software. The many practices and examples in this book demonstrate how to implement an effective CI system.

Build/Configuration/Release Management

If your job is to get working software out the door, you’ll find this book particularly interesting as we demonstrate that by running processes every time a change is applied to a version control repository, you can generate cohesive, working software. Many of you are managing builds while filling other roles on your project, such as development. CI will do some of the “thinking” for you, and instead of waiting until the end of the development lifecycle, it creates deployable and testable software several times a day.

Testers

CI offers a rapid feedback approach to software development, all but eliminating the traditional pain of reoccurring defects even after “fixes” were applied. Testers usually gain increased satisfaction and interest in their roles on a project using CI, since software to test is available more often and with smaller scopes. With a CI system in your development lifecycle, you test all along the way, rather than the typical feast or famine scenario where testers are either testing into the late hours or not testing at all.

Managers

This book can have great impact for you if you seek a higher level of confidence in your team’s capability to consistently and repeatedly deliver working software. You can manage scopes of time, cost, and quality much more effectively because you are basing your decisions on working software with actual feedback and metrics, not just task items on a project schedule.

Organization of This Book

This book is divided into two parts. Part I is an introduction to CI and examines the concept and its practices from the ground up. Part I is geared toward those readers not familiar with the core practices of CI. We do not feel the practice of CI is complete, however, without a Part II that naturally expands the core concepts into other effective p...


Product Details

  • Paperback: 336 pages
  • Publisher: Addison-Wesley Professional; 1 edition (July 9, 2007)
  • Language: English
  • ISBN-10: 9780321336385
  • ISBN-13: 978-0321336385
  • ASIN: 0321336380
  • Product Dimensions: 9.2 x 7 x 0.7 inches
  • Shipping Weight: 1.1 pounds (View shipping rates and policies)
  • Average Customer Review: 4.5 out of 5 stars  See all reviews (24 customer reviews)
  • Amazon Best Sellers Rank: #82,433 in Books (See Top 100 in Books)

More About the Author

Paul M. Duvall is the CEO of Stelligent - an expert in Continuous Integration and Continuous Delivery in Amazon Web Services. Paul is the author of many publications including the Jolt-award winning book Continuous Integration: Improving Software Quality and Reducing Risk (http://amzn.to/cibook) and DevOps in the Cloud. He is passionate about the cloud and automation and blogs at http://stelligent.com/blog.

Customer Reviews

Most Helpful Customer Reviews
20 of 20 people found the following review helpful
5.0 out of 5 stars Covers all the major deployment and automation issues August 11, 2007
Format:Paperback
Continuous Integration refers to the practice of automating the build, testing and deployment of your software, so that producing a finished executable (and the related artifacts) can be done at the touch of a button, and is ideally carried out several times a day.

If this seems like a nice to have feature of your own development, but less of a core practice when compared to version control and comprehensive tests (both of which are requirements for doing CI), this book does a pretty good job of advocating CI as being just as important.

First, the book introduces the core practices of CI (regular builds, tests, and deployment), then goes on to demonstrate how it facilitates other, more advanced practices, which gain value when automated, such as enforcing code style, and recording code metrics.

It does not assume any particular platform, although most of the code uses Java and C# (and associated XML configuration). As a result, it will appeal most to those who want general guidance about why CI is a good idea, what to put under CI, how often to integrate, how long to allow the build to take, what to do if builds are too slow, etc. There's clearly no one-size-fits-all answer to this and this not a step-by-step tutorial book, so you'll need to adapt the code samples given in this book for your own ends.

Therefore, if you're completely new to the idea of CI, then maybe you might want to check out Mike Clark's Pragmatic Project Automation first, which covers a lot of the same ground as the first part of this book, but goes into a lot more detail about the mechanics of using Ant and JUnit with Cruise Control.
Read more ›
Comment | 
Was this review helpful to you?
11 of 11 people found the following review helpful
5.0 out of 5 stars The Power of Feedback September 28, 2007
Format:Paperback
This book is an excellent overview of why Continuous Integration is important and about more than just compiling frequently. The book helps you to understand why to do CI, what you can do beyond building, and how to do it. In addition to general principles, the book points you to some excellent tools and resources. This book is an excellent companion to Software Configuration Management Patterns: Effective Teamwork, Practical Integration; it provides teriffic information that support the build patterns in that book. You might already know some of the information in this book, but it is worth buying if you need to encourge CI in your organization for the clear discussion of why CI matters and the for the detailed advice on how to implement it.
Comment | 
Was this review helpful to you?
8 of 8 people found the following review helpful
5.0 out of 5 stars A must read book about Continuous Integration!!! July 25, 2007
Format:Paperback
This book is a must read for everyone delving into the practice of Continuous Integration. In my opinion, Continuous Integration is one of the most important practices to really achieve agility and to mitigate risks related to architecture and software integration.

The book contains more than 40 practices related to this important subject. For me, an experienced software engineer who already uses and knows a lot of CI tools, the best chapters are those which illuminate how to do Continuous Database Integration (Chapter 5), Continuous Testing (Chapter 6) and Continuous Inspection (Chapter 7).

Another great plus of this book is Appendix B on how to evaluate CI Tools. It gives a lot of hints to choose the right CI tool for your project or company.

Even if you are an experienced CI practitioner this book is a welcome addition. It shows why each practice is important and what are the benefits to use it on a SW development project.

If you are a beginner or intermediate practitioner in the Continuous Integration World this book is a must have. You will receive a lot of wisdom collected by the authors during their careers.

If you don't know what is Continuous Integration read the great article by Martin Fowler.

Spare you a lot of integration and software quality headaches reading this excellent book!
Comment | 
Was this review helpful to you?
6 of 6 people found the following review helpful
3.0 out of 5 stars Averagely good August 18, 2011
By NDev789
Format:Paperback
The content of the book is good, All the theory of continous integration is covered.
The inspiration of the writer is great, but there is "so much, so much" repetition.
I sincerly think that, when aggregated the book would take only 40 pages.
Comment | 
Was this review helpful to you?
6 of 6 people found the following review helpful
Format:Paperback
Software development is (normally) about automating tasks for other people, allowing clients to be more productive at what they do and allowing them to be more reliable in what they do. Automation reduces risk by reducing scope for manual error, particularly for repetitive and mundane tasks. What software developers have often not been so good at is automating the repetitive tasks that they do themselves to improve their own performance and reliability. Whether this is their own decision or because management don't allocate time or resources to do this automation varies from site to site. The evidence is clear though, even from my own experience, that sites where automation is used properly are far more productive, produce more reliable systems and are more fun places to work. I've worked places where this has been done well, I've also worked places where automation has never even been considered. In those latter cases I've done my best to introduce it, usually in incremental steps, with projects becoming far more efficient and reliable as a result. Just this week, whilst automating the building of existing systems for a client, I identified five projects developed by the client that couldn't be built from what was in version control - that alone is evidence that automation is required and, for this client, long overdue.

"Continuous Integration - Improving Software Quality and Reducing Risk" describes this automation, covering everything from automated compilation through to automated deployment, covering topics such as automated testing, inspection etc along the way. It has a leaning towards Java environments, but also refers to tools for .Net (although it doesn't make explicit whether this means true "managed" .
Read more ›
Comment | 
Was this review helpful to you?
Most Recent Customer Reviews
5.0 out of 5 stars Very practical
The book is very practical, concerning the real activities needed to implement continuous integration. It is recommended mainly to beginners in the area. Read more
Published 1 month ago by Juliano Malacarne
3.0 out of 5 stars Good Coverage of the Basics
Continuous Integration does a good job of explaining the basics of building a CI system and offers good advice on getting in the groove of CI and staying there. Read more
Published 5 months ago by Todd Trimble
4.0 out of 5 stars Accurately describes all aspects of the subject matter
Had to read this as part of my job, and glad that I was required to do so. This is an excellent book for those wanting to learn about the continuous delivery model, effectively... Read more
Published on January 7, 2012 by Sebastian
5.0 out of 5 stars A must read book for all
You are somebody related to software development and you haven't read this book? Are you kidding me?
Yes, this is what i have to say about this book. Absolute must! Read more
Published on September 23, 2011 by Mohammad Nafees Sharif Butt
5.0 out of 5 stars Shared with Peers
This book was very informative for person in IT managerial and above. It addresses how to leverage development and build for future environment. Read more
Published on January 2, 2011 by Tuna_1961
4.0 out of 5 stars Good introductory overview with a hands-on approach and list of tools
I enjoyed reading this book, learned much from it and can recommend this book as a fast introduction to the practices of Continuous Integration. Read more
Published on May 3, 2010 by Juergen Kahrs
4.0 out of 5 stars Only one book needed for CI
If you just want to read only one book for CI this is it. The big plus for the book is its platform agnostic nature of it.
Published on March 29, 2010 by V. A. Raghavan
4.0 out of 5 stars Good Book
This is a very cleanly written, easy to jump into book on continuous integration. It's a fast read for those who are looking to get a good introduction into the subject, but... Read more
Published on May 19, 2009 by JR
3.0 out of 5 stars Fine for an introduction; otherwise of little help
If you have not been exposed to continuous build/integration, this book covers the approach along with the advantages and points you to some references. Read more
Published on July 7, 2008 by Ranger
5.0 out of 5 stars Readable, well-organized, outstanding
As Martin Fowler says in his foreword to this book, all of this information is available on the internet. However, that should by no means demean the value of this book. Read more
Published on January 3, 2008 by Markus Bockle
Search Customer Reviews
Only search this product's reviews
ARRAY(0xa4ae25f4)

What Other Items Do Customers Buy After Viewing This Item?


Forums

There are no discussions about this product yet.
Be the first to discuss this product with the community.
Start a new discussion
Topic:
First post:
Prompts for sign-in
 



Look for Similar Items by Category