政治的バッドノウハウに立ち向かう作法

プログラマー日記さんで、Sendmailというソフトウエアを題材にして、「バッドノウハウ」に関する議論が盛り上っている。これをソフトウエア以外の話として展開してみたいと思う。

バッドノウハウ

バッドノウハウ」とは、高林哲さんの上記サイトから引用すると


計算機を使っていると、何でこんなことを覚えないといけないのだ ろうか、とストレスを感じつつも、それを覚えないとソフトウェアを使いこなすことができないためにしぶしぶ覚えなければならない、 といった類いのノウハウは多い。そうした雑多なノウハウのことを、本来は知りたくもないノウハウという意味で、私はバッドノウハウ と呼んでいる。

ということで、歴史的に長く使われていたソフトウエアを巡って発生しやすい現象である。

最初は有用で使いやすかったソフトウエアも、長く使われて環境が変化するうちに、多くのユーザのニーズに簡単に対応できなくなる。しかし、ソフトウエアは、特に昔のUNIX系のソフトウエアは、調整する余地が大きく、本来得意でないことも、無理すればできてしまう。

Sendmailというソフトウエアはその典型で、もともとはインターネット以前の電子メール(モデムと電話線による配送)の時代に開発されたソフトウエアなのだが、その柔軟性の為に、配送経路がほとんどインターネットになってからも、そのまま使われてきた。

これが完全にダメダメなソフトウエアであれば、そういう環境の変化には対応できなくて捨てられてしまうのだが、幸か不幸か、Sendmailは、超絶テクニックを駆使して調整しまくると、新しい環境でも充分機能するものだった。

しかし、その調整の為には、ほとんどプログラムを書くの同様の長い複雑な設定ファイルを作らなくてはならなくて、それは、並のプログラミング(CとかJavaで普通のプログラムを書くこと)よりずっと難しいことになってしまった。そして、それはインターネット環境でメールサーバを運用する為には必須のノウハウなので、その呪文のような設定ファイルを解読し編集できることは、ひとつの「スキル」として確立してしまったのである。

こういう状況になると、いつそのSendmail(バッドノウハウで稼働するソフト)を捨てたらよいかという判断が難しくなる。その判断の為の基準としては、以下のものがあるだろう。

  1. バッドノウハウをすでに取得している上級者の人数
  2. 同種のソフトを使う必要があるがまだ取得してない初心者の人数
  3. 設計と環境の乖離の程度

単純に技術的な問題であれば、これらの状況は「捨てる」「再構築」の方向を支持する方向に動いていく。いつかそれを捨てて、新しいソフトを再構築することになるはずだ。つまり、2の初心者の数が増えてその教育コストは一方的に上がり続け、3の乖離から新しい問題は増え続け、一方で、ノウハウを持つ上級者は増えない。いつかは、そういう無駄なコストの量が、新しい環境に合わせたソフトウエアを開発するコストを上回ることになる。

時代が進展すれば、Sendmailを使う為の技術はますます複雑化する一方、それを使える技術者は希少で高級取りになり、「そんな高い給料を払うならば新しいメールサーバソフトウエアが開発した方が安い」という状況になる。だから、これは、時間が解決する問題だし、一見、技術的な問題に見える。

「奥が深い症候群」

しかし、実は、そこに複雑な心理的な問題がからんで来て、問題を複雑にする。いやむしろ、その心理的な問題の方が、本当の問題なのだ。高林氏は、これを「奥が深い症候群」と呼んでいて、その点を問題視されている。


一般に、マニアという人種は普通の人にとってはどうでもいいよう な知識を熱心に覚えることに喜びを見出すものだが、これが計算機マニアになると「奥が深い」といってバッドノウハウを喜んで覚える「奥が深い症候群」になりやすいようである。また、バッドノウハウを薀蓄として披露することによって、より一層の喜びを得ると いう心理的な働きも「奥が深い症候群」を進行させる一因となって いるようだ。

つまり、無理矢理使うことが快感となって、それ自体が目的になってしまうのだ。

この心理によって、初心者が上級者に教育されつつ洗脳され、さらなる複雑怪奇な上級テクニックが生まれ、設計時想定されない環境の元で、無理矢理、そのソフトウエアが使用され続けてしまうことになる。

この状態に入りこむと、設計と環境の乖離が進むほど、それをテクニックで乗り越えることで、より大きな快感を生むことになり、その快感を感じる回路が、具体的なノウハウとともに、上級者から初心者へ伝達されてしまう。問題が大きいほどそれを正当化するフィードバック回路ができてしまうのである。

たとえば、メールサーバの通常運用は何の面白みもなくこなせる上級者にとって、「ウィルスメールの排除」という新しい課題は、非常にチャレンジングでエキサイティングな問題となる。この課題の為に、さらなるバッドノウハウを開発することが、技術者としての存在価値になってしまうわけである。

ただし、このように難題を「快感」に変えて受容する回路自体は、技術者として自己啓発や技術開発に不可欠なものであり、その回路自体を否定することは間違いである。しかし、それが「バッドノウハウ」と結びつき、課題解決の方法を判断する為の障害となることがあり、それが問題なのである。

誰が変えるタイミングを判断するのか?

「奥が深い症候群」に多くの技術者、特に上級者が冒されてしまった時、一番問題なのは、それによって判断基準がゆがんでしまうことである。

現在もSendmailは使われているが、Postfix,qmailという、新しいメールサーバソフトウエアが開発されていて、だんだんとそちらへ移行が進みつつある。

これはオープンソースソフトウエアの世界のことなので、「今日からPostfixを使え」と号令する人はいない。従って、この移行を決断した個人はいない。しかし、世界中のメールサーバ管理者、開発者の集団的な意思決定として見た場合に、この移行への決断は「奥が深い症候群」によって、遅れてしまった可能性が高い。


Sendmailは複雑すぎると文句をいうと、CF使えば問題ないとか、技術力が低いやつが文句を言うなとか、そんなことを言われた。当時はペーペーだったし、自分が頭よくないことを思い知らされていたので、心に引っかかりはあったもののそんなもんかと思っていた。


しかしqmailPostfixが登場して、Sendmailが無駄に複雑であることが証明されてしまった。Sendmailが複雑なのは単に設計の問題であり、メールの配送というシステムが本質的に難しいからというわけではないことがわかった。

こういう思いをした人は、「プログラマー日記」さん以外にもたくさんいただろうし、現在の環境の元では「無駄に複雑な」Sendmailの学習の為に、たくさんの時間が使われて来たことだろう。Postfixはもっと早く開発されるべきであったし、多くのサイトがもっと早くPostfixに移行すべきだったのだ。

それで問題なのは、この決断は、誰がすべきであったのか?誰が声をあげるべきであったのか?ということである。

初心者は、問題の所在に気がつけるけど、上級者を説得できないし自力で問題を解決する力もない。上級者は、潜在的には問題を解決できる能力を持っているはずだが、心理的な障壁の為に問題の本質が見えなくなっている。


もしこれを読んでいる初級者の人がいたら、覚えておいてほしい。あなたが「わかりにくいなー」と思ったことは、あなたの技術力が足りないだけのこともあるけど、その技術が本質的にいけてないだけの場合もある。先輩がいったことはいつも正しいわけじゃない。


私が言いたかったのは、まさにこのような「現状を容認するばかりで考えようとしないこと」あるいは「問題の本質から目を逸らそうとすること」が悪いということです。Sendmailへの愚痴も混ざってますがそれは主題ではなく、Sendmailの複雑さに疑問をもった人(主に素人)を非難する人たち(特に上級者)に考え方を少し変えて欲しかったのです。

両方へこう呼びかける「プログラマー日記」さんに、私もほぼ同感である。鍵は両者のコミュニケーションの中にあると思う。

上級者が単独で「バッドノウハウ」に気がつくのは難しいし、それは責められないと私は思う。上級者が「奥が深い」ノウハウをたくさん持っているのは当然で、その多くは建設的なノウハウである。初心者が疑問を積極的に尋ねることで、上級者は、自分のノウハウを点検する機会が生まれる。その機会を逃さず、自らの持つノウハウをいちいち自己点検することが必要なのだと思う。

一般化して政治の話へ

このような「バッドノウハウ」と「奥が深い症候群」は、政治の世界にもある。というか、新聞の政治面は、そればっかと言ってもいい。政治家の発言をいちいち翻訳して解説することに終始している。

  1. 政治的バッドノウハウをすでに取得している上級者の人数の減少
  2. 政治的な利害に影響されるが、政治的バッドノウハウをまだ取得してない初心者の人数、不満の鬱積
  3. 政治システムと国民の意識の乖離の程度

いずれも深刻化する一方だと思う。

「政治的利害」とか言うと、とたんに自分には関係ないと思う人もいるだろうが、お望みならば一国まるごとGoogle八分にして差し上げますがどうされますか?というふうに翻訳すれば、多少は自分が関わる問題だと実感できるのではないだろうか。

Googleが各国の法制度を尊重するのは当然のことで、我が国の法制度はあいまいな部分な所が多く、実運用からその精神を多く学ばなければいけないことは、当然、Googleや他のIT企業も理解していると思う。

そして、そういう意味で、ライブドア問題は注目されていると思うが、「あんまり引っかき回さないでほしい」と、政治的バッドノウハウを駆使した表現で、上級者たちは言ってしまったのである。

だから、Googleや他のIT企業が各国の法制度を尊重するならば、何かにつけて、日本をサービスの対象外にしたり優先順位を下げたりするして、「一国まるごとGoogle八分」にするだろう。

雑記・オブ・チョイチョイ


こういう問いをするための理論武装が何なのかっていうのに非常に興味がある。つまり、ここまできてなお「don't evil」をコアコンピタンシーとしていなければならないGoogleは、このような問いを有効に、もしくは間接的にでも利用するためには、どのような理論武装が必要なのだろうか。

に答えると、この場合の「理論武装」は「don't evil」だけで充分である。むしろ、金融関係の法律のグレーゾーンに踏みこんで我が国の法制度(の精神)を踏みにじる方が「evil」である。(もちろん、もっと複雑な「倫理的理論武装」を必要とする場面もあるでしょうが、この場合については、という話として)

それで、「一国まるごとGoogle八分」はヤメテ!と声をあげる為には、それを何重もの政治的バッドノウハウでくるまないと、有効な声にならない。たぶん、この文章の中のこの「 一般化して政治の話へ」セクションだけ読まなかった人がたくさんいると思うが、なぜ、そこで多くの読者の興味が離れるかと言うと、「ああ、ここから政治的バッドノウハウの話になるな、それはもうたくさん」と思ってしまうからだ。

おかしいことを単純におかしいと言って、○○使えば問題ないとか、○○も勉強してないやつが文句を言うなとか言われた経験があって、「もういいや」と思ってしまったのかもしれない。だいたい、政治的上級者というのは、国民の意思が政治に反映されないことについて、「君にはわからないだろうが、世の中とはそういうものなんだ」と初心者を納得させるのに快感を覚えるものである。

おそらく、そういう言葉の中には、経験から来る真に有用な政治的社会的経済的ノウハウと「バッドノウハウ」に伴なう独特の快感が混在していて、初心者の側からは区別がつかない。初心者にできることは上級者に自省の機会を与えることだけであり、それを判断できるのは上級者だけなのかもしれない。

だけど、とにかく初心者は声をもっとあげるべきだと思う。