A-Z Popular Blog Agile Search »
Management
 Advertisements
Management Theory

Management Functions

Change Management

Project Management

13 Principles of Continuous Integration

 , updated on
Continuous integration is the practice of merging the code of multiple software developers several times a day. This is a foundation for agile development and continuous delivery whereby code is incrementally developed, built, deployed and tested such that it is regularly available for release. The following are basic principles of continuous integration.

Short Development Cycles

Organize work into short development cycles that produce working functionality.

Version Control

Use of a version control tool that provides versioning and a history of builds and files.

Everyone Commits Daily

In principle, all developers commit working code to a shared baseline each day.

Every Commit is Built & Tested

Every commit to the baseline triggers a build. Developers unit test their code in the common build.

Fix Broken Builds Immediately

Fixing broken builds is prioritized as there are more code changes coming at a continual pace and things get messy if build problems pile up.

Rapidly Detect Problems

The entire philosophy behind continuous integration is that problems should be detected as early as possible. This principle can be applied in countless ways. For example, automated regression tests may be organized such that commonly broken functions are tested first.

Automate the Build

The build is automated and designed for speed.

Automate Testing

Toil is reduced by automating testing where possible including build testing, unit testing and automated acceptance testing that includes regression tests.

Automate Deployment

Environments can be deployed with the press of a button. In some cases, deployment is automatically triggered by criteria such as a green light in automated testing.

Use a Deployment Pipeline

Testing environments progress from those that are completely unstable and changed several times a day to environments such as user acceptance testing and production staging that are deployed less often to provide a stable environment for testing. The following is a typical deployment pipeline process.

Test Reflects Production

Every effort is made to have test environments such as UAT reflect production, often at reduced scale. This includes elements such as platforms, systems, infrastructure, architecture and data.

Builds are Transparent

Everyone can see what a build contains including a list of implemented requirements and/or fixed defects.

Builds are Available

Everyone can access a build. For example, a user acceptance testing team can access an environment with the latest build at any time.
Overview: Continuous Integration
Type
Definition
The practice of merging the code of multiple software developers several times a day.
Related Concepts
More about coding:
Abstraction
Algorithms
API
Bootstrapping
Caching
Code Refactoring
Code Smell
Complexity Hiding
Components
Deep Magic
Edge Case
Event Processing
Forward Compatibility
Hardcoded
IT Artifact
IT Examples
Layers
Microservices
Negative Code
Precomputation
Proof Of Work
Pseudorandom
Reusability
Scalability
Software Design
More ...
If you enjoyed this page, please consider bookmarking Simplicable.
 

References

Fowler, Martin, and Matthew Foemmel. "Continuous integration, 2006." URL http://martinfowler. com/articles/continuousIntegration. html (2012).

Continuous Delivery

A complete guide to continuous delivery including a process overview and comparisons.

Deployment Pipeline

A complete overview of deployment pipelines.

Continuous Integration vs Continuous Delivery

The difference between continuous integration and continuous delivery explained.

Agile Change Management

An overview of agile change management with examples.

Agile

An overview of agile principles new and old.

Scrum

A list of basic scrum techniques and conventions.

Self-Organizing Team

An overview of self-organizing teams.

Methodology vs Body Of Knowledge

The difference between a methodology and a body of knowledge.

Agile Planning

The common types of agile planning.

Overplanning

A list of planning reduction techniques for business.
The most popular articles on Simplicable in the past day.

New Articles

Recent posts or updates on Simplicable.
Site Map