ジンジャー研究室

長めのつぶやき。難しいことは書きません。

極端なことを言っている時、何を考えているのか

たまに極端なことを言ったりすることがある。

「ぶっちゃけ X って要らなくない?」
「それなら X しちゃえばいいんじゃないか」

そうしたら、ある日そこから議論が収集つかない方向にいってしまい、後になって「ああ、あれはそういう意図だったんですか。あんまり極端な物言いをされると拒否反応を起こすのでやめてください」のようなことを言われた。まあ会社なのでそこまで出鱈目なことは言っていなくて真面目に議論していたつもりだったのだが、なるほどそれで噛み合わなかったのかと妙に納得してしまった。

色々考えているうちに、自分がそういう極端なことを言っている時に何を考えているのか整理したくなった。

自分の中の常識や思い込みを壊したい

長い時間をかけて自分の中に培われた常識や思い込みを、時に疑ったり真逆の思考をしてみたくなることがある。

例えば、ずっと静的型付き言語でやってきたのにいきなり「型なんて要る?」とか言い出してみる。この時「いや普通に考えて要るだろ」という心の声をまず押し殺す。そして「わざわざ分かりきってることを書くの面倒なんだよな」とか「ノイズが少ない方がコード読みやすくね?」とか「スキーマを変えるときに書き直す箇所が極力少ない方がいいよね」とか「型の名前を書くためにいちいちライブラリを調べに行くのだるくね?」とか、そっち派の思考にどっぷり使ってみる。すると「全然ダメだと思ってたけど良いこと沢山あるじゃん」となる。そこで結論が出ればそこで終わり、動的型付けで行きましょうという話になる。が、そういうわけにも行かないので今度は反対意見を出してみる。「書いたり読んだりする時間が多少増えたところで、後でバグを追跡している時間の方が長いから全体としては大幅な短縮になる」とか「僕らは Matz みたいな天才じゃないのでしょうもないところで良く間違える」とか。で、何回か反論を繰り返していると最終的に「少なくとも自分にとっては数百行を超えるコードは静的型付き言語の方がメリットが大きい」みたいな結論になる。

こうして、あえて真逆の思考に乗ることで「意外とメリットも多くあった」ことが分かったし、自分が今の思想を持っている根拠も確認することもできた。全体として解像度も上がった。最初から自説を全く疑わなかった場合、得られるものは少ないと思う。ついでに言うと、相手の言い分を理解していた方が議論を進めやすい。「なるほど、あなたの言っていることはもっともです。しかし〜」と続ければ、相手は自分の主張が理解されたことにまず安心するし、続く議論も建設的なものになる。

この例では自説は最終的に曲がらなかったが、最終的に完全に否定されることもある。しかし、むしろその方が成長できるので良かったりする。「あの時はこんな風に考えてたな」と語ることに何も恥じることはない。価値観のアップデートは心地良いものだ。

「盲信している人」と思われたくない

思えば、自分の考えを疑う癖がついたのは新卒時のある先輩社員の影響を多分に受けている。

当時、その先輩が「コードは極力綺麗に書け」と口を酸っぱくして言っていた。ほとんど洗脳に近い状態になっており、研修後の仕事でそれを実践した。プロジェクトの進捗は思わしくなかったがコードは綺麗に書いていたので仕方ないかくらいに思っていたのだが、ついに先輩に「この調子だとコードを綺麗に書こうとする人にはプロジェクトを任せるなってことになるよ」と言われてしまった。その時、固く信じていた「コードは(いつでも・極力)綺麗に書くべき」はもっと早く疑うべきだったと反省した。

ところで、その職場では Java が使われていたのが、ある日 Ruby の話をしていた時に「いやいや型書かないとかw」みたいなことを口走ったら、先輩が動的型付け派の立場を借りて猛反論してきた。「僕は静的型付けの方が良いと思ってるけど、世の中には動的型付けの方が良いと言っている人も沢山いるし、現にそれで生産性を上げている例が沢山あるが、そこに対してはどう思うの?君は静的型付けのメリットを色々説明してくれたけど、それは本当にメリットと言えるの?」と、確かそんな感じで説教された気がする。

彼は自身の考えも疑っていた。「僕はどうしても今流行りの関数型言語のメリットがわからない。コードをいくらか読んだがカプセル化が破壊されていて酷いものだ。しかし流行っているからにはメリットがあるのだろうし、自分がその境地に至れていないだけかもしれない。だからどういうメリットがあるのか経験者の君に教えてほしい」と言ってきた。自分の理解できないものにも価値を見出そうという姿勢は見習うしかない。

これらの経験から、自分の考えをとことん疑ってみる癖がついたと思う。自分の言っているメリットは本当にメリットなのか、「なぜ」を繰り返して論拠を緻密に言語化することに労を割いている。逆に「盲信している人」は思慮が浅くかっこ悪いと思うようになったのかもしれない。だから Elm にどっぷり浸かりながら「関数型そんなに良い?」とか「オブジェクト指向いいよね」とか「普通は React じゃね?」とか「C++ いいじゃん」とか言ってしまう。「盲信している人」の宣伝は、推しの評価をかえって下げてしまう。選定された理由が説得力を持たないからだ。

「一理ある」をきっかけに議論を進めたい

話を戻す。極端なことを言っている時、相手にもゼロベースで考え直してもらうことを暗黙に期待していると思う。

(なんかこの人は変なことを言っているが、どういう意図なのか興味あるな。一見あり得ない発想だが、よく考えてみると言っていることは一理あるし、変に思うのは自分の前提が間違っているのかもしれないな。)

と、少々わざとらしいが受け手に期待する反応はこんな感じだ。そして

「それってどういう意味ですか?」

と聞いてくれたならば、「待ってました」とばかりに真意を説明するだろう。「一理ある」というのがポイントで、極端な意見には欠点が沢山あるので、そこを否定に来られても困る。こちらも完璧だとは思っていなくて、伝えたいのは「一理ある」の部分だけだ。言い回しを極端にしたのは、その一番言いたい一点をインパクト強めに伝えるためだ。 そこを汲み取ってもらえたのであれば、「じゃあ、その良い点を上手く活かすために欠点となっている課題を解決しましょう」という風に建設的に議論が進むはずだ。

しかし、このやり方は相手の受け取り方に大きく依存するため、諸刃の剣ではある。

(なんかこの人は変なことを言っているな。)

で終わってしまうと、そこで詰む。こちらの真意が伝わる前に相手が論破モードに入ってしまい「その意見は色々おかしいんですよ。いいですか。」と始まってしまう。こうなるともう何を言っても「いいえ、それはこういう点で穴があります」となり建設的な議論とは程遠くなってしまう。こちらの意図、つまり「打開策のアイデアを出すために、一旦常識的な考えを捨てました。もちろん穴があるので塞ぐ方法を一緒に考えてください」という意図が伝わらないといけない。素直にそう言えばいいという話ではあるが。

建設的なモードに入るか論破モードに入るかは相手との関係性にもよる。当たり前だが、信頼していない相手の言うことはおかしく聞こえる。「ストーリーポイントなぞ要らん」と言っているのが有名なアジャイルコーチだったら、一発で「なるほど」と思って聞くと思う。

定説を覆してマイノリティの賛同を得たい

世の中的には常識になっているが、自分にとってはしっくりこない言説があったとする。最初は「そんなものかな」と、騙されたと思って従ってみるが、だんだん違和感が隠しきれずストレスが溜まってくる。そのうちに

「有名な人が言ってるからみんな影響されてるだけじゃないの?」
「多数の二流・三流の声が大きいだけで、一流は全然違う考えを持ってるんじゃないの?」
「本当はみんな違和感を感じてるけど、空気を読んで言えないだけじゃないの?」

などと考え始めてしまう。 「マイクロサービスで生産性を上げよう」みたいなやつだ。しばらく経ってから「やっぱり基本はモノリス」の波が来たが、最初は誰も否定できる空気ではなかったと思う。

とは言え、何者でもない人が真っ向から反対しても勝ち目はないし、何より自分の立場が危うくなる。仕方がないので、なんとか適当なノリを醸し出しつつ本音を言ってみたりする。予想通りあまり賛同は得られないが、引っかかった人がたまにいいねを押してくれる。

無難な表現は面白くない

そして最後に、単純に面白い言い回しで興味を引きたいという話もある。

バランスの良い当たり前の意見を普通に言ってもあまり面白くない。ちょっとひねりが効いていたり、インパクトのある表現が必要だ。これが政治家だとちょっと皮肉の効いたギャグでも揚げ足を取られて大変なことになるが。インフルエンサーが放つ意外な言葉も面白い。こんまりが片付けを諦めたと言えば、それだけでもう面白い。

とまあ、大体こんな感じで考えていることは整理できたかな。