How to stop worrying and start enjoying working with others — a CI/CD story (with a scoop of ice cream 🍨)

Stage#0: basic manual deployment setup, no ci/cd
Stage#1: adding a remote repository, still no ci/cd

Goal # 1: prevent merge hell🔥

Kate and Bob worked independently in their local branches, they got into a zone where they were modifying many lines of code, bringing new features and occasionally refactoring code in the files they were changing💃. One change was bringing another, and it felt ages till they were done with their commits.

oops!

Continuous integration to the rescue!⛑️

Continuous integration helps minimising merge problems and keeping code coherent. How is it done? Let’s look at the changes in the development practices, which Kate and Bob embraced.

Stage#2: introducing continuous integration

Goal # 2: boost the quality

With multiple changes to the project it is easy to lose track of global picture and with new functionality break old features. To prevent this from happening our team decided to introduce two new types of tests: smoke tests and user acceptance tests.

Continuous delivery to boost quality

The goal of continuous delivery is to prepare the code changes to be released to production. This can serve different purposes — deploying to separate environments, running integration tests, performance tests, smoke tests and acceptance tests.

Stage#3: introducing continuous delivery

Goal # 3: shorten time to market

Our imaginary team has set up continuous integration and continuous delivery, but someone still has to press the button to deploy the changes to production.

Stage#4: introducing continuous deployment

Many more goals: learn customer preferences, do gradual roll-outs and many other things

When teams and projects grow they uncover new needs and there are many scenarios where CI/CD can help. For example, you can add instruments to apply AB testing to learn more about the customers, roll out features gradually, notify other teams/members to make specific reviews, run visual tests to check for regressions and many other things.

Conclusions and what’s next

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Olena Kutsenko

Olena Kutsenko

Software engineer, who is passionate about agility and sustainable software development achieved through simplicity, technical excellence and good design.