513 lines
16 KiB
Plaintext
513 lines
16 KiB
Plaintext
#[1]News Feed (The Proverbial Fire Hose) [2]Master Feed (All Shows)
|
||
[3]Posts Feed [4]JSON News Feed
|
||
|
||
[5]Changelog
|
||
|
||
* [6]Podcasts
|
||
* [7]Beats
|
||
* [8]Posts
|
||
* [9]Community
|
||
* [10]Subscribe
|
||
* [11]Changelog++
|
||
|
||
* [12]Live
|
||
* [13]Submit News
|
||
|
||
* [14]Sign In
|
||
|
||
____________________
|
||
(BUTTON)
|
||
|
||
[15]Changelog
|
||
* [16]Podcasts
|
||
* [17]Beats
|
||
* [18]Posts
|
||
* [19]Community
|
||
* [20]Subscribe
|
||
* [21]Changelog++
|
||
* [22]Submit News
|
||
|
||
____________________
|
||
|
||
[23]Jerod Santo [24]changelog.com/posts
|
||
|
||
There's still no silver bullet
|
||
|
||
a friendly reminder that you haven't found the panacea
|
||
|
||
logged by [25]jerodsanto [26]2023-05-24T16:25:22Z [27]#practices +2
|
||
* [28]#history
|
||
* [29]#react
|
||
|
||
The late, great [30]Fred Brooks wrote many words about software
|
||
engineering. You may have heard of [31]Brooks’s Law or read his seminal
|
||
book, [32]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 [33]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
|
||
[34]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 [35]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 [36]couple [37]times recently.
|
||
Both of those conversations were in the context of [38]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 [39]quote myself for a moment: (Hey, it’s
|
||
easier than writing)
|
||
|
||
IFRAME: [40]https://www.youtube.com/embed/btIc-_dGz9k
|
||
|
||
Subscribe to [41]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 [42]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 [43]recent issue!
|
||
|
||
Software moves fast. We help you keep up. Our weekly newsletter is
|
||
brief, entertaining & always on-point.
|
||
____________________
|
||
Get Changelog News
|
||
(BUTTON)
|
||
__________________________________________________________________
|
||
|
||
Discussion
|
||
|
||
[44]Sign in or [45]Join to comment or subscribe
|
||
|
||
(BUTTON)
|
||
|
||
(BUTTON) Solomon Ucko
|
||
|
||
sollyucko
|
||
[46]Solomon Ucko
|
||
|
||
Solomon Ucko
|
||
|
||
* [47]Twitter
|
||
* [48]GitHub
|
||
* [49]LinkedIn
|
||
|
||
[50]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.
|
||
|
||
[51]reply
|
||
|
||
(BUTTON)
|
||
|
||
(BUTTON) James Harr
|
||
|
||
jamesharr
|
||
[52]James Harr
|
||
|
||
James Harr
|
||
|
||
* [53]GitHub
|
||
|
||
[54]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.
|
||
|
||
[55]reply
|
||
|
||
(BUTTON)
|
||
|
||
(BUTTON) Jerod Santo
|
||
|
||
jerodsanto
|
||
[56]Jerod Santo
|
||
|
||
Jerod Santo
|
||
|
||
Omaha, Nebraska
|
||
|
||
Jerod co-hosts [57]The Changelog, crashes [58]JS Party, and takes out
|
||
the trash (his old code) once in awhile.
|
||
* [59]Twitter
|
||
* [60]GitHub
|
||
* [61]LinkedIn
|
||
|
||
[62]2023-05-27T13:36:23Z ago
|
||
|
||
How is it a micro aggression? I do not understand.
|
||
|
||
[63]reply
|
||
|
||
(BUTTON)
|
||
|
||
(BUTTON) James Harr
|
||
|
||
jamesharr
|
||
[64]James Harr
|
||
|
||
James Harr
|
||
|
||
* [65]GitHub
|
||
|
||
[66]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.
|
||
|
||
[67]reply
|
||
|
||
(BUTTON)
|
||
|
||
(BUTTON) Jerod Santo
|
||
|
||
jerodsanto
|
||
[68]Jerod Santo
|
||
|
||
Jerod Santo
|
||
|
||
Omaha, Nebraska
|
||
|
||
Jerod co-hosts [69]The Changelog, crashes [70]JS Party, and takes out
|
||
the trash (his old code) once in awhile.
|
||
* [71]Twitter
|
||
* [72]GitHub
|
||
* [73]LinkedIn
|
||
|
||
[74]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.
|
||
|
||
[75]reply
|
||
|
||
(BUTTON)
|
||
|
||
(BUTTON) Bryan Betts
|
||
|
||
bryan-ffd
|
||
[76]Bryan Betts
|
||
|
||
Bryan Betts
|
||
|
||
* [77]GitHub
|
||
|
||
[78]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.
|
||
|
||
[79]reply
|
||
|
||
(BUTTON) Hide Overlay
|
||
|
||
* [80]About
|
||
* [81]Contact
|
||
* [82]888-974-CHLG (2454)
|
||
|
||
* [83]Twitter Icon
|
||
* [84]Mastodon Icon
|
||
* [85]LinkedIn Icon
|
||
* [86]GitHub Icon
|
||
* [87]YouTube Icon
|
||
* [88]Instagram Icon
|
||
* [89]TikTok Icon
|
||
|
||
[90]Podcasts
|
||
|
||
* [91]The Changelog
|
||
* [92]Practical AI
|
||
* [93]JS Party
|
||
* [94]Ship It!
|
||
* [95]Founders Talk
|
||
* [96]Go Time
|
||
* [97]Changelog Master Feed
|
||
* ---
|
||
* [98]Request For Commits
|
||
* [99]Brain Science
|
||
* [100]Away from Keyboard
|
||
* [101]Backstage
|
||
* [102]Spotlight
|
||
|
||
Social
|
||
|
||
* [103]Twitter
|
||
* [104]Mastodon
|
||
* [105]LinkedIn
|
||
* [106]GitHub
|
||
* [107]YouTube
|
||
* [108]Instagram
|
||
* [109]TikTok
|
||
|
||
Community
|
||
|
||
* [110]Merch Shop
|
||
* [111]Join the Community
|
||
* [112]Code of Conduct
|
||
* [113]Sign in to Slack
|
||
* ---
|
||
* [114]Request Episode
|
||
* [115]Submit News
|
||
|
||
Etc.
|
||
|
||
* [116]Beats
|
||
* [117]Posts
|
||
* [118]Changelog Nightly
|
||
* [119]Sponsor
|
||
* [120]Search
|
||
* [121]View Source
|
||
* ---
|
||
* [122]Report an Issue
|
||
* [123]Terms & Conditions
|
||
* [124]Privacy Policy
|
||
* ---
|
||
* [125]Status
|
||
|
||
[126]
|
||
|
||
Bandwidth
|
||
Fastly
|
||
[127]
|
||
|
||
Hosting
|
||
Fly
|
||
[128]
|
||
|
||
Search
|
||
Typesense
|
||
|
||
(BUTTON) (BUTTON) (BUTTON)
|
||
Player art
|
||
(BUTTON) Previous Chapter (BUTTON) (BUTTON) (BUTTON) (BUTTON) Next
|
||
Chapter
|
||
(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. https://changelog.com/
|
||
6. https://changelog.com/
|
||
7. https://changelog.com/beats
|
||
8. https://changelog.com/posts
|
||
9. https://changelog.com/community
|
||
10. https://changelog.com/subscribe
|
||
11. https://changelog.com/++
|
||
12. https://changelog.com/live
|
||
13. https://changelog.com/news/submit
|
||
14. https://changelog.com/in
|
||
15. https://changelog.com/
|
||
16. https://changelog.com/podcasts
|
||
17. https://changelog.com/beats
|
||
18. https://changelog.com/posts
|
||
19. https://changelog.com/community
|
||
20. https://changelog.com/subscribe
|
||
21. https://changelog.com/++
|
||
22. https://changelog.com/news/submit
|
||
23. https://changelog.com/person/jerodsanto
|
||
24. https://changelog.com/posts
|
||
25. https://changelog.com/person/jerodsanto
|
||
26. https://changelog.com/posts/still-no-silver-bullet
|
||
27. https://changelog.com/topic/practices
|
||
28. https://changelog.com/topic/history
|
||
29. https://changelog.com/topic/react
|
||
30. https://en.wikipedia.org/wiki/Fred_Brooks
|
||
31. https://en.wikipedia.org/wiki/Brooks's_law
|
||
32. https://en.wikipedia.org/wiki/The_Mythical_Man-Month
|
||
33. http://worrydream.com/refs/Brooks-NoSilverBullet.pdf
|
||
34. https://en.wikipedia.org/wiki/Silver_bullet
|
||
35. https://en.wikipedia.org/wiki/Panacea_(medicine)
|
||
36. https://youtube.com/shorts/m5A8eQaaG8o
|
||
37. https://jsparty.fm/269#transcript-237
|
||
38. https://reactjs.org/
|
||
39. https://jsparty.fm/269#transcript-237
|
||
40. https://www.youtube.com/embed/btIc-_dGz9k
|
||
41. https://youtube.com/changelog
|
||
42. https://changelog.com/news
|
||
43. https://changelog.com/news/45/email
|
||
44. https://changelog.com/in
|
||
45. https://changelog.com/join
|
||
46. https://twitter.com/SolomonUcko
|
||
47. https://twitter.com/SolomonUcko
|
||
48. https://github.com/sollyucko
|
||
49. https://www.linkedin.com/in/solomon-ucko-143853155
|
||
50. https://changelog.com/posts/still-no-silver-bullet#comment-YX1k
|
||
51. javascript:void(0)
|
||
52. https://changelog.com/person/jamesharr
|
||
53. https://github.com/jamesharr
|
||
54. https://changelog.com/posts/still-no-silver-bullet#comment-yW7b
|
||
55. javascript:void(0)
|
||
56. https://changelog.com/person/jerodsanto
|
||
57. https://changelog.com/podcast
|
||
58. https://changelog.com/jsparty
|
||
59. https://twitter.com/jerodsanto
|
||
60. https://github.com/jerodsanto
|
||
61. https://www.linkedin.com/in/jerodsanto
|
||
62. https://changelog.com/posts/still-no-silver-bullet#comment-V31e
|
||
63. javascript:void(0)
|
||
64. https://changelog.com/person/jamesharr
|
||
65. https://github.com/jamesharr
|
||
66. https://changelog.com/posts/still-no-silver-bullet#comment-Zqom
|
||
67. javascript:void(0)
|
||
68. https://changelog.com/person/jerodsanto
|
||
69. https://changelog.com/podcast
|
||
70. https://changelog.com/jsparty
|
||
71. https://twitter.com/jerodsanto
|
||
72. https://github.com/jerodsanto
|
||
73. https://www.linkedin.com/in/jerodsanto
|
||
74. https://changelog.com/posts/still-no-silver-bullet#comment-qGM2
|
||
75. javascript:void(0)
|
||
76. https://github.com/bryan-ffd
|
||
77. https://github.com/bryan-ffd
|
||
78. https://changelog.com/posts/still-no-silver-bullet#comment-J3nq
|
||
79. javascript:void(0)
|
||
80. https://changelog.com/about
|
||
81. https://changelog.com/contact
|
||
82. tel:+1-888-974-2454
|
||
83. https://twitter.com/changelog
|
||
84. https://changelog.social/
|
||
85. https://linkedin.com/company/changelog
|
||
86. https://github.com/thechangelog
|
||
87. https://www.youtube.com/changelog
|
||
88. https://www.instagram.com/changelog_
|
||
89. https://www.tiktok.com/@changelog.com
|
||
90. https://changelog.com/podcasts
|
||
91. https://changelog.com/podcast
|
||
92. https://changelog.com/practicalai
|
||
93. https://changelog.com/jsparty
|
||
94. https://changelog.com/shipit
|
||
95. https://changelog.com/founderstalk
|
||
96. https://changelog.com/gotime
|
||
97. https://changelog.com/master
|
||
98. https://changelog.com/rfc
|
||
99. https://changelog.com/brainscience
|
||
100. https://changelog.com/afk
|
||
101. https://changelog.com/backstage
|
||
102. https://changelog.com/spotlight
|
||
103. https://twitter.com/changelog
|
||
104. https://changelog.social/
|
||
105. https://linkedin.com/company/changelog
|
||
106. https://github.com/thechangelog
|
||
107. https://www.youtube.com/changelog
|
||
108. https://www.instagram.com/changelog_
|
||
109. https://www.tiktok.com/@changelog.com
|
||
110. https://merch.changelog.com/
|
||
111. https://changelog.com/community
|
||
112. https://changelog.com/coc
|
||
113. https://changelog.slack.com/
|
||
114. https://changelog.com/request
|
||
115. https://changelog.com/news/submit
|
||
116. https://changelog.com/beats
|
||
117. https://changelog.com/posts
|
||
118. https://changelog.com/nightly
|
||
119. https://changelog.com/sponsor
|
||
120. https://changelog.com/search
|
||
121. https://github.com/thechangelog/changelog.com
|
||
122. https://github.com/thechangelog/changelog.com/issues/new
|
||
123. https://changelog.com/terms
|
||
124. https://changelog.com/privacy
|
||
125. https://status.changelog.com/
|
||
126. https://www.fastly.com/?utm_source=changelog
|
||
127. https://fly.io/
|
||
128. https://typesense.org/?utm_source=changelog&utm_campaign=changelog-search&utm_medium=referral
|