13 ms·
Cargo Cult Software Engineering (2000)
- umvi 6y agoHow to make a cargo cult project: - Read the latest AGILE books and learn how to be a scrum master - Choose the hottest languages and frameworks as the foundation of the project - Hire a bunch of developers with experience in those languages/frameworks - Get JIRA and setup a sprint board - Do a daily standup - Figure out how Kubernetes/blockchain/marketing buzz can fit into your project to help make it more successful - (optional) Tell devs to upgrade to even hotter languages and frameworks as they come out so that your project always uses cutting edge tech - Wait for the airplanes to land
- woodrowbarlow 6y agoand the last step: - figure out something to make (because the what always seems to come after the how)
- dr-detroit 6y agoI like how people who don't learn out of school think nobody else can
- 29athrowaway 6y agoYou pick a language because: 1) You can hire people that can use it effectively. 2) It is robust, production ready. 3) Emphasizes a set of traits that you are interested in, such as productivity, performance, high concurrency, low latency, binary size, compatibility, etc. To the clueless this may seem like bikeshedding and cargo culting, but that is not necessarily the case.
- geoelectric 6y agoNow that I've been stuck actually working with agile in the field for 15-20 years, not sure I think we get to call that and Scrum cultish anymore. They're more just popular productivity footguns at this point.
- 29athrowaway 6y agoScrum exists to expand scrum. The role of scrum master is about scrum indoctrination. The authors of scrum created that role to make the methodology viral. The methodology is also vague enough to blame you for anything that goes wrong with it.
- geoelectric 6y agoAt the very least, I fully buy they created that role to create a secondary market training and certifying them.
- 29athrowaway 6y agoScrum works because Brawndo has electrolytes.
- Jon_Lowtek 6y agoit's what plants crave!
- djmips 6y agoback to reddit with ye
- steveBK123 6y agoTrue agile has never been tried!
- keithnz 6y agoagile wasn't really a process, just a manifesto. All scrum did was package itself as a marketing strategy to enterprises while the rest of the agile advocates face palmed and slowly walked backwards from "agile" as it became more and more poisoned. Shame really, Software Philosophers like Kent Beck kind of got lost in all that noise, who always emphasized the human aspect of software creation
- potta_coffee 6y agoYou forgot to mention microservices brah. If your services aren't micro enough, forget about it, you aren't gonna make it.
- Aperocky 6y agoyep, keep burning those cloud credits, pad-left and is-odd deserve their own microservice.
- luhn 6y agoMicroservices are dead, serverless is the future. You only pay for what you use, so when you launch and nobody cares you don't have pay anything.
- potta_coffee 6y agoI think we are "micro-serverless".
- random314 6y agohttps://youtu.be/y8OnoxKotPQ https://youtu.be/y8OnoxKotPQ
- potta_coffee 6y agoToo good!
- Cthulhu_ 6y agoI've been there in two projects, both of which took far longer to build and neither of which ended up with anywhere near the amount of traffic or need to build things using that architecture. That said, I had a project last year where we used a serverless platform for a product / ecommerce platform (Gatsby, Netlify, Contentful, Commercetools, JS/TS) where it worked pretty well.
- jodrellblank 6y agoIf the airplanes are VC monies, and those things do attract VC monies, can it really be described as a cargo cult if it works?
- onlydeadheroes 6y agoThat is a funny question (in the good sense). I would argue the VCs are cargo culting themselves, but of course another could argue that once the VC money has moved into the pockets of the programmers, then the important part of the process is done. I just doesn't necessarily create any useful software.
- keyle 6y agoI've interviewed at a few Saas startups recently: - React / Redux / <and everything under the sun> - NodeJS + Typescript everything or die - GraphQL but we don't know why - React native because we wouldn't know what native is - Postgres with replication and fail over for 10 concurrent users - Docker everything on AWS <every possible keywords> - Don't forget lambdas, but batch with Kafka first - Route 53 just cause the name is too cool not to have it Joking about their Angular rewrite into React is a fireable offence. See you in 2 years. /s
- iFreilicht 6y agoI mean I really get why people like using npm and Typescript is great, but the whole “web-tech got adapted for backend then adapted back to web” just makes everything so unnecessarily complicated. I think a lot of this “using frameworks without knowing why” is just because people read articles about them and how-tos and get excited too quickly, and Google just shows way more tutorials about how to do something in React than in plain JS. What are lambdas in this context? I thought those were just another name for closures?
- keyle 6y agoAWS lambda. Functions as a service!
- mlthoughts2018 6y agoThere are some fundamental limits to commitment-focused culture though. People have life obligations. Even if they wanted to work 60 hours a week, their sick mom or their childcare or their kitchen renovation or an especially busy graduation season for nieces and nephews just requires their time, and their knowledge that their job is secure and they won’t be penalized on raises, rewards, etc., for simply having a life. Because of this, the commitment-focused path just doesn’t work, flat out. At best you can use it briefly to exploit unwitting young people who don’t know their worth and don’t have enough self-confidence to say no, and ride that into a pump and dump IPO situation, after which your company will promptly become process-focused and all the young people will quit and be replaced by mid-career people who don’t mind inheriting the mind-melting tech debt as long as you pay well and only expect 40 hours per week.
- dboreham 6y agoSo much truth here.
- 908B64B197 6y agoThere's a trick to get more out of employees that's almost never discussed: Make their life easier. Childcare for a late meeting is an issue? Why not have childcare at the office? Pay enough and the kitchen improvements are the contractor's problem and not your employee's.
- gilbetron 6y agoNot having childcare is not the issue, wanting to spend times with your children is the issue. You can't outsource that.
- ericbarrett 6y agoSaves the extra drive to daycare as well as the stress of not meeting the pickup time (most daycare charges very high after-hours rates to discourage this; I’ve seen $50/15 minutes).
- 6y ago
- antiquark 6y ago> When presented with more effective, new practices Yeah but... how can you judge the actual effectiveness of some practice if it's new? There's no long-term empirical evidence to judge it by.
- cle 6y agoI don't think the author is trying to say "don't try anything new unless you have evidence", but "don't use something without understanding why". Experimenting with a practice to understand it better is a perfectly valid reason. Adopting a practice and expecting it to magically solve your productivity problems, without understanding why and whether the tradeoffs are appropriate, is not a valid reason...that's cargo culting. Another way to look at it is...what are your expectations? If you are using something with the expectation that it'll magically solve your problems, and you don't really know why...you're cargo culting. If you're using something and suspecting that it'll solve your problems, and you expect to watch it and gather feedback and evidence on whether it's actually helping or not, and potentially axe it in the future if it's not working out...that's not cargo culting at all, but effective process.
- Jtsummers 6y agoExperiment. If you desire evidence-based management, you have to seek out case studies (and actually consider them, not discard them when brought to you like one manager did to me, "Show me the evidence." "Ok." "Whatever") or run your own experiments. Even if you do seek out case studies, you will still want to run your own experiments because what works for X may not work for you. Find a low impact project or a project that can absorb a potential setback and try it out. If it fails, you at least gave it a shot. If it succeeds, promote the idea among other teams and projects. You can always apply a sanity check on ideas before trying them, just like in other things. "I heard that having a foosball table in offices increases productivity by 25%." "That doesn't sound right, but we can try to create better break areas."
- Gibbon1 6y ago> Find a low impact project or a project that can absorb a potential setback and try it out. That's how I introduce every new thing to the companies I've worked for. Use it in a non critical project first. The problem with using a new thing is a critical project is if anything goes wrong the company hive mind will scapegoat the new thing and you.
- Jtsummers 6y agoThis is a good article, written in 2000. I think it was my introduction to the term "cargo cult" way back when. > We call the imposter organizations sweatshops because they emphasize working hard rather than working smart I wrote on a whiteboard at an office, early in my career, "Company motto: Work harder, not smarter" out of frustration following a meeting with a manager where that phrase was nearly stated verbatim. I had thrown in a ton of OT getting things working (I was young), including a nearly 36-hour run (7am Monday to 6pm Tuesday, with a few hours off for lunches, dinner on Monday, and a trip home to shower and change Tuesday morning). The OT was worth it, I fixed the thing that was blocking us and I set it up so that we wouldn't have that issue in the future. I identified various areas where procedural improvements would reduce our error rate in cases where we had repeatedly run into the same issue (or similar issues with a common root cause), and it was discarded by this manager with something like the above motto and "We don't do that here". This meant that I was going to get lots more OT (yay money!) but I just wanted to sleep at night again.
- devlopr 6y agoI send in my procedural improvement reports and always assume they will get ignored. Rarely do I get surprised.
- _jal 6y agoProcess improvements are typically valued at zero unless and until a director (or above) is annoyed by the issue addressed or, worse, their bonus may be impacted.
- corty 6y agoProcess improvements are perfect CYA. You hand it in in writing, get a written turndown because too expensive/annoying/whatever. When shit hits the fan, you are covered. I like process improvement. Other than that, I only saw one improvement realized. It was one a colleage turned in, got rejected. Then turned in again almost verbatim by a manager 2 layers up, who got it accepted and got the bonus for it...
- 6y ago
- nelsonenzo 6y agoNeither approach is wrong when used correctly! What a wonderfully written article. I feel like 98% of articles and opinions in popular media could learn a lesson from this articles template. So often folks are busy arguing the obvious extremes that they completely miss the point of what actually matters.
- satya71 6y agoArticle from 2000. Still seems relevant
- 908B64B197 6y agoSelective cargo culting is great. I recall talking to someone who was very very happy to brag that his company was doing "everything just like Google" and following the exact same practices he read the company did on various engineering blogs. I asked him what was the compensation like and how he managed to get kids from Stanford to work at his company instead of their startups and he just gave me a blank stare. Said something about how they were not in Silicon Valley and paid median salaries and that he had "no trouble finding Google caliber talent in the local market." and that "it's not really the local market's customs to give stocks to coders".
- jimbob45 6y agoIn fairness, cargo culting can be good in very targeted ways. My company didn't have a clue on what to purchase for software development equipment or how to organize it. As a result, they observed what Google did and copied it to the best of their ability as their pocketbook would allow. Although it's not perfect and they have no idea why it works, it's certainly better than anything they could organically have come up with.
- the-dude 6y agoAre you talking about computers or chairs and desks?
- gowld 6y agoThose are all the same class of tools. The other side of that "or" is datacenters and networking infrastructure.
- the-dude 6y ago> software development equipment You seem to be talking about production equipment. At least I have never needed a datacenter to develop software. But hey, that is just anecdata of course.
- cutemonster 6y ago
- sidlls 6y agoWe should be debating process versus commitment, though. “They can both work” is a bit facile. Work isn’t (typically) done except in the context of workers’ lives. These paradigms incentivize different behaviors and cultures and there are real impacts on the lives of workers as a result. It’s a mistake to purport that we can ignore those consequences in an evaluation of what works.
- sgt101 6y agoI agree, but also consider the choice of the worker. Commitment comes from motivation; the motivation can have a very large impact. A friend of mind went to work for Google, did 5 years as a Senior, got a load of cash, married his dream girl from high school back home and is now traveling the world with her. This is his idea of heaven. Personally I would never have committed like he did; but this is my choice. The problem comes when people are lied to and bullied into doing things that they don't want to with no positive outcome for them.
- Jtsummers 6y agoI think one of the points in the conclusion is that these two ideas aren't actually on a spectrum, but rather are more orthogonal with each other. It's not a true binary choice so there isn't a real debate to be had between the two. Process doesn't preclude (though it may constrain) individual empowerment, and individual empowerment does not preclude (though it may constrain) process. There are processes which actually do, to some extent, encourage individual empowerment. I would put the trend to distributed version control systems like git as a boon to both process and individual empowerment, as an example. I can use it much more freely to experiment in my feature branch than when using a system like SVN (in many classical scenarios of using SVN), but the pull request system integrated into many git server systems is itself a process approach to control (and hopefully improve) the development work.
- InfiniteRand 6y agoOn a tangent, Cargo Cults in the Pacific are a more complex phenomenon than many people assume. I remember in college I had a great Pacific studies professor and one of the topics he touched upon was the idea of cargo cults as a form of disruptive political protest. I forget the details of his argument, but I think this article captures the gist of it - https://www.scientificamerican.com/article/1959-cargo-cults-melanesia/ https://www.scientificamerican.com/article/1959-cargo-cults-... I also think there was an element of trying to play Americans off of other colonial powers, although I can't find any citation for that. Interesting to note that at least one cargo cult made the transition into an actual political party - https://en.wikipedia.org/wiki/Nagriamel https://en.wikipedia.org/wiki/Nagriamel
- QuercusMax 6y agoFantastic SciAm article - thanks for sharing! Really interesting, especially having been written 62 years ago!
- tantalor 6y agoPopular science and culture have made a "cargo cult" out of the term "cargo cult".
- mr_toad 6y ago> The Whites, who possessed the secret of the cargo, were intercepting it and keeping it from the hands of the islanders, to whom it was really consigned. Replace “whites” with “establishment” and “cargo” with jobs and “the apocalypse” with revolution and you have the essence of a conspiracy theory or extreme political movement. Edit: this next bit is disturbingly prophetic: > Of course the cargo never comes. The cults nonetheless live on. If the millennium does not arrive on schedule, then perhaps there is some failure in the magic, some error in the ritual. New breakaway groups organize around "purer" faith and ritual. The cult rarely disappears, so long as the social situation which brings it into being persists.
- biztos 6y agoIt would be fun, and maybe evil, to go drop some actual cargo in a place with a cargo cult. Say a dozen crates of stuffed Pokémon toys and one crate of carabiners.
- AnimalMuppet 6y agoThis is really more "cargo cult software engineering management". Cargo cult software engineering is also a thing: Patterns (chosen without knowing when to use them or why). OO vs FP (picked without knowing when to use which, and why). Languages and frameworks (chosen without knowing when to use which, and why).
- tra3 6y agoSteve McConnell is great. Of the "Code Complete" fame. I recently read his "More effective agile" and it's a great modern introduction to Agile. Lots of actionable advice.
- okl 6y agoHis "Software Project Survival Guide" is great too, a bit dated but a great read. Saved more than one project that was close to the abyss when I joined.
- zabzonk 6y agoBetter than ""Code Complete" in the context of this post - "Rapid Development". Probably the best book on software project management I've read.
- tempodox 6y ago> … we should be looking for ways to raise the average level of developer and manager competence. Ha, I wish! The vast majority of companies I worked for never wasted a thought on this. It seems clear to me that there is much room for improvements on that axis, irrespective of organizational style.
- gonzo41 6y agoI think you're wrong. Most companies would run out of effective work for better staff. Rather than drive innovation and develop new competative advantages with it, they just want the status quo. So mediocre employees and managers make sense. They don't rock the boad.
- sorokod 6y agoReminds me how some children play chess by mirroring the moves of the oponent. It sort of works up to a point.
- blaufast 6y agoIsn't the whole appeal of this kind of article that you get to believe you are an insider to 'correct' knowledge?
- kerblang 6y ago> these organizations look at successful companies like Microsoft Except they don't anymore, because nobody worships at the altar of Microsoft, because while they were once revered as Gods, they no longer are. Now substitute Google, Tesla, etc... The tech industry would advance faster if we paid more attention to technology than market dominance.
- amelius 6y agoWe're heading towards an era of cargo cult where Apple's silicon is viewed as pure magic and developers scratch their heads over why they are now paying 60% to be in the App Store considering that they are doing the exact same things as when the rate was still 30%.
- simonh 6y agoRight now a lot of small dev shops are wondering why they are paying 15% when the rate used to be 30%, so you're almost right (factor of two) just in the wrong direction.
- harry8 6y agoAnyone who hasn't read Feynman's original speech or just hasn't re-read it for a couple of years: https://calteches.library.caltech.edu/51/2/CargoCult.htm https://calteches.library.caltech.edu/51/2/CargoCult.htm For mine, it is one of the great pieces of writing/oratory of the last couple of hundred years and addresses so many of today's issues head on. It would be nice if it became very dated, let's work on that.
- seepel 6y agoThanks for sharing. I hadn’t read that before, that was a great read.
- cutemonster 6y agoIt was indeed :-)
- rajacombinator 6y agoCan we start calling this Agile Culting?
- srirangr 6y agoCargo Cult Agile is a thing. A simple Google search will give you lots of perspectives on how many people have suffered because of the same :)