Consulting & Innovation
Solutions & Technologies
Infrastructure & Operations
Industries
More
Blog
Titelbild_Blogartikel_Aus Agil wird DevOps

Agile becomes DevOps

Origin and implementation of DevOps principles

How DevOps is changing software development
14.09.2017
Cloud
Technical

In 2001, a group of U.S. developers wrote the Agile Manifesto in order to shorten development times for new features and to be able to implement customer feedback as early as possible.

Since then, many companies have tried to make their development more customer-oriented and to react more flexibly to requirements. Scrum teams have been formed, sprints planned, retrospectives conducted, ...

But all these methods only help in the first phases of the software development process: in planning, requirements analysis and implementation - but not in testing, deployment and especially not in operation.

Where DevOps begins and where it ends

Bild_02_Blogartikel_Aus Agil wird DevOps

DevOps encompasses all steps of software development, integrating existing and proven methods into a holistic approach. The goal is to reduce the duration of development cycles as far as possible and to deliver higher product quality.

Agile

The software development process begins with the planning of the release and its development. This is where the corresponding agile method toolbox comes into play: the sprints are planned and the backlog is refined. But this is already the last agile step in the software production process. All further steps are the same - regardless of whether we work according to the waterfall, V-model or agile approaches.

Continuous Integration

A source code check-in by the developers triggers the integration process. Among other things, this process starts automated software tests that give developers feedback on their code and error-free interaction with other modules. Since the process should run several times a day and be as automated as possible, it is referred to as Continuous Integration. However, frequent execution can only be achieved if as many tests as possible are automated. It is impossible to assign a tester to click through test plans manually after every check-in.

Continuous Deployment

The responsibility of the developers ends at the latest with the handover to the operations team. The software is often installed and tested once again on a separate test system. Deployment can also take place directly on a staging/production environment. If development has also been highly automated in this case and can be quickly rolled out to a production system, it is referred to as Continuous Deployment or Continuous Delivery. The Agile Manifesto defines the result of a sprint as a "potentially shippable" software package, but does not insist that every sprint is also rolled out. Often, multiple sprints are collected and a release from two to four sprints is handed over to the customer.

Last but not least, a complete cycle includes operations. The application and the infrastructure need to be monitored. The results should flow back into the next planning.

The feedback idea was already fundamental in agile approaches, DevOps picks up the idea and takes it further. Understanding user behavior and system usage are indispensable for continuous improvement. But it's not just operations that should provide feedback. Every step in this circle must be permanently critically scrutinized. This way, a continuous improvement process for testing, integration, deployment, etc. can take place. Only through this feedback innovation for the software itself and innovation for the entire production process takes place and the quality of the product increases.

When is DevOps implemented

Bild_01_Blogartikel_Aus Agil wird DevOps

The core of the Continuous philosophy is, as the name suggests, that it is always applied. So when developing according to DevOps, the entire cycle is run through with every code change. Each check-in by the developer leads to the building of the product, the execution of all tests, the rollout and, ideally, directly to productive use. Several releases per day are thus possible. The whole process is supported by removing the separation between the business, tester, developer and operations teams. All stakeholders are brought together as one integrated team for a product and its entire lifecycle.

Deploying on every code change, maybe even on production environments, sounds like a crazy idea at first. But there are now many ways to achieve such a thing: Container technologies have created new automation possibilities, microservices and cloud concepts allow scaling and deploying differently, for example with rolling updates - without immediately affecting all end users.

DevOps is lived differently in every company, because every company is based on a different starting point. The objective of DevOps must be clarified at the beginning. It is important to identify and actively address individual stumbling blocks that lie in the respective corporate structure and culture.

DevOps as software development culture

DevOps therefore means applying agile ideas with rapid feedback and flexible adjustments to the other areas of the application lifecycle. DevOps stands for the possibility of deploying 100 releases a day and the opportunity to achieve this goal through innovative freedom.

Tremendous potential is awakened through trust in the team's abilities and their freedom to find the best possible solution. This culture change for software development enables the team to identify more closely with the product, ultimately reducing time-to-market and increasing software quality in the process.

Hardly any software product can afford a lack of innovation, long release cycles or poor quality, and certainly not in a cloud context.

The triumph of DevOps has begun.

Time-To-Market is between two cups of coffee

Having an idea at the coffee machine in the morning and the first customers using the feature in the afternoon - not an utopia with DevOps! 

API development - Service as a Service

DevOps, high automation and decoupled microservices require well-maintained interfaces: Welcome to the world of APIs.

Written by

MA_Kathrin_Kleinschnittger_Cloud
Thomas Zühlke
Experte für Cloud Architekturen