How to Recognize Cargo Cult DevOps

How to Recognize Cargo Cult DevOps

When I read that an organization “uses DevOps”, I am skeptical.

Often it means that they are using Jenkins. Or that they are developing “in the cloud”. And that’s all.

They might have component pipelines. (See my article on why “DevOps is not a pipeline”.) And they might manage their unit test coverage. And they might have “autonomous self-organizing teams”.

But that is not DevOps. It is “cargo cult” DevOps - that is, going through some of the motions, but not really doing it, or doing it right or with the actual intent of DevOps.

In fact, if you look at what Amazon, Google, Netflix, and other companies like those do - the companies that invented DevOps methods - they do things very differently from what is advocated by run-of-the-mill articles about DevOps.

For example, at Google, a code commit does not succeed until integration tests have passed. Integration tests. There is no merge into a shared branch until the code integrates. Do your teams do that?

And while most of these organizations have semi-autonomous mostly-self-organizing teams, the operative words are “semi” and “mostly”. For example, Netflix has a huge tools team that assists development teams in getting automation set up. And the tools team has created a huge suite of self-service tools.

Sure, if you have that level of support, then you can approach being autonomous. And self-organizing? These organizations also have team lead roles.

I started to reflect on what makes an organization DevOps. This is challenging since there is no definitive definition, and there should not be, because all DevOps practices are contextual: you don’t just apply them blindly. Nevertheless, I came up with a list that, if one scores high against this list, then one is probably doing DevOps. Here it is:

  • You have integration pipelines.
  • You have dynamically provisioned int test envs.
  • You do not have target dates for each level of integration.
  • You continually measure and optimize your end-to-end customer-facing product delivery flow.
  • An end-to-end integration test can be triggered on demand, in an isolated manner, to test code changes, without affecting any other developers or testers.
  • Developers can easily run integration tests locally - they are not limited to running them in Jenkins as part of a pipeline.
  • You fine tune and customize security IDS rules for your apps.
  • You easily do customer-facing A/B experiments and collect data on those.
  • You have an end-to-end dashboard that shows both the business and operational performance of your customer-facing products.
  • You merge after you integration test.
  • You don’t focus on unit tests, but instead focus on a range of product tests.
  • You perform automated failure mode testing, and have automated test cases for your resiliency mechanisms.
  • You frequently test in the prod network, or a production-like network configuration that has the same region/AZ/firewall topology as your production network.

If you are doing most of these things, I think it is safe to say that you are “doing DevOps”. If you are doing few, then you have a ways to go.

Kenneth Platt

SAFe Practice Consultant | Product Owner and Scrum Master | Trainer and Coach | Product and Program Management | Technical Project Management | Veteran

4y

Cliff, I am dealing with a Cargo Cult client right now and it is frustrating. Frankly I am unsure if this can be turned around.

Like
Reply
Paul Veitch

Managing Director | Head of AI & Next Generation Solutions – EMEA at Accenture | GenAI, Agentic AI & Emerging Tech Strategy | Scaling Practical AI Across the Enterprise

5y

I see 2 issues when organisations start to deploy devops. 1. It takes discipline and many developers give up once it gets hard, so they've started the journey and then moved on because they want to do something else. 2. Product Management don't see it as paying off, producing useful features. This is obviously a fallacy, but the pay off is often invisible as "it just works" except where it's not been done, then it's just that the team haven't done a good job. The answer to both of these challenges is to have dedicated devops people integrated into the team. The danger is that the developers don't see it as their problem, so certain activities need to remain their responsibility, no making the devops people doing the merges!

Kim Sawyer

𝙏𝙤𝙥-𝙩𝙞𝙚𝙧 𝙀𝙭𝙚𝙘𝙪𝙩𝙞𝙫𝙚 𝙖𝙣𝙙 𝙀𝙣𝙩𝙚𝙧𝙥𝙧𝙞𝙨𝙚 𝘾𝙤𝙖𝙘𝙝 • 𝟮𝟬 𝙮𝙚𝙖𝙧𝙨 • 𝙃𝙞𝙜𝙝-𝙥𝙚𝙧𝙛𝙤𝙧𝙢𝙖𝙣𝙘𝙚 𝙘𝙪𝙡𝙩𝙪𝙧𝙚𝙨 • 𝘽𝙪𝙨𝙞𝙣𝙚𝙨𝙨 𝙖𝙣𝙙 𝙘𝙖𝙧𝙚𝙚𝙧 𝙨𝙪𝙘𝙘𝙚𝙨𝙨

5y

Andrew, Thanks for the credit. Glad to contribute to this conversation. Hope this finds everyone well and thriving, not merely surviving in this mess (aka a cognitive dissonance-generating environment for optimal learning, aka a VUCA meta-playing field that renders Agile a fundamental life skill, not just a product development modality). Cheers

Like
Reply
Brad Appleton

DevOps & Agile Engineering Senior Leader

5y

There is a saying (definition) used by ICAgile (quoting Ahmed Sidky) that talks about how agile is a mindset, defined by values, guided by principles, and manifested thru many different practices/methods. It is first a way of thinking *and* being (behaving/interacting) before it is a way of working/doing (practices, with some supporting tools & at automation). DevOps is much the same way, tho there isn't an explicit manifesto stating values+principles, there are comparable things (The 3 ways, CALMS, 5 ideals) that define the mindset (way of thing) and behaviors/interactions (i.e. Dev & Ops cross-functional collaboration) as well as ways of working (practices) and supporting tools & automation (only when they support+enable the mindset & behaviors).

Brad Appleton

DevOps & Agile Engineering Senior Leader

5y

Hi Cliff! Can you say more about "you merge *after* you integration-test" ?? In the above, from *where* (which environment) are you merging? Is it the developer's workspace (or Git repo)? And is it all the work+changes for an entire feature? a story (subset of a feature)? or a (sub)task of a story? Similar question for the integration-testing: is it the same environment as the above? (which is before the merge takes place?) So then the "destination" of the merge (which according to the above, is post integration) is the main-trunk of the central/master repository?

Like
Reply

To view or add a comment, sign in

More articles by Cliff Berg

  • They Know a Collapse Is Coming

    The CIO of Goldman Sachs has said that in the next year, companies at the forefront will begin to use AI agents as if…

    78 Comments
  • Agile – I Told You So

    I think it is no longer controversial that the Agile movement is in decline. When I made a post about it a year ago…

    51 Comments
  • The Most Brilliant Programmer I Have Known Couldn't Work at Google

    During the late 1980s I worked at a 30-person startup. The company was founded by the two fellows who had been the lead…

    31 Comments
  • The Most Guaranteed Way to Improve the Bottom Line

    Culture eats strategy for breakfast, but it’s leaders who generate the culture – leaders at all levels, not just at the…

    2 Comments
  • Empowerment, Not Self-Organization

    Have you heard people say something to the effect of, “Self organization is not really entirely self organization”? I…

    11 Comments
  • Join a Community that is About Learning

    Things like leadership, product development, technical practices in DevOps, and more. Free workshops for learning.

  • Anyone Can Learn DevOps

    Are you looking for ways to expand your skills, to be more effective in your organization? One way is to learn more…

  • Use a Capability-Focused Approach — Not an Agile Framework

    Article here: https://www.agile2academy.

    3 Comments
  • Why Team Performance Is the Wrong Thing to Focus On

    Many companies today are obsessed with teams. The “old” approach of static departments and hierarchies is out.

    12 Comments
  • Leadership Is the Key Skill Today

    Join our free “Intro” to our acclaimed course, Constructive AgilityⓇ for Leaders. (Formerly Agile 2 Foundations) It…

    5 Comments

Insights from the community

Others also viewed

Explore topics