連載
» 2009年09月30日 08時00分 公開

オープンソースソフトウェアの育て方:「空気が読める」開発者への道 (4/5)

[Karl Fogel, ]

宗教論争を回避する

 宗教論争(holy war:聖戦)とはある種の論争のことです。ただ、時には話し合いで解決できないほど大きな問題になることもあります。お互い、相手側を打ちのめすまで議論を続けようとします。これは、先ほどのいわゆる「自転車置場問題」とは多少異なるものです。自転車置場の議論に加わっている人たちは、先を競って自分の意見を表明します(だって簡単に意見を言えるから)。

 でも、彼らは必ずしもそれを強く主張するわけではありません。時には相手の意見に理解を示すこともあります。しかし「宗教論争」においては、相手の意見に耳を傾けた時点で負けです。みんな「正解はたった1つである」という点では合意しているのですが、ただ「正解がどれか」という点で争っているのです。

 いったん宗教論争が始まってしまったら、みんなが満足するような形でそれを収束させることは不可能です。炎上している真っただ中で「これって宗教論争じゃない?」と指摘したところで無意味です。そんなこと、みんなとっくに知っているわけなんだから。

 残念なことに、宗教論争の多くは「この問題は話し合いを続ければ解決できるのか」という点に対しても意見の対立が発生するものなのです。第三者からみれば、どちら側も相手を説得できそうにないのは明らかです。当事者たちは「相手側は何も分かっちゃいない。うまく説得すればきっとわたしたちの考えを分かってくれるだろう」とお互い考えています。わたしは「こんな争いには正解なんてない」とは言いません。時には正解があることもあるのです。わたしも過去に何度か宗教論争に巻き込まれましたが、そのときはいつもわたしたちの方が正論でした。とはいえ、そんなことはどうでもいいことです。どちらが正しいのかを納得いくように説明する方法なんてないのですから。

 宗教論争を解決しようとしてやりがちなことは「こんなことをいつまでも続けていても時間のムダじゃないか! もういいかげんやめてしまわない?」ということですが、これでは不十分です。このやり方には2つの問題があります。まず、これまで議論に費やしてきた時間や気力は取り戻せないということです。いま大事なのは「後どれだけ議論しなければならないのか?」です。もし「もう少し話をすれば解決できそうだ」と感じている人が何人かいるのなら、(少なくとも彼らの視点からは)議論を続けるのは理にかなっています。

 もう1つの問題は、そこで議論をやめてしまう(現状維持とする)ことが、どちらか一方に事実上の勝利宣言をするのに等しいことがあるということです。また時には「とにかく現状をどうにかしなければならない」という点では合意しているが「どのように変えるのか」で争っているということもあります。こんな場合は、議論を打ち切ってしまったら誰の得にもなりません。そのことはみんな分かっているので、この場合は議論を続けることも可能でしょう。

 では、いったいどのように処理したらいいのでしょう?

 まず言えることは、そんな議論が起こりえないようにするということです。これは、皆さんが思っているほど難しいことではありません。

 宗教論争になりがちなネタは、だいたい予想がつきます。プログラミング言語についてだったりライセンスについてだったり(章9.ライセンス、著作権、特許GPLとライセンスの互換性項をご覧ください)、あるいはreply-to の処理についてだったり(章3.技術的な問題Reply-to はどうすべきか項をご覧ください)などです。

 たいていのプロジェクトは一度や二度はこういう経験をしており、それによって開発者たちの結束が急速に深まったりします。このような争いをやめさせたり、あるいは被害をできるだけ抑えたりする方法は、どこに行っても同じです。たとえ自分側の意見が正しいと確信しているのだとしても、取りあえずは相手側の意見にも耳を傾け、理解を示すようにしましょう。

 この手の争いでよくある問題は、それぞれの側が可能な限りハードルを高くしてしまって自分たち以外の考えはみんなまったくばかげているといい切ってしまうことです。このような場合、相手側を説得したり意見を変えさせるようにしたりするのも難しくなってしまいます。つまり、単に相手に「まちがっていました」と認めさせるだけではなく「心から間違っていました!」と認めさせなければならなくなるのです。

 相手側に説得を受け入れてもらいやすくするには、まずあなた自身の確信を押し付けないようにすることです。つまり、現在行われている議論の内容をきちんと理解していること、そして説得力があるかどうかはともかく、少なくとも分別はあるということを示すことです。相手が返事を返す余地があるような意思表示をするようにしましょう。そうすれば、状況は改善するでしょう。結果としてあなたが望んでいたそのものは得られないかもしれませんが、少なくとも、プロジェクトの士気に影響を及ぼすような巻き添え被害は防ぐくとができます。

 宗教論争が避けられない状況になったら、あなたがどの程度それにかかわるのかを早めに決断しましょう。何なら、その手の議論を正式に放棄してしまってもかまいません。そうすれば、皮肉を言ったり反対意見に対して捨てゼリフを残したりせずにきれいに宗教論争から身を引くことができます。議論を放棄する場合は、潔く行うことが大切です。

 プログラミング言語に関する宗教論争は、少し事情が異なります。というのも、彼らは技術的に高いレベルにある人であることが多く、また多くの人が何らかの意見を持っており、利害関係が非常に高くなるからです。その争いの結果、プロジェクトで使用する主要なプログラミング言語が決まってしまうかもしれません。

 一番いい方法は、プロジェクトの初期段階のうちに開発者間で言語を選択してしまうことです。そしていったん決めた開発言語については、「それがほかの言語より優れているから」という理由ではなく、「それがいちばん書き慣れているから」という理由で守っていくようにします。決して「プログラミング言語を学術的に比較する」といった方向に陥らないようにしましょう(なぜだかよく分かりませんが、誰かがPerlを持ち出したとたんにこの方向に話が進むことが多いようです)。この手の話題はまったく無駄なものであり、避けるべきです。

 この手の議論に関する歴史的な背景についてはholy-warsをご覧ください。また、ダニー・コーエンによるより簡単な解説がこちらにあります。

content on this article is licensed under a Creative Commons License.

注目のテーマ