銀の弾丸(英:Silver Bullet)とは、存在しない物である。
社会や国家、また個人において解決困難な問題というのはどうしても発生してしまうものである。
そのような時、「ああ、こうできたら楽なのになあ」と夢想して現実逃避を図ってしまうのは誰しも一度は経験があることと思われるが、そんなものは存在しない、又は存在しても実現性がないことは読者諸賢ならばおわかりだろう。
そういう、こうできたら楽なのになあという夢想の一つの比喩として、銀の弾丸という言葉が存在する。これは、元々欧州において狼男や魔女といった化け物を退治できると信じられていたアイテムで、これを撃ち込めばたちどころに始末できるという願いをこめてつくられた比喩である。
ソフトウェア開発において多く使われる比喩でもあり、初の画期的なOSとして知られるIBMシステム360(OS/360)を作り上げた最高責任者として知られるフレデリック・ブルックスがその経験を下地にして、1986年に著した論文『銀の弾などない― ソフトウェアエンジニアリングの本質と偶有的事項』(原題:No Silver Bullet - essence and accidents of software engineering)で用いられたことで広く知れ渡ることになった。
彼はこの論文の中で、ソフトウェア開発においてやりたいことを実現させるのは極めて困難だが、プログラム言語を記述したりそのテストをするのが難しいのではないと述べている。
即ち一般的なソフトウェアに固有の問題を一気に解消させることは難しい一方で、一つのソフトウェアに存在する偶有的な問題を解消させることは比較的難しくないと言っているのである。これは自然科学や社会科学におけるそれまでの学問における考え方をひっくり返した視点を明らかにしている。化学や物理学において「理想気体」や「摩擦はないものとする」といった現実には起こり得ない状態を想定した上で考察や実験をやりやすくするというのはよくやられており、経済学などの別分野でも人を合理的なものなどと定義した上で理論や法則を考察したりはじき出したりすることは当たり前のように行われている。
だが、ソフトウェア開発においてはこの単純化・純粋化した上で物事を取り扱うということが通用しない。なぜならこれは、複雑さがプログラム全体の本質として存在する為、そうすることが困難、または出来たところで問題の解決からは遠ざかってしまうからである。例えば、あるゲームのバグがアップデートパッチで解決できたところで、それを用いてそのまま他のゲームの似たバグを取り除けるわけではないのと同じである。
一方で、彼はだからといってその本質的な複雑性に対して諦めるべきだと主張したわけではない。その対処の方策として、要件の洗練やプロトタイピング(α版やβ版のような不完全なプログラムを敢えて作成する)を用いて顧客にわかりやすく説明できるようにしたり、一気に開発するのではなく漸増的開発、すなわち機能を逐次増やしながら育成する感覚でソフトウェアの開発を進めていく事が大事だと彼は論文の中で記述している。
何にしても、(ドラえもんのひみつ道具のような)一足飛び二足飛びにプログラムの諸問題を解決するような”銀の弾丸”は登場しないのだから、地道な開発を続けていくことが大事であると彼は結論づけている。ブルックスは銀の弾丸が登場しないとする期間に10年間の時限を設け、9年後の1995年に再発射と題して自らこの論文の省察を行ったが10年すら楽観的すぎたと綴っている。
銀は言うまでもなく貴金属に属し、金に比べて安価とはいっても数が正義の兵器・武器においてはそうやたら使えるものではない。それなりの剛性はあるので弾丸にできないことはないが、コストを犠牲にして作ったところで銃弾に盛んに使われている鉛より比重が軽いために殺傷力を得られるわけでもない。
比重の軽さを利用して初速の早い弾として使うにしても銀よりも使い勝手が良い金属は鋼鉄や真鍮をはじめ豊富に存在するので、武器として銀の弾丸を敢えて使う合理性はあまりないといっていいだろう。
だが概要に書いた通り魔女や狼男を撃退する魔除けとして一部では今も信じられているため、お守り代わりに持っている人は存在する。
急上昇ワード改
最終更新:2025/12/09(火) 15:00
最終更新:2025/12/09(火) 15:00
ウォッチリストに追加しました!
すでにウォッチリストに
入っています。
追加に失敗しました。
ほめた!
ほめるを取消しました。
ほめるに失敗しました。
ほめるの取消しに失敗しました。