Cargo Cult Programming
en.wikipedia.orgThis article largely misses the cargo culty things developers do in practice - like massively overcomplicating their infrastructure using kubernetes and message busses when they've no real need.
There is a large Venn space here with RDD, résumé driven development.
You mean I could serve my 10 active user application on a literal potato writing data to Google Sheets, instead of spinning up a five node container cluster with ten microservices each? How would my solution architect justify his job then?
Jokes aside, I don't think this is really cargo cult. It seems more like people genuinely believe in adding bloat just to get promotions or bragging rights. In my opinion, actual cargo cult behavior would be a novice saying they want to solve a front-end slowness issue by migrating the whole application to React because "React just works, dude." Or it could be the Stackoverflow-driven development approach, which is now evolving into ChatGPT-driven development.
But the real winner is when there's a development process problem, and someone says, "What we need is Agile!" as if requiring the team to follow ceremonies that no stakeholders care about will magically fix everything.
System design interviews encourage this. Not everything needs to be infinitely scalable. I've whittled down more than a few things to static webpages generated using a cron job.
Cargo Cult Programming is as much a problem in DevOps as it is in Dev.
The one I see the most is "cargo cult Agile", where teams adopt practices like sprints and story points without truly understanding the values behind Agile. This often happens when people mimic what they’ve seen on other projects without fully grasping the concepts, leading to a cycle of misinterpretation. Frameworks like SAFe and even Scrum can exacerbate this by encouraging a focus on rituals over figuring things out, working together, and getting things done. As a result, organizations become bogged down by bureaucracy, excessive planning, and topdown control, all while claiming to be * Agile *. True Agile emphasizes flexibility, collaboration, and continuous improvement, not just following rituals.
Spot on. I guess the reason is that many people working in industry are lazy and it's easy to follow some pattern mindlessly never questioning whether it works for them. That's ironic because engineering folks are supposed to be intellectuals of the modern world but that's far from truth.
this brought a gentle smile on my face and it only grew bigger as I kept reading on realising I was once a Cargo Cult Programmer(I still am when I keep for too long)
I used to use all sorts of design patterns like Factory, Creating an interface first before implementing a service, creating package-info.java inside every package without knowing or realising the used of it. Looking back, I should have stopped and asked more questions before focussing on finishing on time.
I found it amusing that the 'See also' section lists Github Copilot.