Home > Store

larger cover

Add To My Wish List

Continuous Integration: Improving Software Quality and Reducing Risk

Register your product to gain access to bonus material or receive a coupon.

  • Description
  • Extras
  • Reviews
  • Sample Content

Product Author Bios

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.

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.

 

Related Article

Q&A with Jolt Product Excellence Award Winner Paul Duvall

Author's Site

Please visit the author's website at www.integratebutton.com.

Customer Reviews

19 of 19 people found the following review helpful
5.0 out of 5 stars Covers all the major deployment and automation issues, August 11, 2007
This review is from: Continuous Integration: Improving Software Quality and Reducing Risk (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... Read more
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


11 of 11 people found the following review helpful
5.0 out of 5 stars The Power of Feedback, September 28, 2007
By 
Steve Berczuk (Arlington, MA USA) - See all my reviews
(VINE VOICE)   
This review is from: Continuous Integration: Improving Software Quality and Reducing Risk (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.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


7 of 7 people found the following review helpful
5.0 out of 5 stars A must read book about Continuous Integration!!!, July 25, 2007
This review is from: Continuous Integration: Improving Software Quality and Reducing Risk (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... Read more
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


Share your thoughts with other customers:
 See all 22 customer reviews...

Online Sample Chapter

Introducing Continuous Integration as a Way to Improve Software Quality and Reduce Risk

Index

Download the Index

Preface

Download the Preface

Foreword

Download the Foreword

Table of Contents

Foreword by Martin Fowler xiii

Foreword by Paul Julius xv

Preface xix

About the Authors xxxi

About the Contributors xxxiii

Part I: A Background on CI: Principles and Practices 1

Chapter 1: Getting Started 3

Build Software at Every Change 4

Features of CI 12

Summary 20

Questions 20

Chapter 2: Introducing Continuous Integration 23

A Day in the Life of CI 25

What Is the Value of CI? 29

What Prevents Teams from Using CI? 32

How Do I Get to Continuous Integration? 33

When and How Should a Project Implement CI? 35

The Evolution of Integration 36

How Does CI Complement Other Development Practices? 37

How Long Does CI Take to Set Up? 38

CI and You 39

Commit Code Frequently 39

Don't Commit Broken Code 41

Fix Broken Builds Immediately 41

Write Automated Developer Tests 41

All Tests and Inspections Must Pass 42

Run Private Builds 42

Avoid Getting Broken Code 43

Summary 44

Questions 44

Chapter 3: Reducing Risks Using CI 47

Risk: Lack of Deployable Software 49

Risk: Late Discovery of Defects 53

Risk: Lack of Project Visibility 55

Risk: Low-Quality Software 57

Summary 62

Questions 62

Chapter 4: Building Software at Every Change 65

Automate Builds 67

Perform Single Command Builds 69

Separate Build Scripts from Your IDE 73

Centralize Software Assets 74

Create a Consistent Directory Structure 75

Fail Builds Fast 76

Build for Any Environment 77

Build Types and Mechanisms 78

Use a Dedicated Integration Build Machine 81

Use a CI Server 85

Run Manual Integration Builds 86

Run Fast Builds 87

Stage Builds 92

How Will This Work for You? 96

Summary 101

Questions 102

Part II: Creating a Full-Featured CI System 105

Chapter 5: Continuous Database Integration 107

Automate Database Integration 110

Use a Local Database Sandbox 117

Use a Version Control Repository to Share Database Assets 119

Continuous Database Integration 121

Give Developers the Capability to Modify the Database 123

The Team Focuses Together on Fixing Broken Builds 124

Make the DBA Part of the Development Team 124

Database Integration and the Integrate Button 125

Summary 126

Questions 128

Chapter 6: Continuous Testing 129

Automate Unit Tests 132

Automate Component Tests 134

Automate System Tests 136

Automate Functional Tests 137

Categorize Developer Tests 138

Run Faster Tests First 141

Write Tests for Defects 143

Make Component Tests Repeatable 148

Limit Test Cases to One Assert 156

Summary 158

Questions 159

Chapter 7: Continuous Inspection 161

What Is the Difference between Inspection and Testing? 164

How Often Should You Run Inspectors? 165

Code Metrics: A History 166

Reduce Code Complexity 167

Perform Design Reviews Continuously 170

Maintain Organizational Standards with Code Audits 173

Reduce Duplicate Code 176

Assess Code Coverage 180

Evaluate Code Quality Continuously 182

Summary 185

Questions 186

Chapter 8: Continuous Deployment 189

Release Working Software Any Time, Any Place 191

Label a Repository's Assets 191

Produce a Clean Environment 194

Label Each Build 195

Run All Tests 196

Create Build Feedback Reports 196

Possess Capability to Roll Back Release 199

Summary 199

Questions 200

Chapter 9: Continuous Feedback 203

All the Right Stuff 205

Use Continuous Feedback Mechanisms 209

Summary 222

Questions 222

Epilogue: The Future of CI 223

Appendix A: CI Resources 227

Continuous Integration Web Sites/Articles 227

CI Tools/Product Resources 229

Build Scripting Resources 232

Version Control Resources 233

Database Resources 234

Testing Resources 236

Automated Inspection Resources 239

Deployment Resources 241

Feedback Resources 241

Documentation Resources 243

Appendix B: Evaluating CI Tools 245

Considerations When Evaluating Tools 247

Automated Build Tools 255

Build Scheduler Tools 263

Conclusion 272

Bibliography 273

Index 275

Downloadable Sample Chapter

Download the sample chapter

 
Best Value

Book + eBook Bundle  $104.98  $62.84

Book Price $46.39
eBook Price $16.45
eBook formats included

Buy

This book includes free shipping!

Buy

Book  $57.99  $46.39

Usually ships in 24 hours.

This book includes free shipping!

Buy

eBook (Watermarked)  $46.99  $37.59

Includes EPUB, MOBI, and PDF
About eBook Formats

This eBook includes the following formats, accessible from your Account page after purchase:

ePubEPUBThe open industry format known for its reflowable content and usability on supported mobile devices.

MOBIMOBIThe eBook format compatible with the Amazon Kindle and Amazon Kindle applications.

Adobe ReaderPDFThe popular standard, used most often with the free Adobe® Reader® software.

This eBook requires no passwords or activation to read. We customize your eBook by discretely watermarking it with your name, making it uniquely yours.

Purchase Reward: One Month Free Subscription
By completing any purchase on InformIT, you become eligible for an unlimited access one-month subscription to Safari Books Online.

Get access to thousands of books and training videos about technology, professional development and digital media from more than 40 leading publishers, including Addison-Wesley, Prentice Hall, Cisco Press, IBM Press, O'Reilly Media, Wrox, Apress, and many more. If you continue your subscription after your 30-day trial, you can receive 30% off a monthly subscription to the Safari Library for up to 12 months. That's a total savings of $199.