2018年2月9日金曜日

銀の弾と金のハンマーのお話

銀の弾などない - Wikipedia:

 今回は珍しくWikipediaの中から「銀の弾丸などない」という項目について。実は前回、大前研一氏の記事を元に何でもかんでもAIが解決するとか、全ての仕事はAIに奪われるという極論もなんだかなあという記事を書いたのですが、この極論について自分の身近に似た例があったことを思い出したのです。それがこの「銀の弾丸はない」という言葉。言葉というか、ソフトウェア開発における格言のようなもので、振り返ってみますとこの山ちゃんウェブログの中でも実は何度か登場させた言葉でした。

 これまで特に説明なしで使って来たこの言葉なのですが、よく考えてみると、ソフトウェア開発の世界にいない人(つまりほとんどの人!)には何のことやらですよね。この言葉は、フレデリック・ブルックス氏が1986年に著した「銀の弾などない— ソフトウェアエンジニアリングの本質と偶有的事項」という有名な論文から来ています。「銀の弾丸」とは、ヨーロッパの宗教的な背景の中で狼人間や悪魔を撃退するものとされています。もちろん比喩なのですが、ソフトウェアで解決しようとしている問題そのものとも捉えられるでしょうし、工程遅延・予算オーバー・欠陥製品のようなプログラマーの恐怖の対象と捉えてもいいかもしれません。こういった全てを一気に解決してくれる万能薬などないというのが、ブルックス氏の主張の趣旨です。

 そしてもう一つ。「銀の弾丸などない」という言葉と合わせて語られるのが、「金のハンマー」という言葉。実は「銀の弾丸」ほど有名でなく根拠も確かではありません。もしかしたら、誰かが「銀の弾丸」のパロディで言っただけの言葉かもしれませんが、ソフトウェア開発の現場に今もある言葉です。「金のハンマー」というのは、あるハンマーを持つ者にはすべてが釘に見えるという意味です。つまり「ある手段を持つ者にとって全ての問題はその手段で解決すべきものに見える」ということで、自分が持っている道具だけで全ての問題に対処しようとする態度のことを批判しています。何かすごい武器を手に入れた時、例えばオブジェクト指向言語を覚えたとか、最近流行りのPythonがかけるようになったという時、IoT(Internet of Things)の組込みエッジデバイスのプログラムもそれらの言語で書こうとする、そんなことを言っています(ちょっと極端かもしれませんが)。

 もしかしたら、大前研一氏の記事を元に何でもかんでもAIが解決するというのは何だかなあと思ったのは、この「金のハンマー」の方が適しているかもしれませんね。確かに人工知能(AI)が大流行していて、自分のようなIoT関係のシステム製品を開発している現場にも、「もっとAIを活用せよ」とか「AIを使ったサービスを提案せよ」のようなことを上から言われることがあります。しかし、それは本当にAIで解決すべき問題なのか、他にもっと優れた手段があるかもしれないと考えるのが、エンジニアとして正しい態度ではないかと思うのです。ご自身はプログラマーでもある川俣晶氏がうまいことを言っておられます。「XXを使えばすべてうまくいく、と思ったら負け」だと。

0 件のコメント:

コメントを投稿