日々常々

ふつうのプログラマがあたりまえにしたいこと。

「xxxした方がいい」は役に立たない

「xxxした方がいい」って意見は役に立たないなーと。その方がいいのは言うまでもなくて、かつ言うだけならタダなんで、責任もなく、行動にも結びつかない。これを上手く扱える人は別なんでしょうけど、少なくとも私が耳にした多くの「xxxした方がいい」は役に立っていない気がした。

なんで役に立たないか

言葉を埋めると簡単に想像できると思います。「勉強した方がいい」それはそうだ、もっともだ。「だから勉強しろよ!」これでもう役立たずです。
「xxxした方がいい」って言葉が発せられる状態って、動作の主体が発した人じゃな場合が多いんですよね。だから他の条件を完全に同一にして、それをするかしないかで純粋に判断できる。例えば勉強なら、それにかかる時間と言ったコストや、それによって切り捨てられること、それらが存在しない状態で比較されてしまうわけです。そんなあり得ない状況での「した方がいいか」の問いへの答えは意味がありません。
何かをする時に、それにかかるコストを本来最も知っているのは行動の主体です。作る人自身に見積もらせろってのは良く言われる話ですね。慣れてないと大外ししますが、それでも作らない人に聞くよりは具体的なリスクが見えているはずでして。この辺の話は色んな本に書かれてますので省略。
「xxxした方がいい」なんて言葉が使われる時、多くの場合、他の条件を無視すればいいのは明らかで、重要なのはその先のトレードオフを判断することです。こんなの言うまでもないですね。なのにそれを全く考慮せず「したほうがいい」なんて言葉が出てくる。

取り扱い注意

例えば社内で勉強会をした方がいいと思ったとします。で、なんとか上司を説得しにいくわけですよ。「勉強会とかした方がいいですよね」「技術力高い方がいいですよね」って。これに同意しないってのはまずないわけです。いいに決まってるから。話のきっかけとしては上々にも思えます。
それで「さあやろう!」って流れになるかもしれません。ノリノリに。でも、そのまま進むと簡単に詰みます。比較的簡単に挙げられますが、問題は二点。

  • コストが考えられていない
  • ゴールが合意できていない
コストの話

一つ目のコストは先に挙げた通りです。妄想の中で「やった方がいいこと」と「実際やる価値があると判断できること」は別です。勉強会をするにしても、それのために業務の時間を削るかは別の問題です。業務の時間を削ってまで定期的に勉強会をする、なんて判断はあまりされないように思えます。それの良し悪しは判断した結果だからいいのですが。
結局の所、ダメージを負う気もない「やった方がいい」なんて言うのは本気でない事が多く、簡単に蔑ろにされます。言われた方は本気で取り組むことで合意できていると思うかもしれませんが、そこに何かしらのコミットがないと、梯子はいつの間にか外されているものです。コストも考えた上で「良い」としているのか、は最初に詰めておく必要がある事だと思います。

ゴールの話

二つ目のゴールもまた大きな問題で。「xxxした方がいい」だと終了条件がないんですよね。やったら終わりってことではない事も多くありまして。また具体例として「あの本は読んだ方がいい」を挙げましょう。本を読む。つまり読んだら終わり……なんでしょうか?違いますよね。本を読むと言っても、読み方は人それぞれ、表面をなぞるだけでもそれなりに価値はあるかもしれませんが、それで終わりにされるのが意図通りなんでしょうか。自分が読み込んだ本の内容を前提に、読んだと言う人と話した時、隔たりがある事を感じた事はないでしょうか。全然読んでないじゃん、と言いたくなる事もあるかもしれません。私は「読んでないじゃん」と思われてる方な気もしますが。
とにかく「本を読んだ方がいい」に対して「読んだ」と言う事が出来ないんです。こんな事では言っても言われてもどちらにとっても意味なんてないんじゃないか、と。雑談ならいいんでしょうけどね。

まとめ

「xxxした方がいい」なんて役に立たない。少なくとも、単体では。別の何かと組み合わせれば、あるいは。