DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
  1. DZone
  2. Testing, Deployment, and Maintenance
  3. Deployment
  4. The Benefits and Challenges of Continuous Integration

The Benefits and Challenges of Continuous Integration

This primer on continuous integration irons out the definition and explains the various benefits and challenges of implementing CI.

Jeffrey Lee user avatar by
Jeffrey Lee
·
Oct. 23, 17 · Opinion
Like (7)
Save
Tweet
Share
14.00K Views

Join the DZone community and get the full member experience.

Join For Free

Without a doubt, continuous integration (CI) has become a mainstream principle for software development. The benefits of CI are well-known across the industry and it would be hard to find anyone who would argue against implementing it.

Here, I wanted to gather those benefits into one central place. But I also thought it would be fun to play devil’s advocate and try to find the drawbacks, or challenges, of continuous integration.

What Is Continuous Integration?

Fundamentally, continuous integration (CI) is a development practice where developers integrate code into a shared repository serval times a day. In that repository, the code is verified by an automated build that detects any problems early in the process. This allows teams to spend less time backtracking and more time building new features.

The Benefits of Continuous Integration

1. Risk Mitigation

According to Martin Fowler, the most substantial benefit of continuous integration is reduced risks. By deferring code integration, teams increasingly compound the number and severity of their merge conflicts. When teams integrate frequently (with an automated build), they reduce the number of potential risks because they always know the current state of their system.

2. Quality Insurance

Teams that implement continuous integration have greater confidence in their operations. They know the automated build is catching defects immediately, which allows them to promise quality. They aren't guessing the number of bugs in their system either, which allows them to give accurate numbers to their teammates and a better service for their customers.

3. Increased Visibility and Enhanced Teamwork

An automated build provides a team complete visibility into their system. They know the number of issues and can combat them quickly. Increased visibility also allows teams to coordinate before a small issue turns into something bigger. 

The Challenges of Continuous Integration

1. Organizational Culture Changes

Some businesses prefer traditional methodologies and might have a hard time implementing continuous integration. They would have to retrain staff members, which would mean overhauling existing operations. Managers may be resistant because continuous integration doesn’t help them meet their immediate company objectives (e.g. money over quality).

2. Difficult to Maintain

Building an automated code repository is not a simple task. Teams must build the proper testing suite and spend time writing test cases versus developing code. At first, this could slow them down and make them lose faith in completing their own projects on time. If the testing suite isn’t stable, it could work perfectly on some days, but other days it may not work. The team would then have to spend more time trying to figure out what happened.

3. Numerous Error Messages

For larger development teams, they may see CI error messages daily and start ignoring them all together because they have other tasks and concerns. They may start to see a broken build as a normal thing and defects could start accumulating on top of each other.

Continuous Integration/Deployment Integration

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • DZone's Article Submission Guidelines
  • How to Submit a Post to DZone
  • How To Check Docker Images for Vulnerabilities
  • A Brief Overview of the Spring Cloud Framework

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: