明らかに、経営者がコードレビューに時間を費やすことに投資する場合、誰もがそれをしなければなりません。
しかし、常に彼らの存在のあらゆるオンスに抵抗するそれらの人(またはギャル)がいます。
査読者としてこのシナリオを扱うとき、どのようにこのシナリオを効果的に管理しますか?
明らかに、経営者がコードレビューに時間を費やすことに投資する場合、誰もがそれをしなければなりません。
しかし、常に彼らの存在のあらゆるオンスに抵抗するそれらの人(またはギャル)がいます。
査読者としてこのシナリオを扱うとき、どのようにこのシナリオを効果的に管理しますか?
回答:
彼は恐怖のため抵抗します。このコンディショニングは、子供として、学校で、職場で、またはあなたの現在のチームでさえ、レビューされることに関する以前の悪い経験の結果かもしれません。現代社会では、人の仕事の成果と人間としての価値を混同することは非常に一般的です。職場でのレビューがよく理解されていない理由。それはまた、最も広まった恐怖症の1つで公の場で話す(判断の恐怖)理由でもあります。
このような動作を回避するには、心理学が必要になります。あなたはトカゲの脳にそれが起こらないことを証明しなければなりません(彼はコードレビューに対して鈍感になり、彼は裁かれたり、屈辱を与えられたり、殺されたりしません...)。
誰かのブロックを解除するために見つけた最も効果的な方法の1つは、コードを確認する前に、コードの確認を依頼することです。
しばらくして、彼からコードを読んでそれから学ぶよう提案し、なぜ改善を提案しないのかを提案します。変更するものを見つけたら、書く内容に注意してください。彼は恐れることは何もないことを理解し、レビュープロセスの肯定的な部分のみを学びます。知識を学び、増やすことです。
私はペアで作業してみます-アイデアを嫌う人とそれを好きな人をチームにし、彼らに数週間お互いのコードをレビューしてもらいます。明らかにこれは助けになるかもしれないし、助けにはならないかもしれないが、レビューの両端にあることは、少なくともプロセスのより概観的な見方を与えるだろう。ペアを組み合わせることで、お互いのスタイルやよくある間違いに慣れることができ、ゴム印よりも実際にお互いが良くなるのに時間をかけることができます。これは、作業環境でペアプログラミングを促進するのにも役立ちます。レビューするだけでなく、再コーディングするか、最初から計画してコードを作成する傾向が高まっていると思うからです。
利害関係のない当事者が試してみることをいとわない限り、これは役立つ可能性があります。彼らがそれを考慮することを拒否した場合、彼らがチームにいる限り、あなたがそれについてできることはあまりありません。
@Pierreの答えは、コードレビューを恐れる人にとっては順調です。別の状況が想像できます。コードレビューを感じているスタープログラマーは、コードが品質と正確さの許容可能な標準に達するため、時間の無駄です。この場合、彼らはコードレビューが時間の浪費であり魔女狩りだと感じるかもしれません。(これは、問題が存在しない場合の問題の検索です。)
この場合、レビューの目標の方向を変えます。コード内の「問題」を見つけることに関するコードレビューの代わりに、リファクタリングターゲットまたは潜在的な将来の拡張機能、または追加の設計機能の検索として扱います。このように、コーダーとレビュアーの両方がプロセスに関与しており、この有能なコーダーが時間を有効に活用しているように感じることを願っています。
率直に言って、よく管理されたショップがある場合、この質問は意味をなしません。
1)それが仕事の一部であるならば、あなたはそれをしなければなりません、またはあなたは従属しています。義務付けられている仕事の一部を断固として拒否する人は、缶詰にされるべきです。プログラミングは技術であり、職業です。レビュアーとマネージャーは、(どんな年齢の)甘やかされた子供に対処するのではなく、仕事を成し遂げるためにそこにいます。
2)適切に管理されたソース管理システムがある場合(プロのソフトウェアショップでは必須)、コードが好きかどうかに関係なくコードを確認できます。コードを確認してください:
それが良ければ、彼らに通知し、彼らにパットを与えてください-それは参加を奨励します。
それが良くない場合は、彼らにも知らせてください。これは、彼ら自身を守るために、彼らが参加するように動機づけする効果を持つべきです。そうでない場合は、罰則を使用することができます:罰金、ステータスの降格など。この従業員が出向かなくても、IMOには悪い従業員がいるので、ドアを見せてください。
コードレビューが適切に行われなかった場所で、彼らは否定的な経験をしましたか?彼らには正当な懸念があるかもしれません。
エクササイズのメリットがまったく見当たらない場合は、辛抱強く、結果として自分のコード、特に他のコード(完璧だと思う場合)に何が起こるかを確認してもらいます。
コードレビューは開発を「改善」する必要がありますが、実際に動作するシステムができるまで、なぜ誰もがそれをしたいのでしょうか?
私は個人的には、人口の100%だけでは勝てない戦いがいくつかあると思っています。
誰かに強制されたときにペアプログラミングが機能しない理由は十分にわかります。
しかし、コードレビューは異なります-必ずしもあなたの仕事の習慣ではなく、あなたの生産性を変えます。
管理者は、生産性による抵抗を減らすためにいくつかのことを行うことができます。1)すべての開発者が速度の低下を受け入れる。2)レビューサイクルによる複数バージョンの管理とマージに対処する適切なツールを提供する(たとえば、開発者がローカルgitリポジトリを持つことができるようにする)レビューの。
彼らがそうするならば、私見、誰もが参加することを要求することは合法です。私が現在働いている会社は、これをグローバルに推進しています。所有者の承認なしに提出することはできません。そして、これは物事を遅くしますが、それは多くの事故を防ぎます。
それらを発射します
それはとても簡単です-孤独なプロジェクトを取得するか、行かなければなりません。彼らをあなたのチームから遠ざけてください。彼らは自分の役割を果たさないだけでなく、チームの士気と実践を侵食します。
チームの50%を解雇する必要があると思われる場合は、...
わかる
なぜ拒否するのですか?彼らには時間がありませんか?彼らは燃え尽きていますか?経験のないものについてのレビューはありますか?彼らはそれが時間の無駄だと思っていますか?
ここでアジャイル方法論が役立ちます-サイロに絶えず取り組んでいる(つまり、バスファクターを減らす)ことを想定しており、チームの個人が他の作業に関与していると仮定しています。
個々のマージリクエストが非常に小さくなるようにします。1画面以上の変更がある場合は、何が行われているのかを説明するために、スタンドアップまたは稲妻の話が必要です。10ページの場合、スライドとアーキテクチャ図を含むプレゼンテーションが必要です。
問題の全員が同じプロジェクトで働いていますか?
プロジェクトはすでに技術的負債の山の下に埋まっていますか?
彼らはプロジェクトと継続的な改善を信じていますか?