Continuous Integration

Definition: A development practice that requires developers to integrate code into a shared repository several times a day. Each check-in is then verified by an automated build, allowing teams to detect problems early. (https://www.thoughtworks.com/continuous-integration)

Traditional ("waterfall") SDLC

Requirements --> Build --> Deploy --> Maintain --> Decommission

  • Building occurs after requirements are complete

  • Traditionally no transparency during development

  • Business requirements / needs can change before delivery of product.

Agile SDLC

Gather enough requirements to start development --> Iteration 1 --> Feedback --> Iteration 2 -- Feedback -- etc.

  • Goal is to deliver usable piece of project

  • Frequent deployments

  • User feed-back driven

  • Requirements placed into prioritized 'backlog'

About CI

  • By-product of the XP (Extreme Programming) methodology and TDD (Test Driven Development)

  • Aimed at preventing 'Integration Hell' at release time

  • Automated Testing

  • Testing performed on 'Clones of Production'

  • Developers only need to commit and push code -- automated build and deploy

Last updated