DevOps

DevOps Distilled

Introduction

DevOps is a very hot topic nowadays. From its origins in industry, it has focus on waste elimination. Waste is produced within organizations, processes, activies, procedures and day-to-day tasks either consciously or unconsciously.

The fundamental concept in DevOps philosophy is Core Chronic Conflict. It’s like an irreconciliable difference between two entities. It is this conflict that essentialy produces waste.

1. Core Chronic Conflict

Inside organizations there are many areas, departments and roles. Each one has its own objectives to add value to organization. But in many cases, there are two areas that work closely to each other, but its objectives are opposite in nature. This affects high-level business objectives. Specifically, Dev tries to change production environment frecuently, whereas Ops must ensure stability. Given this the need for compatibility between objectives is imperative or business will suffer the consecuences. Another example is “doing it right” vs “doing it fast”. Another one is functional vs non-functional requirements, tipically resulting in generating functionality at the expense of technical debt[1].

2. Principles

DevOps has 3 principles focusing on flow, feedback and learning[1].

2.1 Flow Improvement

Main ways to improve flow consist of fundamental principles of Kanban: visualize work and limit work in progress. “Divide to conquer” must be applied in order to minimize batch sizes of processing and delivering.

2.2 Feedback Improvement

Early detection and correction of errors in production must be the mantra. People has to be aware of what is doing in the process and to be open to receive constructive feedback from the following element in value chain.

2.3 Continual Learning and Experimentation

Human being learn by experience, so experimentation is essential to learn and to get more knowledge even on topics that are considered obvious. Experience implies mistakes and promote a culture of fail fast to learn soon is fundamental.

Conclusions

With some deep understanding of Lean, Agile, Systems Theory, Constraints Theory and Core Chronic Conflict plus DevOps principles, it can be relatively easy to translate philosophy to other fields or inside IT to another areas or roles. Identifiying Core Chronic Conflict and appliying the esence of DevOps principles can help to eliminate waste and to improve relationship between conflicting entities[2].

Your comments are important so we can share knowledge, ideas and thoughts about DevOps.

References

[1] Kim G., Debois P., Willis J., Humble J., The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations, 2016.
[2] Kim G., Behr K., Spafford G., The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win, 2018.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.