Thursday, November 28, 2013

Continuous Delivery - process and requirements

The timely implementation and delivery are essential when it comes to achieving the real customer satisfaction in the software segment. The existing release models have proved in practice to be too inflexible and cannot meet these new requirements. The concept of Continuous Delivery should help to solve this problem.


Continuous Delivery begins where continuous integration stops. Now the software will not only continuously built and tested, but also delivered.
The idea of the faster software delivery has been originated by internet companies. There is the biggest pressure of course.

For platforms like Facebook, Etsy und Flickr is the Continuous Delivery the way how they work day by day, or better "hour by hour".

There are two very important requirements for establishing of Continuous Delivery.
As first a modern agile development process like Scrum is necessary. The close cooperation and bigger responsibility of every team member are the key reasons.
As second the Continuous Delivery Process builds upon an established Continuous Integration process.

The implementation of this concept requires radical re-thinking of the developers.
The focus in Continuous Integration is on the developers, however in Contionous Delivery the focus is on the customers, or the users.

Between a successful build and the availability for the customer is unfortunately a release.

The new standard is based on an technical abstraction called  Deployment Pipeline. The Deployment Pipeline defines so called stages with a different number of action in each stage.

The Build-Artifacts may be created just once! (see the yellow arrow in diagram)
It is very important to be sure, in each environment is the same binary on testing. I could tell you so many examples from the praxis, where this simple rule has been ignored and causes a lot of problems and errors in deployment process.

The created artifacts are stored in a repository and will be forwarded (installed) on each environment from this ("single") repository.


Often is the installation in the productive environment triggered manually, so called "sign-off".

Agile Manifesto:
"Our highest priority is to satisfy the customer through early and continuous delivery of valuable software."

In this post are described the agile development process, automation and the requests connected with the organization.

But also the software product has to comply with certain requirements in respect of Continuous Delivery Standard. But about this in one of my next posts on this blog.