

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 |