レビューと心理的安全性
コードレビューや仕事のフィードバックをする際によく聞くフレーズがあります。
「コードと人格は別だから」「コードを批判してるだけで、あなたを批判してるわけじゃない」などです。
でも、本当にコードや仕事の成果物と人格は別物なのでしょうか?
プロ野球の珍プレー好プレーはある種の仕事の成果物ですが、プレーとその人の人格はある程度一緒くたに扱われます。
ホームラン王を取れば本人もファンも嬉しいし、エラーをすれば本人も凹みますしファンからも叱咤されます。
それを「プレーと人格は別だから」とは誰も言いません。
野球の話はさておき、コードを書くという行為は、その人の思考プロセス、価値観、時には美意識すら反映される創造活動です。
私はそもそもプログラミングはロジックではなくアートだと思っています。
デザインパターンのデザインは日本語で表現すると設計なのですから。
どのアルゴリズムを選び、どういう変数名をつけ、どんな構造で組み立てるか━━これらの判断には、その人のアイデンティティが深く刻み込まれています。
「このコードは違う」と言われることは、「あなたの思考プロセスはダメだ」と言われているのと同じです。
Git(Github)が開発のスタンダードとなった今、プルリクエストを元にレビューを行うのは、もはや当たり前の慣習になっています。(自分から進んで有識者にレビューを求める行為はこのエントリで言及するレビューとは別物と考えてください)
レビューを受ける方もする方も、レビューそのものを懐疑的に捉える人はあまりいないと思います。
しかし、実際にはレビューをすればするほど、それに比例して個人のアイデンティティが蝕まれている現実があるのです。
レビューによるコード改善のメリットと、レビューを受ける人間のメンタルに与えるダメージ、この両者を天秤にかけた時、果たしてメリットの方が本当に大きいのでしょうか?
まず、レビューを行ったからといってコードが良い方向に改善されるという保証はありません。
むしろレビュワーの能力不足により、より悪くなったり、レビュー対象だけで評価すればそれで良いものでも、システム全体で見れば不適切であったり、その後のシステムの歴史の紡ぎ方によってはレガシーになってしまったりします。
逆に、レビューによる指摘は、人の気分を下げることはあっても、人の気分を上げることはありません。(良いコードは褒めようみたいな文化もあるらしいですが自分は見たことがありません)
返却されたテストの答案用紙のバツが人を気持ち良くすることがないのと同じように。
さらに、よりスマートに記述できるのを知りながらあえて冗長に記述するケースも状況によってはあり得ると思いますが、そういった場合に、レビュアーから冗長さを突っ込まれた時、その説明に心理的体力を奪われたりもします。(わざわざnitsを書いて相手の気分を害するぐらいならそもそも書かない方がマシだと思います)
最近、AIレビューも体験していますが、評価基準のコンテキストがコードにしかなく、コードにしかない上にさらにその一部しかないので、指摘内容と現実に存在する全てのコンテキストを考慮してレビューの内容を吟味する必要が発生し、それはそれで心労が発生します。
能力とやる気を天秤にかけた時に大事なのはやる気の方です。(もちろん仕事をこなすための最低限の能力は必要ですが)
能力については、AIの進化により人の能力に対する依存度は減っています。
かたや、やる気については能力に比べればどうでもいいだろ、と考える人もいるかもしれません。
しかし、できるよりやる方が大事だし、やる気の減衰は仕事のクオリティに影響します。
ちょっとした気持ちの入らなさの塵積がハインリッヒの法則の土台の土台を築き上げるのです。
そして個人のクオリティの減衰はコミュニケーション不全として別のメンバーのクオリティの減衰にも繋がっていきます。
以上のことから私は、むしろデメリットの方が深刻だと感じています。
そしてコードに限らず、あらゆる仕事のアウトプットには作り手のアイデンティティが宿っています。
企画書、デザイン、文章、プレゼン資料━━これらすべてが、その人の知識、経験、感性の結晶なのです。
そうであるならば、何かしらに対する意見の存在は、必然的に誰かしらのアイデンティティを脅かす結果に繋がるのです。
心理的安全性という概念がありますが、この現実を踏まえると、真の心理的安全性など存在しないのです。
誰に対しても忖度なく意見を表明できる状況は、みんなが自分のアイデンティティを否定する可能性を内包しているのです。
心理的安全性はそういった二律背反や矛盾を孕んでいます。
以前述べたように、言語化能力が高くなればなるほど、違いが明確になり、対立が生まれやすくなる現実があります。
細かい指摘をすればするほど、受け手との思想や価値観の違いが顕になり、コードとの心理的距離は縮みますが、その分人間の心は離れていきます。
レビューはみんなが思っているほど生産性があるわけではないし、心理的安全性もその実態は絵に描いた餅なのです。
何が言いたかったのかというと、脳死のレビューはピープルウェア(システムではなく人)にバグを潜ませるし、仕事において心理的な安全など存在せず、心理的な安全が欲しいのであれば組織などに属さず全ての仕事を自分一人でやり切るしかないのです。