7 ms·
No Silver Bullet (1986) [pdf]
- dcminter 4y agoA classic. A few threads that have had traction in the past: (2021) https://news.ycombinator.com/item?id=25926136 https://news.ycombinator.com/item?id=25926136 (2019) https://news.ycombinator.com/item?id=20818537 https://news.ycombinator.com/item?id=20818537 (2017) https://news.ycombinator.com/item?id=15476733 https://news.ycombinator.com/item?id=15476733 (2015) https://news.ycombinator.com/item?id=10306335 https://news.ycombinator.com/item?id=10306335 The Wikipedia article: https://en.wikipedia.org/wiki/No_Silver_Bullet https://en.wikipedia.org/wiki/No_Silver_Bullet
- dang 4y agoThanks! Macroexpanded: No Silver Bullet: Essence and Accidents of Software Engineering (1987) - https://news.ycombinator.com/item?id=25926136 https://news.ycombinator.com/item?id=25926136 - Jan 2021 (9 comments) No Silver Bullet (1986) [pdf] - https://news.ycombinator.com/item?id=20818537 https://news.ycombinator.com/item?id=20818537 - Aug 2019 (85 comments) No Silver Bullet: Essence and Accidents of Software Engineering (1987) - https://news.ycombinator.com/item?id=15476733 https://news.ycombinator.com/item?id=15476733 - Oct 2017 (8 comments) No Silver Bullet (1986) [pdf] - https://news.ycombinator.com/item?id=10306335 https://news.ycombinator.com/item?id=10306335 - Sept 2015 (34 comments) No Silver Bullet: Essence and Accidents of Software Engineering (1987) - https://news.ycombinator.com/item?id=3068513 https://news.ycombinator.com/item?id=3068513 - Oct 2011 (1 comment) "No Silver Bullet" Revisited - https://news.ycombinator.com/item?id=239323 https://news.ycombinator.com/item?id=239323 - July 2008 (6 comments) Interesting that Brad Cox's "revisited" article was the first one to get comments.
- makeva 4y agoThanks! Maybe the fact that the author is Frederick P. Brooks should be mentioned. From the domain name I was expecting something written by Bret Victor
- pvg 4y agoHN typically goes by original title with some exceptions. It's ok to have to click through to figure out what the title is about (or by whomst), it's less ok to puff up a title by adding things to it which is usually why people slap on the author.
- nuc1e0n 4y agoThis article could do with a modern retrospective and update. Who refers to "expert systems" now?
- 082349872349872 4y agoOn the contrary, I found the juxtaposition of archaic vocabulary alongside propositions which were not only true then but are still true today to be the most compelling part of his argument. (Brooks, who referenced Goldstine/von Neumann and even Aristotle, certainly would not mind if we enjoyed his article in its context) "ὥσπερ τὸ πῦρ καὶ ἐνθάδε καὶ ἐν Πέρσαις καίει"
- nuc1e0n 4y agoBut would those Persians know what a fire extinguisher is for today?
- pm215 4y agoBrooks wrote a retrospective on it 9 years later, _"No Silver Bullet" Refired_, which appears as a chapter in the 20th anniversary edition of _The Mythical Man-Month_. Of course that is still 25 years ago now, so perhaps we should have a retrospective of the retrospective :-)
- dcminter 4y agoRefined rather than "Refired" ... though your version would make a very good title for the next retrospective IMO!
- pm215 4y agoOops, yes. I couldn't quite remember the title (my copy of the book is at home), and googling found people claiming both Refired and Refined, so I made my best guess...
- deleted 4y ago[deleted]
- nuc1e0n 4y agonpm is a good example of the "buy vs build" idea, although npm modules are mostly free of course. Why write code when you can just call someone else's? But then you get problems like the left-pad fiasco
- danwee 4y agoI always understood "Buy vs Build" as "buying software is cheaper than building it yourself". In the case of NPM, using most of the third-party modules out there (buying) is more expensive than writing the code yourself (building).
- nuc1e0n 4y agoThere's a balance to be had for sure. If you bring in some module to a project it comes with costs of its own. That's not often well understood
- cnasc 4y ago> using most of the third-party modules out there (buying) is more expensive than writing the code yourself (building). This is probably true for "most of the modules" but not for "most of the modules that people actually use"
- k__ 4y agoYes. I came from PHP, where everyone and their mom would reinvent the wheel. Then I switched to Node.js, where no one would write their own code anymore. The truth lies in the middle. Can I write something like D3 until the dead line hits? Probably not. Can I write something like left-pad until the dead line hits? Certainly. Habits often mute common sense.
- dotopotoro 4y agoTrue. Though realistically, regarding left-pad, in other languages I would expect left-pad to be part of string formatting package.
- beckingz 4y agoSo in short: - Hire good people - Use off the shelf tools when it makes sense - Prototype rapidly - Develop systems iteratively
- gumby 4y agoUsing off the shelf tools was perhaps 50/50 when this was written. For a long time it was common for computers to come with company-specific OSes and programming languages. The high volume of the PC helped change that, but it was not overnight.
- beckingz 4y agoYeah! And the whole thing about fourth generation languages fits in there too: Using a modern high productivity like Python, Ruby, or Javascript will enable faster iteration and software growth. Note: sometimes Rust or another lower level language will be more productive. Tool choice is hard and contextual.
- heisenbit 4y agoHigher productivity tools just shift the definition of what is complex.
- gumby 4y agoWell sure, but that leaves behind a lot of opportunities for people who can’t or won’t pursue the complex cases.
- kaba0 4y agoI always understood it more like using existing libraries when they exists. So platforms with a huge choice of libraries with good support is the rational decision (which may be python, jvm ecosystem or js)
- mrweasel 4y agoDepends on what you mean by "good people". You don't have to hire only from the top 10%, whatever that may mean to you. One of my main lessons from Brooks was always to put people in the roles that they are best suited for. In "The mythical man month" developers are not interchangeable. There are a number of different roles that needs to be filled, and different types of people are required to fill them.
- deleted 4y ago[deleted]
- chillpenguin 4y agoGreat paper, a classic. I assigned this as reading to my students. A worthwhile exercise is to try to refute the core idea regarding "essential" vs "accidental" complexity. You may find you end up disagreeing with him! But that is why I like this paper so much. Agree or disagree, it makes you think, and it's worth thinking about.
- alok-g 4y ago>> The hardest single part of building software system is deciding precisely what to build. ... Therefore the most important function that software builders do for their clients is the iterative extraction and refinements of the product requirements. For the truth is, the clients do not know what they want. What's the role of the product managers here. In common experience, how much of the above falls on the product managers vs. the software builders?