はじめに
最初に言っておきますが、とくにスカっと結論が出るような話ではないです。
昨日ふと「行為の否定」を「人格の否定」と捉える人がどれだけの割合でいるのか、人格の否定ととらえた場合はどういう感情が湧くのだろうか、ということに興味があってtwitterでアンケートを取ってみました。
わたしはソフトウェア開発に携わっていて、かつ、フォロワーも同業が多いだろうということで、コードレビュー*1を題材にしました。
コードレビューで「このコードはこういう理由で駄目です」と言われたらどう思うか。ここで理由は妥当なもの(仕様を守っていないなど)であり、かつ、口調や優しくも厳しくもないニュートラルなものとする。わたしは「感情に変化は無い」かな
— sat (@satoru_takeuchi) 2019年3月20日
「50-60人くらい答えてくれたら面白いな~」と思っていたのですが、最終的には3705人もの人から回答がありました。
設問文面については次のように考えて作りました。
- いずれかの項目に誘導するような書き方にはしない
- 「人格の否定」ではなく「行為(コーディング)の否定」であることを表すために「このコードは~駄目です」という書き方にした
- 行為の否定は根拠があるものだということを表すために「このコードは"こういう理由で"駄目です」、および、「理由は妥当なもの」という書き方にした
- 怒りや呆れなどのネガティブな感情を(少なくとも見た目上は)込めていないという意味で「口調は優しくも厳しくもないニュートラルなものとする」という書き方にした
単にデータだけを見ると「へぇ、なるほどね?」くらいで終わりです。ところが今回は、それ以外のところで考えさせられることがあったので本エントリを書きました。
何が起きたか
「自分はこう解釈した、こういう例があった」と返信ないし引用RTによって教えてくれたかたが非常に多かったです。わたしはtwitterのアンケート機能が好きでよく使うのですが、いつもは回答数の多寡によらず、こんなことはないです。
これら個々人の解釈が面白かったので列挙します。
- 誤りを指摘してくれて感謝
- フィードバックがあるだけでありがたい
- 「やってしまった」と思って落ち込む、ないし自分に腹が立つ
- 知見が増えるのでうれしい
- 人格否定ではなくコードの否定であり、かつ、理由も納得できるので問題ない
- 人格否定ではなくコードの否定なのはわかるが、「駄目です」という言い回しが嫌
- 仕様を理解させてからコーディングさせてほしい
- お金もらってるからしょうがない
- 文面だと表現がキツく見えるので表現に気を付けてほしい # 例として絵文字をつける、などが挙がった
- 対案を出してほしい
- 何が妥当かによる
- 「自分ならばこうする」「こうしたほうがいい」などと表現をやわらかくする
- 誰に言われるかによる
- レビューアのことを厄介者だと思う
- レビューアのことを凄いと思う
これらの多様はもちろん、設問を私の意図と異なる解釈をされていることが多々あったのも驚きました。
わたしの意見
せっかくなので、わたしの考えについても単に「感情に変化は無い」だけではなく、ある程度詳しく書いてみます。
感情に変化が無い理由は「レビューアが否定しているものは人格ではなくコードだから」です。
言い回しについては次のようなことを思います。
- 何かあればどんどん指摘してほしい。なぜならレビューの目的はコードをよいものにすることであって、それ以上でもそれ以下でもない
- 本来言いたいことが伝わらないほどオブラートに包んだ言い回しは、意図を確認し直す手間がかかるだけなのでやめてほしい。例えば「わたしはこうしたいが…」が実質的に「こうしろ」を意味するなど
- 言葉を荒げたりするのはレビューに何の寄与もしないし萎縮するのでやめてほしい
こういうことをされたら絶対に嫌だと思うことは次の通り。
- 人格否定
- 好みの問題なのに駄目と断言したり自分のやりかたにしろと命令してくる
- 状況によって言ってること、および発言時の感情表現がバラバラ
その一方で、レビューをする側に立ったときには次のようなことを意識しています。
- コードが仕様に従っていないなど、明らかに誤っている場合は「それはこれこれの理由によって間違っている」と言う
- 好みの問題なら「そうした理由は何ですか。わたしはこれがいいとおもう」という。わたしの言うとおりにしてほしいのではなく「どっちがいいか一緒に決めましょう」という意味
- 意図がわからなった場合は「これはどういう意味ですか」と聞く。責めているのではなく単なる確認
なるべく「否定しているのはあなたではなくコード」という意図がわかるようにソフトに言おうとはしますが、実際にできているかは不明です。
おわりに
今回の結果を受けて、わたしは次のようなことを思いました。
- (表題の通り)言葉をどう受け取るかは人それぞれ、かつ、多様
- どれも合ってるとか間違っているとかいうことはなくて、その人が事実そう感じるだけ
- 全員が満足するレビューは難しい
最後のところを少し補足します。このようなときに「話し合って互いに幸せになれるやり方を見つけよう」という方法をとることもあります。しかしレビューをし合う人たちの「どうしても譲れない線」がぶつかり合っている場合の解決方法がわたしにはわかりません。たとえば次のような場合です。
- Aさんは「直してください」という命令型の指摘そのものが受け入れがたい
- Bさんは持って回った言い回しをするのが耐え難い
わたしとしては「どうしても譲れない線がぶつかった場合はどちらかが去るしかない、そのほうがお互い幸せなのでは」と思います。
なんかいい方法ないですかね。