Still no silver bullet
This commit is contained in:
@@ -35,6 +35,10 @@ references:
|
||||
url: https://mcfunley.com/choose-boring-technology
|
||||
date: 2023-07-04T03:40:17Z
|
||||
file: mcfunley-com-5myzcq.txt
|
||||
- title: "There's still no silver bullet |> Changelog"
|
||||
url: https://changelog.com/posts/still-no-silver-bullet
|
||||
date: 2023-07-04T16:04:24Z
|
||||
file: changelog-com-kqx1ni.txt
|
||||
---
|
||||
|
||||
### Thoughts on priorities in software development
|
||||
@@ -56,6 +60,7 @@ references:
|
||||
* [When to Build Millennia Sewers][6]
|
||||
* [We are wasting up to 20% of our time on computer problems, says study][7]
|
||||
* [Choose Boring Technology][8]
|
||||
* [There's still no silver bullet][9]
|
||||
|
||||
[3]: https://grugbrain.dev/
|
||||
[4]: https://world.hey.com/dhh/even-amazon-can-t-make-sense-of-serverless-or-microservices-59625580
|
||||
@@ -63,3 +68,4 @@ references:
|
||||
[6]: https://taylor.town/millennium-sewer
|
||||
[7]: https://techxplore.com/news/2023-06-problems.html
|
||||
[8]: https://mcfunley.com/choose-boring-technology
|
||||
[9]: https://changelog.com/posts/still-no-silver-bullet
|
||||
493
static/archive/changelog-com-kqx1ni.txt
Normal file
493
static/archive/changelog-com-kqx1ni.txt
Normal file
@@ -0,0 +1,493 @@
|
||||
#[1]News Feed (The Proverbial Fire Hose) [2]Master Feed (All Shows)
|
||||
[3]Posts Feed [4]JSON News Feed
|
||||
|
||||
[5]Changelog
|
||||
|
||||
* [6]Podcasts
|
||||
* [7]Posts
|
||||
* [8]Community
|
||||
* [9]Subscribe
|
||||
* [10]Changelog++
|
||||
|
||||
* [11]Live
|
||||
* [12]Submit News
|
||||
|
||||
* [13]Sign In
|
||||
|
||||
____________________
|
||||
(BUTTON)
|
||||
|
||||
[14]Changelog
|
||||
* [15]Podcasts
|
||||
* [16]Posts
|
||||
* [17]Community
|
||||
* [18]Subscribe
|
||||
* [19]Changelog++
|
||||
* [20]Submit News
|
||||
|
||||
____________________
|
||||
|
||||
[21]Jerod Santo [22]changelog.com/posts
|
||||
|
||||
There's still no silver bullet
|
||||
|
||||
a friendly reminder that you haven't found the panacea
|
||||
|
||||
by [23]Jerod Santo [24]2023-05-24T16:25:22Z [25]#practices +2
|
||||
* [26]#history
|
||||
* [27]#react
|
||||
|
||||
The late, great [28]Fred Brooks wrote many words about software
|
||||
engineering. You may have heard of [29]Brooks’s Law or read his seminal
|
||||
book, [30]The Mythical Man-Month. Even if you haven’t, you’ve probably
|
||||
heard at least one colleague proclaim:
|
||||
|
||||
Nine women can’t make a baby in one month!
|
||||
|
||||
This is a powerful metaphor for two reasons. First: it’s so vivid that
|
||||
it’s hard to forget (and easy to recall in a time of need). Second: it
|
||||
makes obvious a not-so-obvious conclusion. Which is:
|
||||
|
||||
Adding manpower to a late software project makes it later.
|
||||
|
||||
That’s a hard pill to swallow, especially when your project is late.
|
||||
But it’s a truth pill, which makes it worth choking down. Here’s
|
||||
another truth pill that Brooks wrote in his paper [31]No Silver
|
||||
Bullet–Essence and Accident in Software Engineering:
|
||||
|
||||
There is no single development, in either technology or management
|
||||
technique, which by itself promises even one order of magnitude
|
||||
[tenfold] improvement within a decade in productivity, in
|
||||
reliability, in simplicity.
|
||||
__________________________________________________________________
|
||||
|
||||
For those who don’t understand the silver bullet reference… it’s
|
||||
[32]pulled from folklore where a bullet cast from silver is the only
|
||||
weapon that can kill a werewolf. Over time a silver bullet has come to
|
||||
represent “a simple, seemingly magical, solution to a difficult
|
||||
problem.” Brooks could have easily reached for [33]panacea instead, but
|
||||
I think the shiny characteristic of silver makes it the perfect analog
|
||||
to software solutions.
|
||||
__________________________________________________________________
|
||||
|
||||
I’ve found myself referencing this a [34]couple [35]times recently.
|
||||
Both of those conversations were in the context of [36]React, but the
|
||||
principle applies to every over-adopted technology.
|
||||
|
||||
So, this post is a gentle reminder to my fellow software engineers:
|
||||
* Does a new tool promise to solve all your problems? It won’t
|
||||
* Do you think you’ve found the “one true tech”? You haven’t
|
||||
* Have a shiny hammer that looks great for hitting screws? It isn’t
|
||||
|
||||
Please humor me while I [37]quote myself for a moment: (Hey, it’s
|
||||
easier than writing)
|
||||
|
||||
IFRAME: [38]https://www.youtube.com/embed/btIc-_dGz9k
|
||||
|
||||
Subscribe to [39]our YouTube channel for more clips like this, live
|
||||
show recordings, and more ✌️
|
||||
|
||||
We tend to be kind of lazy and just take the big hammer and hit all
|
||||
the nails with it. Like, “Oh, I’ve found the panacea. This is gonna
|
||||
solve all my problems”, because it does solve some of your problems
|
||||
big-time.
|
||||
|
||||
But it’s also is gonna create other problems, and it’s also not
|
||||
gonna fit in every place that you can shove it. I mean, I know
|
||||
there’s React-based command line builders… And it’s like, okay, if
|
||||
you like components, cool. That makes sense. But why is React
|
||||
building your command-line app? I just don’t understand.
|
||||
|
||||
When I extemporaneously said “I just don’t understand”, I meant that
|
||||
the choice confounds me. But I do understand why people might make it.
|
||||
|
||||
Saying “use the right tool for the job” is easy, but actually selecting
|
||||
the right tool for the job is anything but. Good tools are hard to
|
||||
find, hard to evaluate, hard to learn. We have constraints, we have
|
||||
biases, we have shortcomings.
|
||||
|
||||
But that’s all part of the work.
|
||||
|
||||
And if you “just use Go” or “just use React” or “just use Postgres” for
|
||||
every problem that crosses your keyboard, you’re just not putting in
|
||||
the work.
|
||||
|
||||
(And I say this as a guy who uses Postgres for most things! 😆)
|
||||
__________________________________________________________________
|
||||
|
||||
If you enjoyed reading this, you’ll probably enjoy [40]Changelog News,
|
||||
my free weekly podcast + newsletter covering developer news worth your
|
||||
attention. I keep it brief (~8 min), entertaining & always on-point.
|
||||
Not so sure? Check out a [41]recent issue!
|
||||
|
||||
Software moves fast. We help you keep up. Our weekly newsletter is
|
||||
brief, entertaining & always on-point.
|
||||
____________________
|
||||
Get Changelog News
|
||||
(BUTTON)
|
||||
__________________________________________________________________
|
||||
|
||||
Discussion
|
||||
|
||||
[42]Sign in or [43]Join to comment or subscribe
|
||||
|
||||
(BUTTON)
|
||||
|
||||
(BUTTON) Solomon Ucko
|
||||
|
||||
sollyucko
|
||||
[44]Solomon Ucko
|
||||
|
||||
Solomon Ucko
|
||||
|
||||
* [45]Twitter
|
||||
* [46]GitHub
|
||||
* [47]LinkedIn
|
||||
|
||||
[48]2023-05-25T03:42:39Z ago
|
||||
|
||||
just use Rust, except possibly when you’re working with a platform
|
||||
designed for another language (e.g. web => HTML/CSS/JS, Android => Java
|
||||
or Kotlin, macOS/iOS => Objective-C or Swift, Microsoft Office macros
|
||||
=> Visual Basic), though Rust does have FFI crates for all of these.
|
||||
|
||||
[49]reply
|
||||
|
||||
(BUTTON)
|
||||
|
||||
(BUTTON) James Harr
|
||||
|
||||
jamesharr
|
||||
[50]James Harr
|
||||
|
||||
James Harr
|
||||
|
||||
* [51]GitHub
|
||||
|
||||
[52]2023-05-27T12:55:20Z ago
|
||||
|
||||
Nine women can’t make a baby in one month!
|
||||
|
||||
I quoted this to my wife once while trying to explain the concept from
|
||||
the book. She knew what I meant, but said (paraphrasing) it’s a micro
|
||||
aggression to pick out women and I might want to pick another example.
|
||||
|
||||
After some reflection and an initial knee jerk internal reaction of
|
||||
“no, it’s a fine example”, I agree with her. There’s no reason to
|
||||
change the book – it is what it is, it was written at a point in time,
|
||||
and it did it’s job of getting the readers to think. All that said, we
|
||||
can come up with a better example for the present and future. I don’t
|
||||
know what that example is, but I know we can do better.
|
||||
|
||||
[53]reply
|
||||
|
||||
(BUTTON)
|
||||
|
||||
(BUTTON) Jerod Santo
|
||||
|
||||
jerodsanto
|
||||
[54]Jerod Santo
|
||||
|
||||
Jerod Santo
|
||||
|
||||
Omaha, Nebraska
|
||||
|
||||
Jerod co-hosts [55]The Changelog, crashes [56]JS Party, and takes out
|
||||
the trash (his old code) once in awhile.
|
||||
* [57]Twitter
|
||||
* [58]GitHub
|
||||
* [59]LinkedIn
|
||||
|
||||
[60]2023-05-27T13:36:23Z ago
|
||||
|
||||
How is it a micro aggression? I do not understand.
|
||||
|
||||
[61]reply
|
||||
|
||||
(BUTTON)
|
||||
|
||||
(BUTTON) James Harr
|
||||
|
||||
jamesharr
|
||||
[62]James Harr
|
||||
|
||||
James Harr
|
||||
|
||||
* [63]GitHub
|
||||
|
||||
[64]2023-05-27T16:02:25Z ago
|
||||
|
||||
Well, maybe micro aggression isn’t the right term, but it’s something
|
||||
that left a bad taste in her mouth and I’m trying to remember exactly
|
||||
how she described it. I think you almost have to put your self in the
|
||||
shoes of someone who 1) has had to work upstream in an industry because
|
||||
of their gender 2) has had to deal with people in a society that see a
|
||||
women’s “job” is to bear children and careers come second at best 3)
|
||||
has had to deal with a lot of people having opinions over your body and
|
||||
what you do with it, most of which do not share your anatomy. After
|
||||
putting yourself in that position, the comparison starts to feel more
|
||||
icky.
|
||||
|
||||
I’ll be honest, I’m defending a view I don’t entirely “get” and may not
|
||||
be capable of understanding. However, after seeing her reaction when I
|
||||
said that quote, this is one of those times where I’m going to say “I
|
||||
believe you”. I’ve been incredibly privileged in this world as a white
|
||||
male, and that’s a pretty big blindspot, so I’m putting trust in
|
||||
someone else to see what’s there.
|
||||
|
||||
I’m not going to fault anyone for quoting it and you have nothing to
|
||||
apologize for; Part of the reason that quote works so effectively is
|
||||
how ridiculous it is. I’m just going to challenge people to do better,
|
||||
and it’s going to be hard.
|
||||
|
||||
[65]reply
|
||||
|
||||
(BUTTON)
|
||||
|
||||
(BUTTON) Jerod Santo
|
||||
|
||||
jerodsanto
|
||||
[66]Jerod Santo
|
||||
|
||||
Jerod Santo
|
||||
|
||||
Omaha, Nebraska
|
||||
|
||||
Jerod co-hosts [67]The Changelog, crashes [68]JS Party, and takes out
|
||||
the trash (his old code) once in awhile.
|
||||
* [69]Twitter
|
||||
* [70]GitHub
|
||||
* [71]LinkedIn
|
||||
|
||||
[72]2023-05-28T12:43:12Z ago
|
||||
|
||||
I’ll be honest, I’m defending a view I don’t entirely “get” and may
|
||||
not be capable of understanding. However, after seeing her reaction
|
||||
when I said that quote, this is one of those times where I’m going
|
||||
to say “I believe you”
|
||||
|
||||
That’s a fair stance to take, but it doesn’t produce much of a
|
||||
convincing argument that will drive people to change. If you want
|
||||
people to starting using a better metaphor, I challenge you to come up
|
||||
with one.
|
||||
|
||||
[73]reply
|
||||
|
||||
(BUTTON)
|
||||
|
||||
(BUTTON) Bryan Betts
|
||||
|
||||
bryan-ffd
|
||||
[74]Bryan Betts
|
||||
|
||||
Bryan Betts
|
||||
|
||||
* [75]GitHub
|
||||
|
||||
[76]2023-06-28T12:58:27Z ago
|
||||
|
||||
“Over time a silver bullet has come to represent “a simple, seemingly
|
||||
magical, solution to a difficult problem.”
|
||||
Well, maybe - but what you’re actually referring to here is a magic
|
||||
bullet, or Zauberkugel. Over time, some people - yes, including
|
||||
award-winning engineers and scientists - have come to confuse the two.
|
||||
|
||||
[77]reply
|
||||
|
||||
(BUTTON) Hide Overlay
|
||||
|
||||
* [78]About
|
||||
* [79]Contact
|
||||
* [80]888-974-CHLG (2454)
|
||||
|
||||
* [81]Twitter Icon
|
||||
* [82]Mastodon Icon
|
||||
* [83]LinkedIn Icon
|
||||
* [84]GitHub Icon
|
||||
* [85]YouTube Icon
|
||||
* [86]Instagram Icon
|
||||
|
||||
[87]Podcasts
|
||||
|
||||
* [88]Changelog News
|
||||
* [89]Changelog Interviews
|
||||
* [90]Changelog & Friends
|
||||
* [91]Founders Talk
|
||||
* [92]JS Party
|
||||
* [93]Practical AI
|
||||
* [94]Brain Science
|
||||
* [95]Go Time
|
||||
* ---
|
||||
* [96]Master
|
||||
|
||||
Social
|
||||
|
||||
* [97]Twitter
|
||||
* [98]Mastodon
|
||||
* [99]LinkedIn
|
||||
* [100]GitHub
|
||||
* [101]YouTube
|
||||
* [102]Instagram
|
||||
|
||||
Community
|
||||
|
||||
* [103]Merch Shop
|
||||
* [104]Join the Community
|
||||
* [105]Code of Conduct
|
||||
* [106]Sign in to Slack
|
||||
* ---
|
||||
* [107]Request Episode
|
||||
* [108]Submit News
|
||||
|
||||
Etc.
|
||||
|
||||
* [109]Posts
|
||||
* [110]Changelog Nightly
|
||||
* [111]Sponsor
|
||||
* [112]Search
|
||||
* [113]View Source
|
||||
* ---
|
||||
* [114]Report Issues
|
||||
* [115]Terms & Conditions
|
||||
* [116]Privacy Policy
|
||||
|
||||
[117]
|
||||
|
||||
Bandwidth
|
||||
Fastly
|
||||
[118]
|
||||
|
||||
Hosting
|
||||
Fly
|
||||
[119]
|
||||
|
||||
Search
|
||||
Typesense
|
||||
|
||||
(BUTTON) (BUTTON) (BUTTON)
|
||||
Player art
|
||||
(BUTTON) Previous Episode (BUTTON) (BUTTON) (BUTTON) (BUTTON) Next
|
||||
Episode
|
||||
(BUTTON) [1X] 0:00 ____________________ / 0:00
|
||||
|
||||
References
|
||||
|
||||
1. https://changelog.com/feed
|
||||
2. https://changelog.com/master/feed
|
||||
3. https://changelog.com/posts/feed
|
||||
4. https://changelog.com/feed.json
|
||||
5. file:///
|
||||
6. file:///
|
||||
7. file:///posts
|
||||
8. file:///community
|
||||
9. file:///subscribe
|
||||
10. file:///++
|
||||
11. file:///live
|
||||
12. file:///news/submit
|
||||
13. file:///in
|
||||
14. file:///
|
||||
15. file:///podcasts
|
||||
16. file:///posts
|
||||
17. file:///community
|
||||
18. file:///subscribe
|
||||
19. file:///++
|
||||
20. file:///news/submit
|
||||
21. file:///person/jerodsanto
|
||||
22. file:///posts
|
||||
23. file:///person/jerodsanto
|
||||
24. https://changelog.com/posts/still-no-silver-bullet
|
||||
25. file:///topic/practices
|
||||
26. file:///topic/history
|
||||
27. file:///topic/react
|
||||
28. https://en.wikipedia.org/wiki/Fred_Brooks
|
||||
29. https://en.wikipedia.org/wiki/Brooks's_law
|
||||
30. https://en.wikipedia.org/wiki/The_Mythical_Man-Month
|
||||
31. http://worrydream.com/refs/Brooks-NoSilverBullet.pdf
|
||||
32. https://en.wikipedia.org/wiki/Silver_bullet
|
||||
33. https://en.wikipedia.org/wiki/Panacea_(medicine)
|
||||
34. https://youtube.com/shorts/m5A8eQaaG8o
|
||||
35. https://jsparty.fm/269#transcript-237
|
||||
36. https://reactjs.org/
|
||||
37. https://jsparty.fm/269#transcript-237
|
||||
38. https://www.youtube.com/embed/btIc-_dGz9k
|
||||
39. https://youtube.com/changelog
|
||||
40. https://changelog.com/news
|
||||
41. https://changelog.com/news/45/email
|
||||
42. file:///in
|
||||
43. file:///join
|
||||
44. https://twitter.com/SolomonUcko
|
||||
45. https://twitter.com/SolomonUcko
|
||||
46. https://github.com/sollyucko
|
||||
47. https://www.linkedin.com/in/solomon-ucko-143853155
|
||||
48. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L29735-5835TMP.html#comment-YX1k
|
||||
49. javascript:void(0)
|
||||
50. file:///person/jamesharr
|
||||
51. https://github.com/jamesharr
|
||||
52. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L29735-5835TMP.html#comment-yW7b
|
||||
53. javascript:void(0)
|
||||
54. file:///person/jerodsanto
|
||||
55. https://changelog.com/podcast
|
||||
56. https://changelog.com/jsparty
|
||||
57. https://twitter.com/jerodsanto
|
||||
58. https://github.com/jerodsanto
|
||||
59. https://www.linkedin.com/in/jerodsanto
|
||||
60. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L29735-5835TMP.html#comment-V31e
|
||||
61. javascript:void(0)
|
||||
62. file:///person/jamesharr
|
||||
63. https://github.com/jamesharr
|
||||
64. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L29735-5835TMP.html#comment-Zqom
|
||||
65. javascript:void(0)
|
||||
66. file:///person/jerodsanto
|
||||
67. https://changelog.com/podcast
|
||||
68. https://changelog.com/jsparty
|
||||
69. https://twitter.com/jerodsanto
|
||||
70. https://github.com/jerodsanto
|
||||
71. https://www.linkedin.com/in/jerodsanto
|
||||
72. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L29735-5835TMP.html#comment-qGM2
|
||||
73. javascript:void(0)
|
||||
74. https://github.com/bryan-ffd
|
||||
75. https://github.com/bryan-ffd
|
||||
76. file:///var/folders/q9/qlz2w5251kzdfgn0np7z2s4c0000gn/T/L29735-5835TMP.html#comment-J3nq
|
||||
77. javascript:void(0)
|
||||
78. file:///about
|
||||
79. file:///contact
|
||||
80. tel:+1-888-974-2454
|
||||
81. https://twitter.com/changelog
|
||||
82. https://changelog.social/
|
||||
83. https://linkedin.com/company/changelog
|
||||
84. https://github.com/thechangelog
|
||||
85. https://www.youtube.com/changelog
|
||||
86. https://www.instagram.com/changelog_
|
||||
87. file:///podcasts
|
||||
88. file:///news
|
||||
89. file:///podcast
|
||||
90. file:///friends
|
||||
91. file:///founderstalk
|
||||
92. file:///jsparty
|
||||
93. file:///practicalai
|
||||
94. file:///brainscience
|
||||
95. file:///gotime
|
||||
96. file:///master
|
||||
97. https://twitter.com/changelog
|
||||
98. https://changelog.social/
|
||||
99. https://linkedin.com/company/changelog
|
||||
100. https://github.com/thechangelog
|
||||
101. https://www.youtube.com/changelog
|
||||
102. https://www.instagram.com/changelog_
|
||||
103. https://merch.changelog.com/
|
||||
104. file:///community
|
||||
105. file:///coc
|
||||
106. https://changelog.slack.com/
|
||||
107. file:///request
|
||||
108. file:///news/submit
|
||||
109. file:///posts
|
||||
110. file:///nightly
|
||||
111. file:///sponsor
|
||||
112. file:///search
|
||||
113. https://github.com/thechangelog/changelog.com
|
||||
114. https://github.com/thechangelog/changelog.com/issues
|
||||
115. file:///terms
|
||||
116. file:///privacy
|
||||
117. https://www.fastly.com/?utm_source=changelog
|
||||
118. https://fly.io/
|
||||
119. https://typesense.org/?utm_source=changelog&utm_campaign=changelog-search&utm_medium=referral
|
||||
Reference in New Issue
Block a user