Agile Journeys

View Original

Streamline your Delivery Pipeline by Empowering DevOps Culture

Last year we were asked to analyse the processes follow for an startup which grew from ten to fifty people in less than two years. The engineering teams were working long hours in a regular basis but the deliveries kept going delayed.

When we started to analyse the day by day of the teams we detected high rates of manual work. Team members were spending more time doing repetitive work than actually creating new features and delivering business value to the clients.

The solution we implemented to boost productivity went through redesigning the whole Delivery Pipeline, incorporating the right tools to implement Continuous Integration (CI) and Continuous Delivery (CD) in the organisation and transform the current Infrastructure Team in a currently so called DevOps Team.

We realised at this point, such concepts were leading to confusion between the engineers themselves. Hence, we have decided to define few terms and definitions and share here so we are all clear about them.

Continuous Integration

Continuous Integration (CI) is a software development discipline 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 build automatically and verified by automatic tests (Unit Tests, Integration Tests, Functional Tests, User Interface Tests) to detect integration errors as quickly as possible.

Continuous Delivery

Continuous Delivery (CD) is a software development discipline where a team build software in such a way that the software can be released to production at any time. Continuous delivery is a series of practices designed to ensure that code can be rapidly and safely deployed to production by delivering every change to a production-like environment and ensuring business applications and services function as expected through rigorous automated testing. Since every change is delivered to a staging environment using complete automation, we can have confidence the application can be deployed to production with a push of a button when the business is ready.

Continuous Deployment

Continuous Deployment is the next step of Continuous Delivery. Every change that passes the automated tests is deployed to production automatically. Continuous deployment should be the goal of most companies that are not constrained by regulatory or other requirements but it may not be necessary in all the cases.

If you are interested to know more, we recommend you the IBM Understanding DevOps videos by Sanjeev Sharma.