以前参画したプロジェクトで、コードレビューが、ひたすら悪口を言う場に、なってしまった事がありました。
雑談的な感じで書いていこうと思います。
1. 作業要員よりも多い管理職
或るリモート案件を受けた時の事です。
その案件は、参画当初、zoomで、顔合わせをして、基本は、Slackでコミュニケーションを取りながら、作業を進めました。
プロジェクトのチーム構成
・プログラマー → 私 1人
・管理職(プロジェクトリーダー/PL) → 2人
私のポジションは、プログラマー。
同チームには、上司的ポジションで、管理職が2名いました。
管理職は、ディレクション的な事を行います。
必要なタスクを切り出して、プログラマーである私に依頼してくるような流れです。
参画した当初から、プログラマー1人に対して、管理職2人というチーム構成に違和感はありました。
ただ、プロジェクトを進めながら、その都度、確保したプログラマーを投入してきたのですが、どの御方も、長続きせず・・という塩梅でした。
結果として、プログラマーは私1人を、管理職2人が管理するという歪な構成が続きました。
ちなみに、この管理職2人は、いずれも、とてつもなく技術力が高いエンジニアである、というご紹介を受けていました。
私は、普通のエンジニアです。
そのご紹介を受けて、この管理職2人は、私よりも、圧倒的に技術力が高いのだろう、と漠然と想像しました。
初回の打ち合わせの際に、この管理職2人の内の1人が、
「我々は、単価が高いから、プログラマータスクでは、割りが合わないんだ」
と言っていました。
2. コードレビューが悪口ばかり
本プロジェクトの、私の作業の進め方は、githubのプルリクベースでの開発でした。
そして、コミット、プッシュしたソースを、管理職2人がかりで、コードレビューが行われました。
管理職の役割は、タスクの割り振りとコードレビューでした。
前述の通り、管理職は、かなり技術力が高いと伺っていましたが、正直、レビューを見る限り、そんな感じは受けませんでした。
指摘頂いた箇所を修正し、再度レビュー。
問題無ければ、developブランチにマージして、ステージング環境での動作確認を行い、最終的に、本番環境へのリリースまで持っていきます。
ここまでなら、何ら、問題はありません。
普通のコードレビューの風景に過ぎません。
問題はここからです。
開発が進み、何度も、コードレビューをしてもらうにつれて、この管理職2人が、豹変していきました。
「酷いソースだなあ・・」
「このロジック、意味が分からないんだけど・・」
段々と、汚い言葉が増えていきました。
そしてついに、コードレビューが、「バカだ」「阿呆だ」と、罵詈雑言の嵐になっていったのです。
この罵詈雑言が、次第に、先鋭化していって、この管理職2人、最終的に、レビューをしなくなりました。
理由は、我々がレビューするに値しないソースとの事。
これでは、仕事になりません。
言わせていただくと、
私は、そんなに、オカシナなソースを書いてはいないのです。
無論、ソースは、テストを十全と終えた後のバグの無い状態です。
インデントも適切に揃えられ、コメントも記述しています。
コーディング規約に沿って実装をしていますし、
「リーダブルコード」などのコーディングのルールブックを読み、気をつけながら開発をしています。
だから、よほどオカシナなソースになる事はないと自負しております。
それなのに、管理職は、難癖を付ける様に、レビューをしなくなってしまいました。
その訳は、恐らく、この管理職、レビューを通じて、相手を教える、罵倒する、ことで、相手よりも優位な立場に立つことに気持ちよくなってしまったのだと思います。
この管理職は、私を罵倒することで、快感を感じてしまっているのです。
こうなると、仕事でも何でもありません。
ひたすら、管理職が私を罵倒し続けるという理不尽に終始するのです。
だから、いくら私が、客観的に見ても正しい事を行い、この管理職が間違っていたことをしていたとしても、絶対に、この管理職は折れません。
むしろ、逆上して、罵詈雑言を浴びせかけてきます。
一度、コードレビューの際、この管理職が、間違った指摘をしたことがありました。
このミスは、私もすぐに気づいたので、一言、尋ねてみたら、管理職は、烈火の如くキレました。
コードレビューという名の、悪口の言い合いに、堕してしまいました。
ついには、仕事にならなくなってしまいました。
3. 管理職だけチーム
管理職の罵詈雑言や悪口の言い合いが治る兆しもなかったので、結局、私は、この現場を抜けることにしました。
プログラム開発要員は、私だけです。
引き止められるのかな、と少し思いましたが、そんな事はなく、最後も、ネガティブな悪口を浴びせられて、終わりました。
酷い現場でした。
辞めて、清々しました。
ふと思ったのが、この現場、プログラム開発要員の私が抜けて、残っているのが、管理職系の人たちだけなのです。
でも、この管理職たちは、技術力の高い人達と伺っていたので、恐らく、この人たちが、私が担っていたプログラム開発を引き継ぐのだろう、と勝手に解釈しました。
まあ、既に縁の切れている会社なので、どうでもいいと思っていまいた。
4. 次々と、作業要員が辞めていく・・
1ヶ月くらい経った頃です。
この会社から電話が掛かってきました。
小さい会社だったのですが、取締役の方から連絡が来ました。
何用ですかと尋ねると、また戻って来てプログラム開発をやってくれないか、と頼まれました。
どうやら、この会社、私が辞めた後、新たにプログラマーを募集して、5人くらい入ったらしいのですが、一週間も持たずに、全員辞めてしまったというのです。
なんとなく、事情は分かります。
ちなみに、管理職の方に、プログラム開発をやってもらったら如何ですか、と意見を出してみたら、
「管理職の彼らは、管理は出来るが、プログラム開発などの手を動かす仕事はできそうにない」
と言われてしまいました。
管理職の彼らは、この会社と、妙な繋がりがあるのかもしれませんが、
なんで、こういった無能と契約しているのだろう、と素朴に思いました。
そして、どうしても戻って来てほしい。管理職も戻って来てほしいと言われたので、当然、私は断りました。
5. まとめ
・「プログラマー1名(私)」「管理職2名」の現場で働いた。githubでプルリクベースの開発を進め、管理職2名が、私が書いたソースのレビューを担った。しかし、コードレビューが「バカ」「阿呆」という罵詈雑言を吐き出す場になってしまい、仕事にならなくなった
・なぜ、コードレビューで悪口を言うのか?それは、コードレビューを通じて、相手に教える、相手を罵倒する、ことで、自分が相手よりも優位な立場に立てることに気持ちよくなってしまっているからである
手を動かす人が、一番偉い。
私は、そう思います。