Over the past few years, DevOps has become an essential approach in the IT field. It aims to bridge the gap between development and operations to improve agility, quality, and the speed of software deliveries. However, in many organizations, it is still reduced to a mere implementation of tools such as continuous integration and deployment (CI/CD), orchestration with Kubernetes, or infrastructure as code (IaC).

This technical and mechanistic vision of DevOps overlooks a crucial dimension: the complexity of human and technical dynamics within DevOps. Indeed, a DevOps transformation is not just about automation or tools but also about team organization, culture, interaction management, and adaptation to unforeseen events. A simplistic approach can therefore lead to resistance to change, hidden silos persisting, or even SRE teams burning out due to unrealistic expectations regarding stability and speed.

To better address these challenges, it is necessary to adopt a more global and systemic approach. Complexity thinking, developed by Edgar Morin, provides a framework for better understanding DevOps dynamics by considering interactions, uncertainties, and feedback loops.

In this article, we will explore the fundamental principles of complexity thinking and see how they can enhance and improve DevOps practices by bringing a more holistic and adaptive vision of systems.



Complexity Thinking: A Necessity for DevOps

DevOps is often seen as a simple solution to complex problems. Many companies adopt it, thinking that simply setting up CI/CD pipelines, automating deployments, and using Kubernetes will yield all the benefits. This reductionist view of DevOps, while effective in the short term, obscures the real complexity of IT and organizational environments.

Why Simplistic Thinking Fails in DevOps

An overly simplistic approach to DevOps is based on three cognitive traps that can limit its effectiveness:

  • Reductionism:

Many reduce DevOps to tools and automated processes: “DevOps is just CI/CD.”

In reality, DevOps is much more than a set of technical practices. It involves organizational transformation, a culture of collaboration, and efficient management of information flows between teams.

  • Binary Division:

Some still see DevOps as a strict alternative to traditional methods: “We either do DevOps or stick with traditional Ops.”

This perspective rigidly opposes approaches that, in reality, often coexist. In many companies, DevOps practices are implemented progressively, integrating with existing models.

  • The Illusion of Total Control:

With the rise of automation and observability, one might believe that everything can be controlled: “Everything is automated, so everything will go smoothly.”

However, even with well-established processes, uncertainty remains. Systems are dynamic, unpredictable, and interdependent. An approach that fails to account for this complexity often leads to disappointment when incidents occur despite all precautions.

A Brief Introduction to Complexity Thinking

To overcome these limitations, it is essential to adopt a more global and interconnected mindset. This is precisely what Edgar Morin, philosopher and sociologist, proposes through his theory of complexity thinking.

Complexity thinking is based on two major principles:

  • Interconnection: A phenomenon cannot be understood in isolation; it is part of a network of interactions where each element influences the others.
  • Multidimensionality: A system cannot be reduced to a single explanation or discipline; it must be analyzed from multiple perspectives (technical, human, organizational, etc.).

By applying these principles to DevOps, we understand that it is not just a technical methodology, but a living ecosystem, constantly evolving.

In the next section, we will explore how the key concepts of complexity thinking can enhance DevOps and help better address its challenges.


What Complexity Thinking Can Bring to DevOps

Applying Edgar Morin’s complexity thinking to DevOps allows for a more nuanced and effective vision of IT and organizational systems. Rather than excessively simplifying DevOps dynamics, the goal is to recognize and leverage the richness of interactions within it. Here’s how several principles of complexity thinking can enhance DevOps practices.

Dialogical Principle: Reconciling DevOps Tensions

DevOps is based on collaboration between development (Dev) and operations (Ops) teams, which have historically had opposing objectives:

  • Developers strive to deliver new features quickly,
  • Ops teams aim to ensure system stability and reliability.

These two approaches may seem contradictory, but in reality, they are complementary.

  • What complexity thinking brings:
    Edgar Morin’s dialogical thinking teaches us that instead of merging these two logics into one, it is more relevant to acknowledge their coexistence and learn to orchestrate them. DevOps should not be about completely merging roles but about intelligently managing the tensions between speed and stability.

The Contribution of the Included Third Principle

A key concept that extends the dialogical principle is the thinking of the included third. Unlike binary logic, which opposes two conflicting elements, the thinking of the included third proposes a third way, which integrates these tensions to generate a new model.

Why is this important in DevOps?

In DevOps, this logic is essential because it helps us understand that automation does not replace humans but redefines their role. Rather than viewing automation as the elimination of manual tasks, it should be seen as a transformation of human work towards higher-value-added tasks.

  • Concrete example:

    In Site Reliability Engineering (SRE) culture, there is a concept of “toil reduction”:

    • Automation reduces repetitive tasks (toil) but does not make Ops teams obsolete.
    • It enables engineers to focus on continuous improvement, optimization, and solving more complex problems.

Thus, Dev and Ops are not simply two opposing or merging forces, but they generate a new hybrid model where each adopts new responsibilities.

  • How to improve DevOps?
    • Encourage a culture of learning in tension, where teams accept that their objectives may sometimes be opposed but are always interdependent, recognizing that compromises may be necessary between speed and reliability.
    • Implement regular post-mortems, where every incident becomes an opportunity for collective improvement.
    • Promote constant feedback between Dev and Ops to continuously adjust practices, learn from failures, and refine the balance between Dev and Ops.
    • Integrate the thinking of the included third into how roles evolve with automation and new DevOps practices.

Organizational Recursion Principle: A DevOps Learning Loop

In a complex system, each element influences the whole and is, in turn, influenced by it. In DevOps, this means that practices constantly evolve based on observed outcomes.

  • What complexity thinking brings:
    • DevOps should be seen as a continuous learning cycle. A production incident, for example, should not be treated as a mere anomaly to fix but as a source of improvement for development and operations processes.
    • Another key concept of complexity thinking is auto-eco-organization. Edgar Morin explains that a living system does not simply follow external rules but self-organizes in response to its environment.

Why is this important in DevOps?

Auto-eco-organization directly applies to DevOps: teams should not simply follow rigid top-down processes but rather adapt naturally to real-world constraints. The best DevOps organization is one that emerges organically from the teams themselves through experimentation and continuous learning, rather than a predefined structure imposed without consideration for local specificities.

  • How to improve DevOps?
    • Establish short feedback loops, where each encountered issue feeds into a continuous improvement cycle.
    • Foster a culture of self-organization within teams, where decisions are made based on past experiences rather than fixed rules.
    • Promote frequent retrospectives on deployments and incidents to adjust practices in real time.
    • Encourage an organic adaptation of processes, giving teams the freedom to experiment and optimize their workflows based on real-world needs.

Hologrammatic Principle: Each DevOps Team Influences the Whole

A complex system cannot be reduced to the sum of its parts: each element contains a representation of the whole and can have a global impact. This means that a single team or a single technical decision can have repercussions far beyond its immediate scope, as every part of the system influences the whole.

  • What complexity thinking brings:
    In a DevOps organization, the choices of a single team can affect the entire system. A persistent silo within one team can slow down the entire delivery pipeline, and a poorly implemented tool like Kubernetes can introduce large-scale issues.

  • How to improve DevOps?

    • Encourage a collective vision through cross-functional teams where everyone understands their role and the broader impact of their decisions.
    • Develop and reinforce a culture of transparency and communication, where technical choices are shared and debated collectively to avoid hidden silos.
    • Involve developers, Ops, and SREs in global decision-making rather than confining them to their specific areas.

Managing Uncertainty: DevOps as an Adaptive System

Modern systems cannot be controlled rigidly. Their unpredictability requires adaptive and resilient strategies. Incidents and failures are inevitable.

  • What complexity thinking brings:
    Complexity thinking encourages embracing uncertainty as a fundamental characteristic rather than an anomaly to eliminate. It pushes for the development of systems that do not aim to avoid failures but rather resist and adapt quickly when they occur.

  • How to improve DevOps?

    • Foster a culture of resilience, where teams see failures as learning opportunities.
    • Adopt Chaos Engineering practices to test system resilience by simulating failures.
    • Organize Game Days, where teams face crisis scenarios to better anticipate the unexpected.
    • Promote a blameless culture, where post-mortems focus on learning rather than assigning blame.

Transversality and Interdisciplinarity: Redefining DevOps Culture

DevOps is sometimes reduced to a technical methodology, but it is above all a cultural transformation that involves human, organizational, and cognitive aspects just as much as tools. It blends technology, organization, psychology, and change management.

  • What complexity thinking brings:
    Complexity thinking emphasizes that a system cannot be understood from a single discipline or perspective. Applying this approach to DevOps helps avoid an overly technocentric view and considers human dynamics, organizational constraints, and the impact of technical decisions on company culture.

  • How to improve DevOps?

    • Train teams in the principles of systems thinking and complex interactions, alongside technical skills.
    • Encourage regular exchanges between Dev, Ops, Sec, and Business teams to better understand each other’s expectations and constraints.
    • Value soft skills, such as communication and collaborative problem-solving, as much as technical skills.

Towards a DevOps More Aware of Its Complexity

Applying complexity thinking to DevOps helps overcome simplistic and mechanistic views that often limit its effectiveness. Rather than seeking ready-made solutions, it encourages considering all interactions, embracing uncertainty, and fostering a culture of continuous learning.


Conclusion and Perspectives

DevOps is much more than just a technical approach focused on automation and tools. It is a dynamic ecosystem where technical, organizational, and human aspects intersect. Yet, it is often approached too simplistically, which can limit its effectiveness and lead to failures.

In reality, Edgar Morin’s complex thinking does not fundamentally change DevOps but rather reveal and strengthen a dimension that is already intrinsic to it. By nature, DevOps relies on team interconnection, continuous adaptation, and uncertainty management, all of which resonate with complexity thinking. However, in practice, these aspects are sometimes overlooked or neglected in favor of a more mechanistic view focused solely on tools and automation. Refocusing on this complexity allows for a more holistic and effective approach to DevOps systems. It also helps avoid common pitfalls, such as reducing DevOps to a mere technology stack, rigidly separating roles, or maintaining the illusion of total control over infrastructure and processes.

Towards a More Evolving DevOps Culture

To fully embrace complexity thinking, organizations must foster a culture of continuous learning, where experimentation, adaptation, and collaboration are at the heart of practices. This involves:

  • Integrating feedback loops at all levels (development, infrastructure, security, users).
  • Accepting uncertainty as a normal component of the system, with practices like Chaos Engineering and blameless post-mortems.
  • Breaking down silos by encouraging regular exchanges between Dev, Ops, Sec, and Business teams for better mutual understanding.

And You?

How do you apply complexity thinking in your DevOps practices? What mechanisms have you implemented to manage uncertainty, encourage collaboration, and avoid the pitfalls of a rigid approach?

By applying Edgar Morin’s insights on complexity thinking, we can strengthen DevOps’ ability to become a truly adaptive system, capable of continuously evolving in response to technological and organizational challenges.

References

Introduction à la pensée complexe
Introduction à la pensée complexe

Edgar Morin

Collection Points Essais, Éditions Points

2014, 160 pages, Paperback, French

ISBN: 978-2757842003

On Complexity
On Complexity

Edgar Morin

Hampton Press

2008, 127 pages, Paperback, English

ISBN: 978-1572738010

Edgar Morin
Edgar Morin

French philosopher and sociologist, born in Paris in 1921 under the name Edgar Nahoum, into a family of Greek Jewish origin from Salonika. He adopted the pseudonym Morin in 1942 when he joined the communist resistance. The following year, he became a commander of the Fighting French Forces. After the war, he distanced himself from the Communist Party and joined the CNRS in 1950. As an emeritus research director and honorary doctor of twenty-seven universities worldwide, he is the author of a widely commented and translated transdisciplinary work, including the ambitious Method, a six-volume series published by Seuil.

Jean-Jerome Levy

Written by

Jean-Jerome Levy

DevOps Consultant

Seasoned professional in the field of information technology, I bring over 20 years of experience from working within major corporate IT departments. My diverse expertise has played a pivotal role in a myriad of projects, marked by the implementation of innovative DevOps practices.