By: Harshit
June 28 2019

What does a good delivery pipeline look like?

Technology deliveries are becoming one of the main points of concern in today’s landscape. Clients expect things to be seamlessly handled and deployed but they depend on us for facing the bottlenecks and hurdles on the way. A good delivery pipeline takes into consideration everything, let’s discuss those beneath. 

Continuous delivery pipeline
Source: Scaled Agile, Inc

Why are pipelines so important ?

A good delivery pipeline is reliable and consistent in nature, it’s very tight ended and hard to escape. In the absence of pipelines, things won’t be streamlined and often will get derailed. Building code isn’t fun, packaging things and managing dependencies between versions sucks, and having someone waiting around to make sure every successful build gets put in the correct test environment right away is a bad use of everyone’s time.

What are some traits of a good pipeline ?

The process should feel automated and systematic 

As much as we like automation, there is still a need for human interaction in the process of delivering software. But a lot of things can be done to make this interaction lesser and lesser day by day. 

To make sure the quality quotient remains as sturdy as ever, it is important to make sure that some automated process fulfil their underlying procedural requirements and before any manual testing, it's best to ensure that all automated stages have passed the build in an environment that is as similar to production as your project can afford. This way, not only will the application be tested, but also the configuration in which it will run. Doing that, you can save people's time by avoiding running into environment issues. 

Ensures quality process is not being compromised on  

There isn’t any rule which defines what should go in the pipeline and what shouldn’t. Anything which meets or contributes to the quality standards has the ability to get induced in the pipeline. 

Teams often forget that some tests are cross functional and they would like to be. However, there are some verifications that teams don’t always remember, like the cross-functional tests. These tests are usually about performance, but can test the load the application can take or even look for security breaches. 

There is a strong feedback process in place 

Having quality checks built into the pipeline is great, but the team also needs to receive feedback upon every check in, and it should be technically faster than the usual pace. The feedback should be systematically worked upon the items which need to be implemented should be immediately implemented. 

When thinking about providing fast feedback, we must follow the idea of failing as soon as possible. Faster tasks, like code lint or unit tests, should be among the first to run, whereas manual test or performance checks should only happen after we are sure that the code is sound. 

The version controls are always accessible and deliverable  

The one smooth part about continuous deliveries is the regular deployments and every commit just going in production immediately. Business can decide when to go live with a particular feature as per business requires and they shouldn’t need to be dependent on anyone who is developing the software. It's actually enabling the business to decide when to go live with a feature, without having to ask for permission from the team developing the software. If it makes sense to deploy daily, hourly or monthly, it is up to the product team to decide.

Final Word 

A good delivery pipeline doesn’t compromise over the standards in terms of anything, may it be quality or deployments or management. There are presumably less dependencies and blockers in a good delivery pipeline. It doesn’t choose to  It doesn’t compromise over the standards in terms of quality or deliveries, it just makes sure there are no blockers and everything operates in continuous sync with one another.