コードレビューのアイデアが嫌いな人にどう対処するか?


26

明らかに、経営者がコードレビューに時間を費やすことに投資する場合、誰もがそれをしなければなりません。

しかし、常に彼らの存在のあらゆるオンスに抵抗するそれらの人(またはギャル)がいます。

査読者としてこのシナリオを扱うとき、どのようにこのシナリオを効果的に管理しますか?


19
おそらく同じように、あなたは、などのドレスコード、適時性、病欠、などの他の項目との問題を取る人々に対処
ジョシュK

hehe ....誰もがやらなければならないことを管理について少し説明することで、それを修飾しようとしました。
オズ

3
正直に言って、黙らせてやるように言ってください。それは彼ら自身のためです。
スティーブンエバーズ

1
何に抵抗しますか?彼らのコードを見たり、あなたのコードを見ているように見せたりしますか?彼らは衝突を避けているかもしれません、彼らは衝突を期待できますか?彼らがなぜためらっているのか知っていますか?
マーティンマート

回答:


46

彼は恐怖のため抵抗します。このコンディショニングは、子供として、学校で、職場で、またはあなたの現在のチームでさえ、レビューされることに関する以前の悪い経験の結果かもしれません。現代社会では、人の仕事の成果と人間としての価値を混同することは非常に一般的です。職場でのレビューがよく理解されていない理由。それはまた、最も広まった恐怖症の1つで公の場で話す(判断の恐怖)理由でもあります。

このような動作を回避するには、心理学が必要になります。あなたはトカゲの脳にそれが起こらないことを証明しなければなりません(彼はコードレビューに対して鈍感になり、彼は裁かれたり、屈辱を与えられたり、殺されたりしません...)。

誰かのブロックを解除するために見つけた最も効果的な方法の1つは、コードを確認する前に、コードの確認依頼することです。

しばらくして、彼からコードを読んでそれから学ぶよう提案し、なぜ改善を提案しないのかを提案します。変更するものを見つけたら、書く内容に注意してください。彼は恐れることは何もないことを理解し、レビュープロセスの肯定的な部分のみを学びます。知識を学び、増やすことです。


3
それに不慣れな人々のために「トカゲの頭脳」のための定義を追加したいと思うかもしれない。
アダムリア

@Anna:定義にリンクを追加しました。

素晴らしい答えはピエール!最終回答の代わりに今のところ賛成。
オズ

1
@Aaron:私は質問で言及された「誰か」に言及していました。はい、私は私たちのほとんどのように、子供と大人の両方の生活の条件付けによる不合理な恐怖をまだ持っています。例:私は高値に対する不合理な恐怖を抱いています。できるときは自分の感覚を鈍らせています。先週末、要塞(フランス人とドイツ人の間の連続した戦争のために私の国で非常に一般的)を訪問し、路面電車に乗らなければなりませんでした。

1
いつものように素晴らしい答えはピエール。
ジョシュK

5

私はペアで作業してみます-アイデアを嫌う人とそれを好きな人をチームにし、彼らに数週間お互いのコードをレビューしてもらいます。明らかにこれは助けになるかもしれないし、助けにはならないかもしれないが、レビューの両端にあることは、少なくともプロセスのより概観的な見方を与えるだろう。ペアを組み合わせることで、お互いのスタイルやよくある間違いに慣れることができ、ゴム印よりも実際にお互いが良くなるのに時間をかけることができます。これは、作業環境でペアプログラミングを促進するのにも役立ちます。レビューするだけでなく、再コーディングするか、最初から計画してコードを作成する傾向が高まっていると思うからです。

利害関係のない当事者が試してみることをいとわない限り、これは役立つ可能性があります。彼らがそれを考慮することを拒否した場合、彼らがチームにいる限り、あなたがそれについてできることはあまりありません。


ペアプログラミングはまったく別のトピックですが、素晴らしい提案です!
オズ

-あなたのコメントは、私は別のQ始めて、私は、いくつかのより多くのPP程度を考えるようになったprogrammers.stackexchange.com/questions/39878/...の 感謝を!
オズ

4

@Pierreの答えは、コードレビューを恐れる人にとっては順調です。別の状況が想像できます。コードレビューを感じているスタープログラマーは、コードが品質と正確さの許容可能な標準に達するため、時間の無駄です。この場合、彼らはコードレビューが時間の浪費であり魔女狩りだと感じるかもしれません。(これは、問題が存在しない場合の問題の検索です。)

この場合、レビューの目標の方向を変えます。コード内の「問題」を見つけることに関するコードレビューの代わりに、リファクタリングターゲットまたは潜在的な将来の拡張機能、または追加の設計機能の検索として扱います。このように、コーダーとレビュアーの両方がプロセスに関与しており、この有能なコーダーが時間を有効に活用しているように感じることを願っています。


5
このタイプの人を使用すると、コードから多くのことを学ぶと思うので、コードをレビューすることに興奮していることを知らせることができます。コードレビューとは、コードの改善だけでなく、チームの他のメンバーを将来の開発に役立つより良いコードにさらすことです。
HLGEM

2

率直に言って、よく管理されたショップがある場合、この質問は意味をなしません。

1)それが仕事の一部であるならば、あなたはそれをしなければなりません、またはあなたは従属しています。義務付けられている仕事の一部を断固として拒否する人は、缶詰にされるべきです。プログラミングは技術であり、職業です。レビュアーとマネージャーは、(どんな年齢の)甘やかされた子供に対処するのではなく、仕事を成し遂げるためにそこにいます。

2)適切に管理されたソース管理システムがある場合(プロのソフトウェアショップでは必須)、コードが好きかどうかに関係なくコードを確認できます。コードを確認してください:

  • それが良ければ、彼らに通知し、彼らにパットを与えてください-それは参加を奨励します。

  • それが良くない場合は、彼らにも知らせてください。これは、彼ら自身を守るために、彼らが参加するように動機づけする効果を持つべきです。そうでない場合は、罰則を使用することができます:罰金、ステータスの降格など。この従業員が出向かなくても、IMOには悪い従業員がいるので、ドアを見せてください。


それは完全に絶望的なアドバイスです。あなたにとって本当に悪い職場環境の「店」を予見します。うわー!
コニャック

@cognacc-何も「予見」する必要はありません。私は非常に良好な職場環境がある25年間、グループで働いてきました。私たちはすべて大人であり、プロフェッショナルであり、仕事に対する説明責任を持つために必要なものを理解しています。
ベクトル

1
ベクターに同意する必要があります。それがプロセスの一部である場合、誰もがそれを行い、私は彼らがすぐに「噛まない」ことを見ると確信しています。もちろん、コードレビューのコメントで一部の人々が「失礼」になるリスクは常にありますが、対処する必要があるのはその人たちです。
MetalMikester

私はcognaccに同意します。戦略や解決策を示唆していないので、役に立たないアドバイスです。「彼らはしなければならないので、彼らはしなければならない」とだけ言っています。ああ。問題は、それらを好転させる方法のように、それらにどう対処するかです。人々に自分の意志に反して何かをやらせるだけでは問題は解決せず、新しい問題が発生する可能性があります。まず、抵抗の起源を理解する必要があります。
マーティンマート

あなたは私の発言がうまく管理され ていないこと、そしてそれに続くすべてを逃しました:それはあなたが大人を扱っていることを意味します。あなたは私の豊富な明確な答えを理解できませんでした。
ベクトル

1

コードレビューが適切に行われなかった場所で、彼らは否定的な経験をしましたか?彼らには正当な懸念があるかもしれません。

エクササイズのメリットがまったく見当たらない場合は、辛抱強く、結果として自分のコード、特に他のコード(完璧だと思う場合)に何が起こるかを確認してもらいます。

コードレビューは開発を「改善」する必要がありますが、実際に動作するシステムができるまで、なぜ誰もがそれをしたいのでしょうか?


ジェフに感謝します。プロセスが良くない場合、それは難しいでしょう、そして誰かの不合理な恐怖を回避することは難しい場合があります-一部の人々はちょうど変わりません!
オズ

1
しかし、実際に機能するシステムができるまで、なぜ誰もがそれをしたいのでしょうか? 私はこれで野生の刺しをさせてください:あなたがシステムが機能していない理由を理解できるようにそれをしますか?
ベクトル

1
@Vector-プログラマーがそれを動作させる方法を理解できない場合、彼らはより大きな問題を抱えている可能性があります。また、経営陣は何らかの責任を負い、品質コードを明確に定義する必要があると思います。リリースされるコードにあまり多くのバグがない場合、コードレビューを含めない正当な理由があるかもしれません。どんな種類の複雑なプロジェクトでも、高品質のコードレビューや、場合によっては開発時間とコストの不均衡なしに起こっていることを疑います。
ジェフ

@JeffO-わかりました。システムが実際に機能しない場合は、「コードレビュー」の問題ではなく、プログラマーの能力であるため、単純な「コードレビュー」は解決策ではありません。私はそれに同意します。
ベクトル

1

私は個人的には、人口の100%だけでは勝てない戦いがいくつかあると思っています。

誰かに強制されたときにペアプログラミングが機能しない理由は十分にわかります。

しかし、コードレビューは異なります-必ずしもあなたの仕事の習慣ではなく、あなたの生産性を変えます。

管理者は、生産性による抵抗を減らすためにいくつかのことを行うことができます。1)すべての開発者が速度の低下を受け入れる。2)レビューサイクルによる複数バージョンの管理とマージに対処する適切なツールを提供する(たとえば、開発者がローカルgitリポジトリを持つことができるようにする)レビューの。

彼らがそうするならば、私見、誰もが参加することを要求することは合法です。私が現在働いている会社は、これをグローバルに推進しています。所有者の承認なしに提出することはできません。そして、これは物事を遅くしますが、それは多くの事故を防ぎます。


ウリに完全に同意します...あなたが勝てない人がいるだけです。たぶん、彼らは自分のやり方で設定されている、怠け者である、彼らのやり方が正しいと思う、または単に気にしないでください!!
オズ

0

技術的な手段を使用して、コードレビューを必須にしました。

コードレビューを導入した方法は、ソース管理において、他の誰かがサインオフしていないコードをプッシュしたコードをマージすることは不可能だということです。


-1

それらを発射します

それはとても簡単です-孤独なプロジェクトを取得するか、行かなければなりません。彼らをあなたのチームから遠ざけてください。彼らは自分の役割を果たさないだけでなく、チームの士気と実践を侵食します。

チームの50%を解雇する必要があると思われる場合は、...

わかる

なぜ拒否するのですか?彼らには時間がありませんか?彼らは燃え尽きていますか?経験のないものについてのレビューはありますか?彼らはそれが時間の無駄だと思っていますか?

ここでアジャイル方法論が役立ちます-サイロに絶えず取り組んでいる(つまり、バスファクターを減らす)ことを想定しており、チームの個人が他の作業に関与していると仮定しています。

個々のマージリクエストが非常に小さくなるようにします。1画面以上の変更がある場合は、何が行われているのかを説明するために、スタンドアップまたは稲妻の話が必要です。10ページの場合、スライドとアーキテクチャ図を含むプレゼンテーションが必要です。

問題の全員が同じプロジェクトで働いていますか?

プロジェクトはすでに技術的負債の山の下に埋まっていますか?

彼らはプロジェクトと継続的な改善を信じていますか?


1
うーん......コードレビューがコストよりも多くの利点を提供すると信じないのは、自動的に人が自分の役割を果たさず、チームの士気を低下させないことを意味します。これは、主張を明確に支持する証拠がないことに基づいた、かなり大胆なスタンスです。
ダンク

@ダンク、あなたは反査読者ですか?そうすれば、あなたは私のチームにはいられなくなります。校閲者ですか?そうすれば、あなたは私の主張に対するサポートをすでに知っています。あなたは未定ですか?心に決めてください;-)
ディマ・ティスネク

私は反査読者ではありませんが、費用に対して何かが合理的な利益をもたらさない場合も認識しています。一部のプロジェクト/チームは公式のコードレビューを絶対に必要としますが、他のプロジェクト/チームは有益と思われる場合にのみそれらを行います。コードレビューが常に必要であるというあなたの仮定は、本当の利点と制限すら知らないことを教えてくれます。だからあなたは正しい。私はあなたのチームにはいません、それはあなたにとって大きな損失になるでしょう。
ダンク
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.