銀の弾丸なんて無い No Silver Bullet

2017年9月27日その他

銀の弾丸って見たことありますか?

昔々、ソフトウエアの世界のあるところに住んでいてた、フレデリックというおじさんが、ふと気づきました。 ソフトウエア開発の世界に銀の弾丸 なんてやっぱり無いのだと。

ソフトウエア開発の世界が大きく変わった現在では、昔は無かった銀の弾丸が有るのでしょうか、私の知る限り、やっぱり銀の弾丸は無さそうです。 ところで 銀の弾丸って何でしょうか?

フレデリック・ブルックスが1986年に著した、ソフトウェア工学の広く知られた論文「銀の弾丸」(Silver Bullet)の中で、「魔法のようにすぐに役に立ちプログラマの生産性を倍増させるような技術や実践 (特効薬) は、今後10年間 は現れない」と述べたのが、ソフトウエアの世界での銀の弾丸のお話しです。

No Silver Bullet – essence and accidents of software engineering

銀の弾などない—ソフトウェアエンジニアリングの本質と偶有的事項

民話の中の悪夢に登場する怪物のうちでも狼人間ほど恐ろしいものはない。というのも、狼人間は慣れ親しんでいるものを不意に恐怖に変えてしまうからだ。だから、私たちはこの狼人間を魔法のように鎮めることができる銀の弾を探し求める。

慣れ親しんだソフトウェアプロジェクトにもこうした性質が若干あり、ふだんは無害でまともなのだが、スケジュールの遅延膨れ上がった予算、そして、欠陥製品といった怪物にもなり得る。そして私たちは銀の弾、すなわちコンピュータハードウェアのコストと同じようにソフトウェアのコストも急激に小さくしてくれる特効薬を求める必死の叫び声を聞くのである

しかし、これから十年間という範囲で眺めると、銀の弾などはどこにも見えない技術においても、管理手法においても、それだけで十年間に生産性信頼性と 容易性での飛躍的な改善を一つでも約束できるような開発は一つとしてない。本章では、ソフトウェア問題の本質と、提案されているそれぞれの銀の弾の特性の 両方を検証することによって、それがなぜ特効薬になりえないのかについて見ていくことにする。

ずいぶん昔の話ですね

1986年と言えば今から30年近く昔です。一年一昔、十年大昔のドッグイヤーの世界を生きている私たちソフトウエア業界の住人にとって30年前といえばもう、紀元前かというくらい大昔の感覚ですね。

実際、その頃はまだインターネットも無かった時代です。世間一般のコンピュータオタクと呼ばれる人たちが、電話回線に変調したデジタル信号を乗せて、Point to Point で 1200bps の速度で通信していました。 1200bps だと変調された音はザーとノイズの様に聞こえます。 そのもう一つ前の 300bps の変調だと、ピー・ピロピロピロ と可聴域の音が聞こえてきて、機械同士が頑張って通信してるんだな~と実感が湧きました。 30年前というと、今からは想像もつかないようなそんな大昔の時代です。

フレデリック・ブルックスはその時代に、今後10年間はソフトウエアの開発に特効薬は現れない、予言したのです。 そしてその予言された10年を遙かに過ぎた現代、ソフトウエアの世界はどうなっているのでしょう。 世の中の全ての仕組みが、インターネット人口知能IoT など、その実現がソフトウエアに大きく依存した現代の世界に、ソフトウエアの開発の現場に、銀の弾丸はあるのでしょうか? 無いと、とっても困るのですが、、、

では現代には銀の弾丸はありますか?

設計書からソースコードを自動生成する開発ツール、出来上がったソースコードの静的解析・動的解析ツール、セキュリティホールを検出するための検査ツール、色んなツールが考え出され、実際に使われています。 一昔前のソフトウエアの規模や複雑さなら、これらのツールは、銀の弾丸としてある程度は役にたちそうです。

でも、残念ながら、ソフトウエアという怪物は、時を経るにつれて巨大化・複雑化してきました。

今の世界、あらゆる物にコンピュータが組み込まれ、それらがネットを介して繋がったサイバー空間では、様々なサービスが色んな企業から提供されています。コンピュータシステムは System of System (SoS) となって、システムとシステムが繋がる事で、新たなサービスが生まれ続けています。 その全てが依存するソフトウエアの開発現場では、ソフトウエアプロダクトはやはり手に負えない怪物で有り続けています。 残念ながら、銀の弾丸は今の世界でも存在しません。

でも、例え銀の弾丸がなくても、私たちソフトウエアエンジニアは、ソフトウエアを完成させなければなりません。 そのソフトウエアは、ちゃんと動くだけの品質を持っていないといけません。

銀の弾丸が無いのなら、仕方ないですね、小さな事・できる事を一つ一つ積み上げて、なんとか品質の良いソフトを作って、世の中に出して行きましょう。

このブログでは、小さな事・できる事にどんな事があるのかを、少しずつ紹介していきます。  

 その他のお話に戻る