Files
davideisinger.com/static/archive/changelog-com-kqx1ni.txt
2024-01-17 12:05:58 -05:00

496 lines
16 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[1]Changelog
• [2]Podcasts
• [3]Beats
• [4]Posts
• [5]Community
• [6]Subscribe
• [7]Changelog++
• [8]Live
• [9]Submit News
• [10]Sign In
[11][ ]
[13]Changelog
• [14]Podcasts
• [15]Beats
• [16]Posts
• [17]Community
• [18]Subscribe
• [19]Changelog++
• [20]Submit News
[21][ ]
[22] Jerod Santo [23]changelog.com/posts
There's still no silver bullet
a friendly reminder that you haven't found the panacea
logged by [24]jerodsanto [25]2023-05-24T16:25:22Z [26]#practices +2
• [27]#history
• [28]#react
The late, great [29]Fred Brooks wrote many words about software engineering.
You may have heard of [30]Brookss Law or read his seminal book, [31]The
Mythical Man-Month. Even if you havent, youve probably heard at least one
colleague proclaim:
Nine women cant make a baby in one month!
This is a powerful metaphor for two reasons. First: its so vivid that its
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.
Thats a hard pill to swallow, especially when your project is late. But its a
truth pill, which makes it worth choking down. Heres another truth pill that
Brooks wrote in his paper [32]No Silver BulletEssence 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 dont understand the silver bullet reference… its [33]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 [34]panacea instead, but I think the shiny characteristic of silver
makes it the perfect analog to software solutions.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Ive found myself referencing this a [35]couple [36]times recently. Both of
those conversations were in the context of [37]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 wont
• Do you think youve found the “one true tech”? You havent
• Have a shiny hammer that looks great for hitting screws? It isnt
Please humor me while I [38]quote myself for a moment: (Hey, its easier than
writing)
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, Ive found the panacea. This is gonna solve all
my problems”, because it does solve some of your problems big-time.
But its also is gonna create other problems, and its also not gonna fit
in every place that you can shove it. I mean, I know theres React-based
command line builders… And its like, okay, if you like components, cool.
That makes sense. But why is React building your command-line app? I just
dont understand.
When I extemporaneously said “I just dont 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 thats 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, youre just not putting in the work.
(And I say this as a guy who uses Postgres for most things! 😆)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
If you enjoyed reading this, youll 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.
[42][ ]
[43][Get Changelog News]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Discussion
[45]Sign in or [46]Join to comment or subscribe
Solomon Ucko
sollyucko
[49] Solomon Ucko
Solomon Ucko
• [50]Twitter
• [51]GitHub
• [52]LinkedIn
[53] 2023-05-25T03:42:39Z ago
just use Rust, except possibly when youre 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.
[54]reply
James Harr
jamesharr
[57] James Harr
James Harr
• [58]GitHub
[59] 2023-05-27T12:55:20Z ago
Nine women cant 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) its 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, its a
fine example”, I agree with her. Theres no reason to change the book it is
what it is, it was written at a point in time, and it did its job of getting
the readers to think. All that said, we can come up with a better example for
the present and future. I dont know what that example is, but I know we can do
better.
[60]reply
Jerod Santo
jerodsanto
[63] Jerod Santo
Jerod Santo
Omaha, Nebraska
Jerod co-hosts [64]The Changelog, crashes [65]JS Party, and takes out the trash
(his old code) once in awhile.
• [66]Twitter
• [67]GitHub
• [68]LinkedIn
[69] 2023-05-27T13:36:23Z ago
How is it a micro aggression? I do not understand.
[70]reply
James Harr
jamesharr
[73] James Harr
James Harr
• [74]GitHub
[75] 2023-05-27T16:02:25Z ago
Well, maybe micro aggression isnt the right term, but its something that left
a bad taste in her mouth and Im 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 womens “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.
Ill be honest, Im defending a view I dont 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 Im going to say “I believe you”. Ive
been incredibly privileged in this world as a white male, and thats a pretty
big blindspot, so Im putting trust in someone else to see whats there.
Im 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. Im just going to challenge people to do better, and its going to be hard.
[76]reply
Jerod Santo
jerodsanto
[79] Jerod Santo
Jerod Santo
Omaha, Nebraska
Jerod co-hosts [80]The Changelog, crashes [81]JS Party, and takes out the trash
(his old code) once in awhile.
• [82]Twitter
• [83]GitHub
• [84]LinkedIn
[85] 2023-05-28T12:43:12Z ago
Ill be honest, Im defending a view I dont 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 Im going to say “I believe
you”
Thats a fair stance to take, but it doesnt 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.
[86]reply
Bryan Betts
bryan-ffd
[89] Bryan Betts
Bryan Betts
• [90]GitHub
[91] 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 youre 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.
[92]reply
Hide Overlay
• [94]About
• [95]Contact
• [96]888-974-CHLG (2454)
• [97] Twitter Icon
• [98] Mastodon Icon
• [99] LinkedIn Icon
• [100] GitHub Icon
• [101] YouTube Icon
• [102] Instagram Icon
• [103] TikTok Icon
[104]Podcasts
• [105]The Changelog
• [106]Practical AI
• [107]JS Party
• [108]Ship It!
• [109]Founders Talk
• [110]Go Time
• [111]Changelog Master Feed
• ---
• [112]Request For Commits
• [113]Brain Science
• [114]Away from Keyboard
• [115]Spotlight
• [116]Backstage
Social
• [117]Twitter
• [118]Mastodon
• [119]LinkedIn
• [120]GitHub
• [121]YouTube
• [122]Instagram
• [123]TikTok
Community
• [124]Merch Shop
• [125]Join the Community
• [126]Code of Conduct
• [127]Sign in to Slack
• ---
• [128]Request Episode
• [129]Submit News
Etc.
• [130]Beats
• [131]Posts
• [132]Changelog Nightly
• [133]Sponsor
• [134]Search
• [135]View Source
• ---
• [136]Report an Issue
• [137]Terms & Conditions
• [138]Privacy Policy
• ---
• [139]Status
[140]
Bandwidth
Fastly
[141]
Hosting
Fly
[142]
Search
Typesense
Player art
Previous Chapter Next Chapter
[152][0 ]
[153][] [1X] 0:00[155][ ] / 0:00
References:
[1] https://changelog.com/
[2] https://changelog.com/
[3] https://changelog.com/beats
[4] https://changelog.com/posts
[5] https://changelog.com/community
[6] https://changelog.com/subscribe
[7] https://changelog.com/++
[8] https://changelog.com/live
[9] https://changelog.com/news/submit
[10] https://changelog.com/in
[13] https://changelog.com/
[14] https://changelog.com/podcasts
[15] https://changelog.com/beats
[16] https://changelog.com/posts
[17] https://changelog.com/community
[18] https://changelog.com/subscribe
[19] https://changelog.com/++
[20] https://changelog.com/news/submit
[22] https://changelog.com/person/jerodsanto
[23] https://changelog.com/posts
[24] https://changelog.com/person/jerodsanto
[25] https://changelog.com/posts/still-no-silver-bullet
[26] https://changelog.com/topic/practices
[27] https://changelog.com/topic/history
[28] https://changelog.com/topic/react
[29] https://en.wikipedia.org/wiki/Fred_Brooks
[30] https://en.wikipedia.org/wiki/Brooks%27s_law
[31] https://en.wikipedia.org/wiki/The_Mythical_Man-Month
[32] http://worrydream.com/refs/Brooks-NoSilverBullet.pdf
[33] https://en.wikipedia.org/wiki/Silver_bullet
[34] https://en.wikipedia.org/wiki/Panacea_(medicine)
[35] https://youtube.com/shorts/m5A8eQaaG8o
[36] https://jsparty.fm/269#transcript-237
[37] https://reactjs.org/
[38] https://jsparty.fm/269#transcript-237
[39] https://youtube.com/changelog
[40] https://changelog.com/news
[41] https://changelog.com/news/45/email
[45] https://changelog.com/in
[46] https://changelog.com/join
[49] https://twitter.com/SolomonUcko
[50] https://twitter.com/SolomonUcko
[51] https://github.com/sollyucko
[52] https://www.linkedin.com/in/solomon-ucko-143853155
[53] https://changelog.com/posts/still-no-silver-bullet#comment-YX1k
[54] javascript:void(0)
[57] https://changelog.com/person/jamesharr
[58] https://github.com/jamesharr
[59] https://changelog.com/posts/still-no-silver-bullet#comment-yW7b
[60] javascript:void(0)
[63] https://changelog.com/person/jerodsanto
[64] https://changelog.com/podcast
[65] https://changelog.com/jsparty
[66] https://twitter.com/jerodsanto
[67] https://github.com/jerodsanto
[68] https://www.linkedin.com/in/jerodsanto
[69] https://changelog.com/posts/still-no-silver-bullet#comment-V31e
[70] javascript:void(0)
[73] https://changelog.com/person/jamesharr
[74] https://github.com/jamesharr
[75] https://changelog.com/posts/still-no-silver-bullet#comment-Zqom
[76] javascript:void(0)
[79] https://changelog.com/person/jerodsanto
[80] https://changelog.com/podcast
[81] https://changelog.com/jsparty
[82] https://twitter.com/jerodsanto
[83] https://github.com/jerodsanto
[84] https://www.linkedin.com/in/jerodsanto
[85] https://changelog.com/posts/still-no-silver-bullet#comment-qGM2
[86] javascript:void(0)
[89] https://github.com/bryan-ffd
[90] https://github.com/bryan-ffd
[91] https://changelog.com/posts/still-no-silver-bullet#comment-J3nq
[92] javascript:void(0)
[94] https://changelog.com/about
[95] https://changelog.com/contact
[96] tel:+1-888-974-2454
[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://www.tiktok.com/@changelog.com
[104] https://changelog.com/podcasts
[105] https://changelog.com/podcast
[106] https://changelog.com/practicalai
[107] https://changelog.com/jsparty
[108] https://changelog.com/shipit
[109] https://changelog.com/founderstalk
[110] https://changelog.com/gotime
[111] https://changelog.com/master
[112] https://changelog.com/rfc
[113] https://changelog.com/brainscience
[114] https://changelog.com/afk
[115] https://changelog.com/spotlight
[116] https://changelog.com/backstage
[117] https://twitter.com/changelog
[118] https://changelog.social/
[119] https://linkedin.com/company/changelog
[120] https://github.com/thechangelog
[121] https://www.youtube.com/changelog
[122] https://www.instagram.com/changelog_
[123] https://www.tiktok.com/@changelog.com
[124] https://merch.changelog.com/
[125] https://changelog.com/community
[126] https://changelog.com/coc
[127] https://changelog.slack.com/
[128] https://changelog.com/request
[129] https://changelog.com/news/submit
[130] https://changelog.com/beats
[131] https://changelog.com/posts
[132] https://changelog.com/nightly
[133] https://changelog.com/sponsor
[134] https://changelog.com/search
[135] https://github.com/thechangelog/changelog.com
[136] https://github.com/thechangelog/changelog.com/issues/new
[137] https://changelog.com/terms
[138] https://changelog.com/privacy
[139] https://status.changelog.com/
[140] https://www.fastly.com/?utm_source=changelog
[141] https://fly.io/
[142] https://typesense.org/?utm_source=changelog&utm_campaign=changelog-search&utm_medium=referral