Continuous Integration & Continuous Delivery

Written by Rangle.io

Continuous Integration and Continuous Delivery

Defining Continuous Integration and Continuous Delivery

Continuous Integration (CI) has become an essential ingredient for teams doing iterative and incremental software delivery. CI is 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.

CI is a software engineering practice in which isolated changes are immediately tested and reported on when they are added to a larger code base. The goal of CI is to provide rapid feedback so that if a defect is introduced into the code base, it can be identified and corrected as soon as possible. CI software tools can be used to automate the testing and build a document trail.

CI has evolved since its conception. Originally, a daily build was the standard. Now, the usual rule is for each team member to submit work on a daily (or more frequent) basis and for a build to be conducted with each significant change. When used properly, CI provides various benefits, such as constant feedback on the status of the software. Because CI detects deficiencies early on in development, defects are typically smaller, less complex, cheaper and easier to resolve.

Cost of Change Source: http://www.agilemodeling.com/essays/costOfChange.htm

Continuous Delivery (CD) is the natural extension of Continuous Integration: an approach in which teams ensure that every change to the system is releasable, and that we can release any version at the push of a button. CD aims to make releases easy, so we can deliver frequently and get fast feedback on what users care about.

Continuous Integration for Greater Business Success

Rangle helps companies working with JavaScript fullstack technology to implement Continuous Integration for better success with their software development processes. With Rangle’s expertise in implementing CI/CD, organizations can become as lean, agile and innovative as the world’s leading fast-growth startups.

Continuous Delivery and Adopting The Modern Web

Continuous Delivery accelerates the building, learning and feedback process. By creating a deployment pipeline that reaches from the developer’s machine to the production server, steps between written code and final deployment in production are largely automated.

Six Key Principles for Moving to Continuous Delivery

  1. Small batch sizes focused on complete, deployable features.
  2. Well documented, clean code delivered in atomic, well described and tested commits.
  3. Single piece flow of code through the entire process.
  4. Automation and documentation to remove waste in the process.
  5. A thorough test suite to ensure that new features won't break old features.
  6. A trusted foundation built on continuous improvement and staff empowerment.

The Benefits of Continuous Delivery are Massive

Continuous delivery accelerates a lot of the benefits gained from Agile processes by increasing feedback, removing more waste from the process and emphasizing single piece flow and small batch sizes in your development and deployment pipeline. These are small concepts that add up in a big way. In the early 80s, Toyota built cars with just 10 person-hours of work versus the hundreds of hours of work that it took for more traditional car companies to achieve the same results. People do not see the waste of context switching and work-in-progress (WIP) management.

You Have a Unique Opportunity

Moving to modern JavaScript usually means a new codebase, and that means a fresh start at improving your development process. For most companies, that means Agile, test-driven development, clean-code initiatives, and a UX-driven development process. Approaching these in a Continuous Delivery manner offers profound benefits and the glue that can tie all these initiatives together. And it can be started simply by getting good Git, code quality, testing, and continuous integration in place and then slowly evolving to continuous delivery.

We can help you with your process consulting, building your entire initial or minimal viable product or help you specifically with effectively executing a stack migration to the modern web.