Skip to content


Why Continuous Integration?

ci

Continuous Integration (CI) is 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.
Martin Fowler

At a high level, the value of CI is to:

  • Reduce risks
    By integrating many times a day, you can reduce risks on your project. Doing so facilitates the detection of defects, the measurement of software health, and a reduction of assumptions.
  • Reduce repetitive manual processes
    Reducing repetitive processes saves time, costs, and effort.

    • The process runs the same way every time.
    • An ordered process is followed. For example, you may run inspections (static analysis) before you run tests—in your build scripts.
    • The processes will run every time a commit occurs in the version
      control repository.
  • Generate deployable software at any time and at any place
    CI can enable you to release deployable software at any point in time. From an outside perspective, this is the most obvious benefit of CI. With CI, you make small changes to the source code and integrate these changes with the rest of the code base on a regular basis. If there are any problems, the project members are informed and the fixes are applied to the software immediately.
  • Enable better project visibility
    CI has the following positive effects.

    • Effective decisions: A CI system can provide just-in-time information on the recent build status and quality metrics.
    • Noticing trends: Since integrations occur frequently with a CI system, the ability to notice trends in build success or failure, overall quality, and other pertinent project information becomes possible.
  • Establish greater confidence in the software product from the
    development team
    Overall, effective application of CI practices can provide greater confidence in producing a software product. With every build, your team
    knows that tests are run against the software to verify behaviour, that
    project coding and design standards are met, and that the result is a
    functionally testable product.

References:
[1]
Continuous Integration by Martin Fowler
[2]
Continuous Integration: Improving Software Quality and Reducing Risk by Paul Duvall, Steve Matyas and Andrew Glover

Posted in Agile, Software Engineering.

Tagged with , .


3 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. Chris Gardner says

    This is a nice writeup on CI. Contrast it with the following:

    http://www.cmcrossroads.com/content/view/12735/120/

  2. Abdullah Cetin CAVDAR says

    Good practices about making the CI process better by applying standards. Thanks Chris.

Continuing the Discussion

  1. Podcast #2 - Android App Builds in der Cloud | Thoughts On Mobile linked to this post on June 24, 2012

    [...] Why Continuous Integration Posted by Leif Janzik (ThoughtsOnMobile) Android, Android Stand, Apps, Build, CI, Continuous Integration, Development, Java, Maven, Maven2, Mobile Permalink Android Apps mit Maven bauen [...]



Some HTML is OK

or, reply to this post via trackback.