DevOps is for Humans
Tags: devops
Published: 2021-03-09 01:51:29

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/25rck4yp79twuiziabo3.png)

Here's an question I'd like to present for your consideration:

> **Should DevOps adoption influence your decision to work at an IT organization?**

DevOps has overtaken the software world. Recent surveys show some 80% or more of IT executives already have or expect to adopt DevOps within the next 5 years. The primary driver behind adoption is the awareness of it's positive impact on businesses. Advantages such as reduced time to market and increased quality are often cited.

But I'd like to come at this topic from a slightly different perspective by making this statement:

>  **DevOps is for humans**. 

What I mean by this that beyond the _business value_ that DevOps' provides, DevOps provides **_direct positive effects to our experience as humans_** working with technology. My opinion is that, if evaluating the health of a current or potential workplace, you would be wise in considering DevOps adoption as a positive trait to look for in an IT organization.

Allow me to present 3 specific areas in which DevOps has direct, positive effects on our experiences as human operators of software systems:

* Reduced stress and anxiety
* Offloading mind-numbing, repetitive work
* Increasing collaboration and trust


### Reduced Stress & Anxiety
One of the universal, shared experiences of folks in IT Development & Operations is the pain of pushing out software to production. The stress around software deployments, the pressure to make the right decisions on the fly, to fix issues in the midst of outages that are costing your company thousands of dollars per hour in lost revenue, is **_massive_**. 

This stress is often exacerbated by lack of sleep over deploys that can last days. Once the deploy is complete and the seemingly inevitable issues are exposed, the feelings of frustration and dread as blame is assigned and decisions are cross-examined is truly horrible. Such repeated experiences are a major contributor to engineer burnout. 

**DevOps addresses this IT pain point.** DevOps makes software delivery a routine, practiced, controlled event, with robust tests and automation to minimize human involvement -- in contrast to the traditional "big bang" deploys where the expectation of "all hands on deck!" is the norm. 

Of course, DevOps does not eliminate this stress instantly or completely -- but it does provide a path forward that if embraced, can provide substantial relief in this area. The phrase "if it hurts, do it more often" is a DevOps mantra capturing this idea.

> DevOps reduces stress by making software delivery a routine, practiced, controlled event.


Ask any physician if reducing stress is worth it, and you're likely to get a earful. No two ways about it, _DevOps reduces work stress!_


### Offloading Mind-numbing, Repetitive Work
Another central idea behind DevOps is the drive eliminate repetitive, error-prone manual work within the software value stream. Unnecessary human intervention in a software delivery stream is a DevOps anti-pattern. "Automate all the things" is how this concept is captured in the DevOps world. 

**So why does DevOps favor automation?** DevOps drives towards codified automation because human intervention is often slow, error-prone, harder to audit, tends to conceal domain knowledge and offers less guarantee of parity across various environments. 

Good software pipelines on the other hand, are fast, self-auditing, expose domain knowledge and provide parity across every environment, all of which automation can provide. 

But a valuable side benefit of this practice of automation is that this mind-numbing, repetitive work is offloaded from humans to machines to execute. Isn't following 200+ steps in an operational checklist to configure a software system a terrible waste of human ingenuity, when a machine can execute 10x faster, and flawlessly every time?

Manual QA testing is another area where this is particularly applicable. Should humans be clicking through thousands of test cases for hours on end, week after week? DevOps answers with a hard "No!"

Laborious, mind-numbing work is ideal only for machines. QA personnel should be applying their creativity towards building and managing complex & powerful testing frameworks or doing exploratory testing that computers cannot emulate. 

> The practice of automation offloads mind-numbing, repetitive work from humans to machines to execute, freeing them to apply their ingenuity elsewhere.

DevOps maximizes human ingenuity and offloads mindless labor to the machines that exist to serve us.

### Increasing Collaboration and Trust
DevOps only succeeds in a culture of collaboration across the entire software value stream. It is impossible to embrace DevOps without fundamentally changing the traditional team dynamics of operating within silos of "Development", "Operations", "SQA" etc.  

DevOps views organizational silos as a deterrent to the collaborative mindset essential to rapid, robust software delivery pipelines. 

But what exactly are silos? If you've been a part of Dev team where you are given a narrow set of capabilities and workitems, and once you're done with coding and unit testing you are encouraged to "throw it over the wall" to the Ops Team or the QA team and forget about it, you've been in a siloed organization. 

**_This is not the DevOps way_**. 

Rather, DevOps promotes adopting "system thinking" where the whole team, no matter their function, cares about the entire software delivery pipeline. It pushes to eliminate slow, manual hand-offs in favor of continuous integration and deployment. Information and power is never hoarded, but democratized and teams are empowered to do more.

> DevOps promotes the adoption of "system thinking" where every team member, no matter their function, cares about the entire software delivery pipeline. 

While DevOps does not mandate a particular team configuration (such as the [cross-functional product teams model](https://itrevolution.com/product-based-software-delivery/)), it is practically impossible to be successful without members across the various IT functions banding together to ensure that software moves fast from  development through testing and into production. 

But this has interesting side-effects: it effectively demands increased information sharing, understanding, empathy and trust towards all members of your team. 

So the question becomes "Where would you prefer to work?" -- in a traditional siloed IT organization or in a highly cooperative, collaborative, trust-oriented & empowering environment where information is freely shared across IT functions?

### DevOps is for Humans
No one wants to work with unhealthy levels of stress or be assigned mind-numbing, frustrating work, or have to navigate a dysfunctional, low-trust work environment. Is anything worth trading on your physical and mental health?

Interestingly, here is where the magic of DevOps comes into play: 
DevOps marries both _positive business outcomes_ (such as profitability & market share) which are hugely important with _positive human outcomes_ like lower stress, creative work and empowered collaboration.

I don't know about you, but I am convinced enough that I always look for DevOps adoption in potential workplaces -- because DevOps is FOR humans, not just for business success.