Wonder why so many companies try DevOps and the promised results never materialize
It's unfortunate or wishfulness to believe that adding a new tool and rebranding roles will yield to success 😔
Let's be clear:
- DevOps is not a CI/CD pipeline
- DevOps is not about Devs or Ops
Story time
Back in the 1800, the steam engines unlocked our ability to mass produce, that technology was optimized by creating work centers and increasing utilization.
It worked extremely well for products that were simple and didn't change
By the 1900, electronics unlocked our ability to add degrees of freedom and whole automatic line assemblies were possible, same as before, optimizations still were focused on specialized work centers and increase utilization, however, there were problems with the supply chain, it was challenging to forecast demand and tons of material ended up in warehouses waiting to be consumed
Toyota recognized this problem and recalibrated it's optimizations efforts to focus on adaptability, they called it, Toyota Productive System
By the 2000, the internet and centralized information unlocked our ability to understand our processes with unprecedented accuracy
When a customer buys a new pair of white sneakers, an automatic order is placed in the local warehouse to resupply the store
another order is placed in the regional warehouse
... and so on until all individual work centers around the world are notified that an item has been sold and a replacement is required
Fast-forward to today
We live in the software era, Software Development had clearly evolved from this trend, what started as printed circuits boards, it had been optimized to the extreme of building general purpose hardware fully customizable by software
And yet, over 80% (according to the state of DevOps) of companies are stuck in the middle or worse of their journey, development departments trying to implement DevOps are still organized by specialization and optimizing for high levels of individual utilization, as if the job we do is predictable and doesn't change
DevOps optimizes for flow, by responding fast to changes from the environment or new information, one of the pillars for this transition is the shift from push to pull, for example, instead of security pushing requirements to teams, teams pull tools and knowledge from security
Before, information flowed upward the ladder and desicions were made at the top, DevOps requires Top-Down enablement of Bottom-Up transformation, this means that information flows downward the ladder and desicions are made on the spot
There is cultural shift required, user facing teams are expected build and monitor all aspects of their products, while dependant teams are expected to create customizable products that are intuitive and easy to use, collaboration, cooperation and trust are the secret to success
What problem DevOps solves?
All that effort is only to set the conditions to deliver the DevOps promise
Explore data to learn from your users
Run experiments securely to validate the hypothesis
This is what DevOps optimizes for:
What are the relevant user's problems?
How do we recognize and revert bad decisions?
How we find new ways to surprise your users?
How do we work as one for our users? (As part of the same platform, regardless if the team is internal or external)
So what DevOps means to me?
For me DevOps means caring and learning how to better serve
User-Product: Product Managers are available to help users
Product-Dev: Devs are available to help Product Manager
Dev-Ops: Ops available to help our Devs
Employee-Leader: Leaders are available to help their team
so that when a new problem arrives
PM drops everything to support them and ask for help from Dev
Dev drops everything to support them and ask for help from Ops
Ops drops everything to support them and ask for help from AWS 😂
When anyone has a problem,
Their leader drops everything to support them
There is one and only a one priority and everyone is available for their respective user
When work doesn’t depend on you, you prepare, because you’re trusted and empowered to do what only you know needs to be done
Every problem solved is learning, one by one we’ll be smarter, faster and better, in no time, we will be solving problems in minutes