This is Why #DevOps
Since well before 2008, DevOps as a keyword has been growing steadily in mindshare. This post is my version of a landing page for conversations I have with folks who either know little about it, know a lot about it, or simply want to learn why DevOps is not a hashtag buzzword.
TL;DR: if you're not interested in reading a few paragraphs of text, then nevermind. If you really must jump to my own articulation of DevOps, click here.
DevOps Is a Question, Not an Answer
The word "DevOps" is a starting point in my conversations with folks along the journey. Whether it's over obligatory beers with local community members after a monthly meetup, in a high-pressure F100 conference room, in my weekly meetings with the IEEE, or internally in organizations I work with and accept benefits from, "DevOps" is often the start of a really important dialog. It's a question more than a statement, at least the way I use it day to day, spiked with a small challenge.
It's a question of "what are you doing now, and where do you want to be". It's a question of "how are the things you're doing now incrementally improving, maybe compounding, your efforts". It's a question about how you remove both your backlog of toil and resolve the inbound toil that daily changes to software systems represents. It's a question of "how do you chose to think about your work as you're doing it?" DevOps is an improvement mindset, not just about code and configuration, but about organizational cohesion, communication, collaboration, and engineering culture.
DevOps Is More than "Developers and Operations"
Unlike those whose staunch opinions limit the scope of DevOps to refer to activities of developers and operations engineers, though managing scope creep is important, the agency and effect of DevOps are clearly intertwined with an organizations capability to also foster a set of core values and principles. For over a decade, we've seen some teams going so much faster than others that it doesn't matter who's slower, the result out to production is buggy, insecure, and unscaleable systems. This very common and dysfunctional clock speed mismatch also extends to testing, risk and compliance, budgeting (i.e. part of planning), architecture, and proper monitoring/telemetry/measurement practices.
Similarly, an 'agile' team find it very hard to be 'agile' without the buy-in of leadership, support from finance and legal, alignment with marketing and sales, and deep connection to its customers/stakeholders as well as a whole slew of other examples that underline how agile can't be just a dev-centric worldview.
I hesitate to invent more terms such as 'DevBizOps', 'DevTestOps', and 'DevSecOps' simply to segment off these augmented versions of DevOps when these areas of concern should be integrated into systems delivery lifecycles, to begin with. I don't want to conflate concepts, yet so many elements overlap, it's hard to know how to have one conversation without having three others too. At the end of the day though, it's as arbitrary to me that people invent new terminology as it is that some others chose to dig their fundamentalist heels in about exclusively keeping the scope of DevOps to two traditionally distinct groups, particularly when we see modern interpretations of DevOps blends skills and responsibilities to the point that we highly value (pay) SREs and "10x developers" because they defy narrowly scoped job opportunities in favor of cross-functional roles.
What are *My* Core Values and Principles of DevOps?
Again, this is a question you should seek to answer in your own way, but after only five years of immersion and purposefully seeking out other perspectives daily, a few key elements seem to hold:
- Transparency
- Observability
- Traceability
- Open Systems
- Great Documentation
- Inclusivity
- Collaboration
- Swarming / Blameless Fault Handling
- Customer/User-focus
- Prioritization to Value
- Measurement
- Building Quality In
- High-value Feedback Loops
- Useful Monitoring and Telemetry
- Clear SLA/SLO/SLIs
- Improvement
- Automate AMAP and by default
- Continuous Learning
- Coaching and Mentoring
- Alignment
- Small Batches, Short-lived Change Cycles
- Clear Processes (Onboarding, Approvals, Operationalizing, Patching, Disposal)
- Work Contextualized to Biz Value/Risk
- All Stakeholders Represented in Decisions
DevOps Is Inclusive by Nature
When dialed in, the values and principles of DevOps foster an environment of high-trust and safety, synthesize perspectives without losing focus, and balance personal and team capacity to compound individual contributions rather than burn out talented professionals. DevOps is not, as Audre Lord (via Kelsey Merkley) puts it, our "master's tool", so long as we don't make it such; rather, if we decide that DevOps must not inherit the meritocracy and exclusivity of corporate management and Agilista methodology, it must be a truly better alternative than that which came before.
This is how DevOps can change things, this is why it must. New thinking and new voices provide a way out of tech monoculture. In order to improve a system, you need more than the one option you've already found faulty. This is why I personally support local non-profits like Resilient Coders of Boston. DevOps values and principles offer a far better chance for new voices to be at the table, at least the version I'm advocating.
DevOps Improves Organizations In-Place
Imagine if your teams, your colleagues, your leadership really internalized and implemented the core values and principles defined above. Doing so in finance, human resources, marketing, sales, and even [dare I say] board of trustees groups would cause a natural affinity for supporting systems engineering teams. Conversely too, developers about to change a line of code would be more likely to ask "how does this impact the customer and my organization's goals?", "what documentation do customers and sales engineers need to effectively amplify the new feature I'm developing?", and "how could this process be improved for everyone?".
There is an old stereotype of programmers being bad at "soft skills", resulting in miscommunication, disconnect of work from business value, "not my problem" mentality, and throw-it-over-the-fence mindset. My perspective on DevOps is that none of these things would have the room to materialize in organizations that put processes in place to ensure the above values and principals are the norm.
Everyone can do these things, there's nothing stopping us, unicorn to F100. Importantly, transitioning from what is currently in place to these values takes time. Since time is money, it takes money too. DevOps advocacy isn't good enough to make the case for these changes and the spend that comes attached. No one developer or even team can change an organization, it takes Gestalt thinking and demonstrated value to get people 'bought in' to change.
Facilitating DevOps Buy-In
The first thing to get straight about DevOps is that it takes conversation and active engagement. This is not and never should be something you go to school or get a certificate for; it is a journey more akin to learning a martial art like Uechi-ryu than a course you pay thousands of dollars for at some tech industry Carnivale.
Collect those in your organization is interested in having a conversation about cultural implications of DevOps values and principles, using something lightweight like a lunchtime guild, a book club, or even a Slack channel. Listen to people, what they think and already know, and don't assume your perspective is more accurate than theirs. Be consistent about when/what you do together to further the dialog, hold a local open spaces meetup (or find someone who does this, like me), and invite people from outside the engineering team scope, such as a VP or member of product management at your organization, and ASK THEM afterwards what they thought.
Once you have people from different levels engaging on similar wavelengths about DevOps, ask them to help each other understand what are some first tangible and tactical steps to improve the current situation based on some of the core values and principles either defined above or further crafted to fit your circumstances. Get a headline name in one or more regional DevOpsDays organizing committees to come visit as an outside perspective to what you've got going. And importantly, make time for this improvement. SEV1 incidents aside, there's always some weekly space on everyone's calendar that's an optimal time to get together.
Or you can just ping me [at] paulsbruce [dot] io or on Twitter and we can figure out a good way for you to get started on your own DevOps journey. I'm always happy to help.