Post

Where DevOps comes from: why it's important to get back to origin?

Ask to any engineer if he/she knows where DevOps concept comes from, sometimes it’s important return to the origin to understand the real meaning of matters. After years working as DevOps human, building up and maintaining platforms, helping to form engineers and teams, furthermore taking part of hiring processes, I could realize the simple fact that DevOps initiatives and humans have been focusing more on technologies and platforms putting less effort on the research and continuous learning of mindset and principles.

DevOps is a highly used concept in the IT world since Patrick Debois adopted the hashtag (#DevOps) upon completion of what was the first DevOpsDays event in the world (Belgium 2009). This event, which ends up defining the name of an entire movement, was orchestrated to bring together Dev and Ops engineers to share their knowledge on how to reduce the gap between these teams that make part of the Software Development Life Cycle (or SDLC), even when that chance the focus was put on the gap between Dev and Ops, today we know that there are other important “Wall of Confusion” throughout the flow.

Do you wanna know more? Go deeper in the DevOps history with this video: The (Short) History of DevOps .

For understanding better DevOps, Gene Kim, Jez Humble, Patrick Debois, John Willis, and Nicole Forsgren left in the first phrase of their book “The DevOps Handbook” (one of the main DevOps source of knowledge) what I recognize as the DevOps dream, or if you prefer, the DevOps vision:

Imagine a world where Product owners, Development, QA, IT Operations, and Infosec work together, not only to help each other, but also to ensure that the overall organization succeeds. By working towards a common goal, they enable the fast flow of planned work into production (e.g., performing tens, hundreds, or even thousands of code deploys per day), while achieving world-class stability, reliability, availability, and security.

It highlights some crucial DevOps aspects:

  • DevOps is not just about collaboration between developers and operators, it implies that all areas and roles involved in a product development (POs, Annalists, Architects, Developers, and Testers) and all involved in service management and operation (Infosec, Change Management, DBAs, Operators, Infrastructure), sharing only one goal and work collaboratively to achieve it.
  • DevOps enables the fast flow from planning to production. Flow is a concept wide used in Agile and DevOps, it comes from Lean Thinking principles and practices. Flow means a fast, issueless, sustainable, and continuous work movement from planning to production.
  • DevOps seeks balance between velocity, stability, reliability, availability, and security. It wasn’t always like this. In the past, it was believed that speed had to be sacrificed to gain stability and vice versa, DevOps shows that the balance between these is possible.

All these sounds super logical for those who didn’t have the chance to face the challenges of traditional IT organizations, I’m talking about siloed organizations which match more as Pathological or Bureaucratic based on Westrum’s Organization Model, a simple way to figure out the differences between a traditional IT organization and DevOps is the following benchmark shared by Mustafa Kapadia in the post called “Comparing DevOps to traditional IT: Eight key differences”:

Comparing DevOps vs Traditional Image from Mustafa Kapadia blog post called “Comparing DevOps to traditional IT: Eight key differences” published on DevOps.com web page

Unfortunately, the quote from “The DevOps Handbook” doesn’t sound as a definition, it’s more a vision (as I mentioned before). Since DevOps was coined, communities, thought leaders, and companies several times tried to set one general definition for this concept, but there is no agreement because it’s a continuous improving movement. However, one of the most important influential figures in this matter, Gene Kim, provides this one:

[…] I’d define DevOps by results. DevOps is a set of cultural norms and technology practices that enable fast flow of planned work through, among others, development, test, to operations, while preserving world-class reliability, operation, and security. DevOps is not about what you do, it’s about what your results are […]

The most important points to highlight from this definition are:

  • “is a set of cultural norms and technology practices”, it’s not just about engineering.
  • It highlights the importance of fast flow from planning to production without affecting quality and security of the result.
  • “DevOps is not about what you do, it’s about what your results are”. The most important thing for DevOps is the continuous improvement of IT to achieve better business results. DevOps is not just about adopting practices (which continuously change and evolve), it’s about to achieve better velocity, stability, and security.

Before to go deeper on the DevOps culture and practices bases, it’s important to have a clear “why”:

  • For Companies or Organizations:

    • DevOps helps to respond better to customer needs and achieve business goals faster.
    • DevOps helps to improve staff morale and motivation.
    • DevOps helps to keep competitive and cybersecure.
  • For teams:

    • DevOps helps to continually provide value to customers by producing better, more reliable products.
    • DevOps helps to reduce repetitive work to focus on creative one.
    • DevOps helps to increase collaboration and knowledge sharing.
  • For Engineers:

    • DevOps helps to be upskilled for the modern technology challenges.
    • DevOps helps to seek mastery.
    • DevOps helps to open doors.

Always try to give sense to your actions based on why you are doing that, so challenge each DevOps initiative or journey starting from “why”.

This post is licensed under CC BY 4.0 by the author.