changelog-com-kqx1ni.txt (15839B)
1 [1]Changelog 2 3 • [2]Podcasts 4 • [3]Beats 5 • [4]Posts 6 • [5]Community 7 • [6]Subscribe 8 • [7]Changelog++ 9 10 • [8]Live 11 • [9]Submit News 12 13 • [10]Sign In 14 15 [11][ ] 16 [13]Changelog 17 18 • [14]Podcasts 19 • [15]Beats 20 • [16]Posts 21 • [17]Community 22 • [18]Subscribe 23 • [19]Changelog++ 24 • [20]Submit News 25 26 [21][ ] 27 [22] Jerod Santo [23]changelog.com/posts 28 29 There's still no silver bullet 30 31 a friendly reminder that you haven't found the panacea 32 33 logged by [24]jerodsanto [25]2023-05-24T16:25:22Z [26]#practices +2 34 35 • [27]#history 36 • [28]#react 37 38 The late, great [29]Fred Brooks wrote many words about software engineering. 39 You may have heard of [30]Brooks’s Law or read his seminal book, [31]The 40 Mythical Man-Month. Even if you haven’t, you’ve probably heard at least one 41 colleague proclaim: 42 43 Nine women can’t make a baby in one month! 44 45 This is a powerful metaphor for two reasons. First: it’s so vivid that it’s 46 hard to forget (and easy to recall in a time of need). Second: it makes obvious 47 a not-so-obvious conclusion. Which is: 48 49 Adding manpower to a late software project makes it later. 50 51 That’s a hard pill to swallow, especially when your project is late. But it’s a 52 truth pill, which makes it worth choking down. Here’s another truth pill that 53 Brooks wrote in his paper [32]No Silver Bullet–Essence and Accident in Software 54 Engineering: 55 56 There is no single development, in either technology or management 57 technique, which by itself promises even one order of magnitude [tenfold] 58 improvement within a decade in productivity, in reliability, in simplicity. 59 60 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61 62 For those who don’t understand the silver bullet reference… it’s [33]pulled 63 from folklore where a bullet cast from silver is the only weapon that can kill 64 a werewolf. Over time a silver bullet has come to represent “a simple, 65 seemingly magical, solution to a difficult problem.” Brooks could have easily 66 reached for [34]panacea instead, but I think the shiny characteristic of silver 67 makes it the perfect analog to software solutions. 68 69 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 70 71 I’ve found myself referencing this a [35]couple [36]times recently. Both of 72 those conversations were in the context of [37]React, but the principle applies 73 to every over-adopted technology. 74 75 So, this post is a gentle reminder to my fellow software engineers: 76 77 • Does a new tool promise to solve all your problems? It won’t 78 • Do you think you’ve found the “one true tech”? You haven’t 79 • Have a shiny hammer that looks great for hitting screws? It isn’t 80 81 Please humor me while I [38]quote myself for a moment: (Hey, it’s easier than 82 writing) 83 84 Subscribe to [39]our YouTube channel for more clips like this, live show 85 recordings, and more ✌️ 86 87 88 We tend to be kind of lazy and just take the big hammer and hit all the 89 nails with it. Like, “Oh, I’ve found the panacea. This is gonna solve all 90 my problems”, because it does solve some of your problems big-time. 91 92 But it’s also is gonna create other problems, and it’s also not gonna fit 93 in every place that you can shove it. I mean, I know there’s React-based 94 command line builders… And it’s like, okay, if you like components, cool. 95 That makes sense. But why is React building your command-line app? I just 96 don’t understand. 97 98 When I extemporaneously said “I just don’t understand”, I meant that the choice 99 confounds me. But I do understand why people might make it. 100 101 Saying “use the right tool for the job” is easy, but actually selecting the 102 right tool for the job is anything but. Good tools are hard to find, hard to 103 evaluate, hard to learn. We have constraints, we have biases, we have 104 shortcomings. 105 106 But that’s all part of the work. 107 108 And if you “just use Go” or “just use React” or “just use Postgres” for every 109 problem that crosses your keyboard, you’re just not putting in the work. 110 111 (And I say this as a guy who uses Postgres for most things! 😆) 112 113 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 114 115 If you enjoyed reading this, you’ll probably enjoy [40]Changelog News, my free 116 weekly podcast + newsletter covering developer news worth your attention. I 117 keep it brief (~8 min), entertaining & always on-point. Not so sure? Check out 118 a [41]recent issue! 119 120 Software moves fast. We help you keep up. Our weekly newsletter is brief, 121 entertaining & always on-point. 122 123 [42][ ] 124 [43][Get Changelog News] 125 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 126 127 Discussion 128 129 [45]Sign in or [46]Join to comment or subscribe 130 131 Solomon Ucko 132 133 sollyucko 134 135 [49] Solomon Ucko 136 137 Solomon Ucko 138 139 • [50]Twitter 140 • [51]GitHub 141 • [52]LinkedIn 142 143 [53] 2023-05-25T03:42:39Z ago 144 145 just use Rust, except possibly when you’re working with a platform designed for 146 another language (e.g. web => HTML/CSS/JS, Android => Java or Kotlin, macOS/iOS 147 => Objective-C or Swift, Microsoft Office macros => Visual Basic), though Rust 148 does have FFI crates for all of these. 149 150 [54]reply 151 152 James Harr 153 154 jamesharr 155 156 [57] James Harr 157 158 James Harr 159 160 • [58]GitHub 161 162 [59] 2023-05-27T12:55:20Z ago 163 164 Nine women can’t make a baby in one month! 165 166 I quoted this to my wife once while trying to explain the concept from the 167 book. She knew what I meant, but said (paraphrasing) it’s a micro aggression to 168 pick out women and I might want to pick another example. 169 170 After some reflection and an initial knee jerk internal reaction of “no, it’s a 171 fine example”, I agree with her. There’s no reason to change the book – it is 172 what it is, it was written at a point in time, and it did it’s job of getting 173 the readers to think. All that said, we can come up with a better example for 174 the present and future. I don’t know what that example is, but I know we can do 175 better. 176 177 [60]reply 178 179 Jerod Santo 180 181 jerodsanto 182 183 [63] Jerod Santo 184 185 Jerod Santo 186 187 Omaha, Nebraska 188 189 Jerod co-hosts [64]The Changelog, crashes [65]JS Party, and takes out the trash 190 (his old code) once in awhile. 191 192 • [66]Twitter 193 • [67]GitHub 194 • [68]LinkedIn 195 196 [69] 2023-05-27T13:36:23Z ago 197 198 How is it a micro aggression? I do not understand. 199 200 [70]reply 201 202 James Harr 203 204 jamesharr 205 206 [73] James Harr 207 208 James Harr 209 210 • [74]GitHub 211 212 [75] 2023-05-27T16:02:25Z ago 213 214 Well, maybe micro aggression isn’t the right term, but it’s something that left 215 a bad taste in her mouth and I’m trying to remember exactly how she described 216 it. I think you almost have to put your self in the shoes of someone who 1) has 217 had to work upstream in an industry because of their gender 2) has had to deal 218 with people in a society that see a women’s “job” is to bear children and 219 careers come second at best 3) has had to deal with a lot of people having 220 opinions over your body and what you do with it, most of which do not share 221 your anatomy. After putting yourself in that position, the comparison starts to 222 feel more icky. 223 224 I’ll be honest, I’m defending a view I don’t entirely “get” and may not be 225 capable of understanding. However, after seeing her reaction when I said that 226 quote, this is one of those times where I’m going to say “I believe you”. I’ve 227 been incredibly privileged in this world as a white male, and that’s a pretty 228 big blindspot, so I’m putting trust in someone else to see what’s there. 229 230 I’m not going to fault anyone for quoting it and you have nothing to apologize 231 for; Part of the reason that quote works so effectively is how ridiculous it 232 is. I’m just going to challenge people to do better, and it’s going to be hard. 233 234 [76]reply 235 236 Jerod Santo 237 238 jerodsanto 239 240 [79] Jerod Santo 241 242 Jerod Santo 243 244 Omaha, Nebraska 245 246 Jerod co-hosts [80]The Changelog, crashes [81]JS Party, and takes out the trash 247 (his old code) once in awhile. 248 249 • [82]Twitter 250 • [83]GitHub 251 • [84]LinkedIn 252 253 [85] 2023-05-28T12:43:12Z ago 254 255 I’ll be honest, I’m defending a view I don’t entirely “get” and may not be 256 capable of understanding. However, after seeing her reaction when I said 257 that quote, this is one of those times where I’m going to say “I believe 258 you” 259 260 That’s a fair stance to take, but it doesn’t produce much of a convincing 261 argument that will drive people to change. If you want people to starting using 262 a better metaphor, I challenge you to come up with one. 263 264 [86]reply 265 266 Bryan Betts 267 268 bryan-ffd 269 270 [89] Bryan Betts 271 272 Bryan Betts 273 274 • [90]GitHub 275 276 [91] 2023-06-28T12:58:27Z ago 277 278 “Over time a silver bullet has come to represent “a simple, seemingly magical, 279 solution to a difficult problem.” 280 Well, maybe - but what you’re actually referring to here is a magic bullet, or 281 Zauberkugel. Over time, some people - yes, including award-winning engineers 282 and scientists - have come to confuse the two. 283 284 [92]reply 285 286 Hide Overlay 287 288 • [94]About 289 • [95]Contact 290 • [96]888-974-CHLG (2454) 291 292 • [97] Twitter Icon 293 • [98] Mastodon Icon 294 • [99] LinkedIn Icon 295 • [100] GitHub Icon 296 • [101] YouTube Icon 297 • [102] Instagram Icon 298 • [103] TikTok Icon 299 300 [104]Podcasts 301 302 • [105]The Changelog 303 • [106]Practical AI 304 • [107]JS Party 305 • [108]Ship It! 306 • [109]Founders Talk 307 • [110]Go Time 308 • [111]Changelog Master Feed 309 • --- 310 • [112]Request For Commits 311 • [113]Brain Science 312 • [114]Away from Keyboard 313 • [115]Spotlight 314 • [116]Backstage 315 316 Social 317 318 • [117]Twitter 319 • [118]Mastodon 320 • [119]LinkedIn 321 • [120]GitHub 322 • [121]YouTube 323 • [122]Instagram 324 • [123]TikTok 325 326 Community 327 328 • [124]Merch Shop 329 • [125]Join the Community 330 • [126]Code of Conduct 331 • [127]Sign in to Slack 332 • --- 333 • [128]Request Episode 334 • [129]Submit News 335 336 Etc. 337 338 • [130]Beats 339 • [131]Posts 340 • [132]Changelog Nightly 341 • [133]Sponsor 342 • [134]Search 343 • [135]View Source 344 • --- 345 • [136]Report an Issue 346 • [137]Terms & Conditions 347 • [138]Privacy Policy 348 • --- 349 • [139]Status 350 351 [140] 352 353 Bandwidth 354 355 Fastly 356 [141] 357 358 Hosting 359 360 Fly 361 [142] 362 363 Search 364 365 Typesense 366 Player art 367 Previous Chapter Next Chapter 368 [152][0 ] 369 [153][] [1X] 0:00[155][ ] / 0:00 370 371 References: 372 373 [1] https://changelog.com/ 374 [2] https://changelog.com/ 375 [3] https://changelog.com/beats 376 [4] https://changelog.com/posts 377 [5] https://changelog.com/community 378 [6] https://changelog.com/subscribe 379 [7] https://changelog.com/++ 380 [8] https://changelog.com/live 381 [9] https://changelog.com/news/submit 382 [10] https://changelog.com/in 383 [13] https://changelog.com/ 384 [14] https://changelog.com/podcasts 385 [15] https://changelog.com/beats 386 [16] https://changelog.com/posts 387 [17] https://changelog.com/community 388 [18] https://changelog.com/subscribe 389 [19] https://changelog.com/++ 390 [20] https://changelog.com/news/submit 391 [22] https://changelog.com/person/jerodsanto 392 [23] https://changelog.com/posts 393 [24] https://changelog.com/person/jerodsanto 394 [25] https://changelog.com/posts/still-no-silver-bullet 395 [26] https://changelog.com/topic/practices 396 [27] https://changelog.com/topic/history 397 [28] https://changelog.com/topic/react 398 [29] https://en.wikipedia.org/wiki/Fred_Brooks 399 [30] https://en.wikipedia.org/wiki/Brooks%27s_law 400 [31] https://en.wikipedia.org/wiki/The_Mythical_Man-Month 401 [32] http://worrydream.com/refs/Brooks-NoSilverBullet.pdf 402 [33] https://en.wikipedia.org/wiki/Silver_bullet 403 [34] https://en.wikipedia.org/wiki/Panacea_(medicine) 404 [35] https://youtube.com/shorts/m5A8eQaaG8o 405 [36] https://jsparty.fm/269#transcript-237 406 [37] https://reactjs.org/ 407 [38] https://jsparty.fm/269#transcript-237 408 [39] https://youtube.com/changelog 409 [40] https://changelog.com/news 410 [41] https://changelog.com/news/45/email 411 [45] https://changelog.com/in 412 [46] https://changelog.com/join 413 [49] https://twitter.com/SolomonUcko 414 [50] https://twitter.com/SolomonUcko 415 [51] https://github.com/sollyucko 416 [52] https://www.linkedin.com/in/solomon-ucko-143853155 417 [53] https://changelog.com/posts/still-no-silver-bullet#comment-YX1k 418 [54] javascript:void(0) 419 [57] https://changelog.com/person/jamesharr 420 [58] https://github.com/jamesharr 421 [59] https://changelog.com/posts/still-no-silver-bullet#comment-yW7b 422 [60] javascript:void(0) 423 [63] https://changelog.com/person/jerodsanto 424 [64] https://changelog.com/podcast 425 [65] https://changelog.com/jsparty 426 [66] https://twitter.com/jerodsanto 427 [67] https://github.com/jerodsanto 428 [68] https://www.linkedin.com/in/jerodsanto 429 [69] https://changelog.com/posts/still-no-silver-bullet#comment-V31e 430 [70] javascript:void(0) 431 [73] https://changelog.com/person/jamesharr 432 [74] https://github.com/jamesharr 433 [75] https://changelog.com/posts/still-no-silver-bullet#comment-Zqom 434 [76] javascript:void(0) 435 [79] https://changelog.com/person/jerodsanto 436 [80] https://changelog.com/podcast 437 [81] https://changelog.com/jsparty 438 [82] https://twitter.com/jerodsanto 439 [83] https://github.com/jerodsanto 440 [84] https://www.linkedin.com/in/jerodsanto 441 [85] https://changelog.com/posts/still-no-silver-bullet#comment-qGM2 442 [86] javascript:void(0) 443 [89] https://github.com/bryan-ffd 444 [90] https://github.com/bryan-ffd 445 [91] https://changelog.com/posts/still-no-silver-bullet#comment-J3nq 446 [92] javascript:void(0) 447 [94] https://changelog.com/about 448 [95] https://changelog.com/contact 449 [96] tel:+1-888-974-2454 450 [97] https://twitter.com/changelog 451 [98] https://changelog.social/ 452 [99] https://linkedin.com/company/changelog 453 [100] https://github.com/thechangelog 454 [101] https://www.youtube.com/changelog 455 [102] https://www.instagram.com/changelog_ 456 [103] https://www.tiktok.com/@changelog.com 457 [104] https://changelog.com/podcasts 458 [105] https://changelog.com/podcast 459 [106] https://changelog.com/practicalai 460 [107] https://changelog.com/jsparty 461 [108] https://changelog.com/shipit 462 [109] https://changelog.com/founderstalk 463 [110] https://changelog.com/gotime 464 [111] https://changelog.com/master 465 [112] https://changelog.com/rfc 466 [113] https://changelog.com/brainscience 467 [114] https://changelog.com/afk 468 [115] https://changelog.com/spotlight 469 [116] https://changelog.com/backstage 470 [117] https://twitter.com/changelog 471 [118] https://changelog.social/ 472 [119] https://linkedin.com/company/changelog 473 [120] https://github.com/thechangelog 474 [121] https://www.youtube.com/changelog 475 [122] https://www.instagram.com/changelog_ 476 [123] https://www.tiktok.com/@changelog.com 477 [124] https://merch.changelog.com/ 478 [125] https://changelog.com/community 479 [126] https://changelog.com/coc 480 [127] https://changelog.slack.com/ 481 [128] https://changelog.com/request 482 [129] https://changelog.com/news/submit 483 [130] https://changelog.com/beats 484 [131] https://changelog.com/posts 485 [132] https://changelog.com/nightly 486 [133] https://changelog.com/sponsor 487 [134] https://changelog.com/search 488 [135] https://github.com/thechangelog/changelog.com 489 [136] https://github.com/thechangelog/changelog.com/issues/new 490 [137] https://changelog.com/terms 491 [138] https://changelog.com/privacy 492 [139] https://status.changelog.com/ 493 [140] https://www.fastly.com/?utm_source=changelog 494 [141] https://fly.io/ 495 [142] https://typesense.org/?utm_source=changelog&utm_campaign=changelog-search&utm_medium=referral