Sunday, February 5, 2012

Cargo Cults

I recently discovered the concept of "cargo cults" while reading about potential pitfalls in science and software development. The term surfaced after World War II. The South Pacific island natives had welcomed the valuable and more advanced cargo brought by the planes during the war. And when the war ended, the planes and cargo stopped coming to the islands. Since the locals never understood why the cargo was coming in the first place, the only thing to do from their perspective was to duplicate the previous conditions--so they built crude runways, wooden planes, bamboo radios and headphones, all in hopes of luring the planes back, and with them the cargo. Some of these ever-optimistic cargo cults persist to this day in the South Pacific.

Now that I've heard the term, I've started to see signs of cargo cults everywhere. At work, I see mixed results from efforts to put the structure of agile development in place (short iterations, Scrums, standup meetings) in some cases without a full understanding of the underlying principles of the Agile Manifesto (e.g., individuals and interactions over processes and tools, working software over comprehensive documentation, responding to change over following a plan, trusting a motivated team to get the job done). I see senior managers without a true belief in the end results possible with agile (greater opportunity to quickly respond to changing customer requirements, better quality much earlier in the process), conducting the scrum meetings with agendas they've devised but being unwilling to listen to and trust their teams enough to let them surface and resolve impediments, grow and improve together each day.

Some organizations go through the motions; they do agile without being agile" and then are perplexed not see the hoped-for results. Without the willingness to trust the teams, good results can be hampered by fear-driven behavior.

If the previous jargon-filled example sounds like mumbo jumbo to you then consider my kitten, Zuni. Each morning (barring an egregious lapse by her faithful guardian), Zuni's food bowl is refilled with just enough cat food to keep her from becoming a fat little indoor cat. Who knows why it happens from Zuni's perspective, this reappearance of food, but it does happen with great regularity. On the rare morning when the bowl remains empty longer than expected, Zuni searches the house for one of her toy mice, carries it to the food bowl and sets it down. If there is no result soon, she searches the house again for a second toy mouse, sometimes placing this one inside the bowl for added emphasis. The weird thing is that this ritual does work from her perspective--eventually food appears in the bowl, and Zuni's cargo cult continues. Of course, this is my own less than scientific theory about Zuni's behavior and I have to admit therefore that the cargo cult in question may be my own.

I propose that a good number of religious activities in certain contexts are also examples of cargo cults. What cargo cults have you seen in your journeys?

2 comments:

Jim L said...

I think there is an interesting point to be made, and that is around ritual. Humans like to create rituals. Not just in organized religion, but in our own lives as well (I would submit that many of us probably have some rituals in our lives not much different than your cat's).

Ritual can serve a lot of purposes, but in the end, it is meant to change mental state. Religious rituals are meant to help us reach states that open our minds to connection with "the divine," or a meditative state, or whatever. Some programmer's rituals help them to achieve "flow". Many personal rituals (like your cat's) probably help reduce anxiety as much as anything.

I would submit that the difference between "ritual" and "cargo cult" is when the original meaning is lost or is never known to begin with. So, a ritual in church that I discover or create as a 51 year-old that has meaning to me may be nothing but boring, dry and meaningless to my teen daughter sitting next to me, who doesn't understand "Why we always do the same thing over and over again at church."

Likewise, the "ritual" of "agile" practices becomes meaningless the minute people who don't understand the point get pulled (or pushed) into being part of the "agile process." In this case, it is often management. And here's the thing - since they don't "get it" when it comes to programming in the first place, it probably doesn't matter that it's "agile" that they're messing up now. I bet those same managers were probably bad managers with prior dev "best practices" anyway. Just a guess.

Interesting post. I am sure I will think more about it in the days to come.

Lynn said...

I agree harmless rituals can be comforting, and one that helps a programmer achieve flow can be downright valuable. (What is your ritual? I'm very interested to know.)

However, some rituals are not harmless. When a programmer adds sections of code to the program because "we've always done it, every other module has it" without understanding why, it can complicate the program, or make it harder to maintain or make it run slower. This is a harmful ritual. When a religion has a ritual for human sacrifice, this is harmful. It's clear to us from the outside looking in that these rituals are harmful but from inside the cargo cult, it is not clear at all - these rituals "must" be performed for success, regardless of the cost.

I am glad the post made you think - a high compliment coming from you.