Consider the following well-crafted text about the malfunctioning of the collaboration between development and operations, posted anonymously to a developer forum I visit regularly:

NoOps: Developer operations manifesto

This is not pretty, but it must be said. We are tired. The madness must stop.

  • We create software, the product that identifies our company.
  • We are academic software engineers, trained to understand our work.
  • We show responsible behaviour, creating as much value as possible.
  • We do not like meetings, documentation or other waste in this process.
  • We prevent problems by writing tests and by using versioned environments.
  • We fix problems immediately, reducing the impact of issues dramatically.

We are not flawless, but that is neither your problem, nor your duty to solve.

  • You operate the hardware underneath our software, the cloud, an ubiquity.
  • You have commercial certificates, that proof you can do your work.
  • You use hand-overs, procedures & documentation requirements to slow us down.
  • You hide behind bureaucracy and use ISO standardization as an excuse.
  • You prevent problems by adding infrastructure for staging environments.
  • You make the infrastructure overly complex, using SPOF as an argument.

The cloud is here now. You have no place in the software process any more.

A commercial IaaS provider will allow us to take the responsibility we deserve.

– Anonymous

It clearly shows the anger and the tension that can exist in a DevOps environment. I know from experience this tension is not one-sided. A call for better DevOps? What measures can be taken to prevent or take away these frustrations? Or is abandoning in-house managed infrastructure really a viable solution?