短い答え
自分でコードを修正する必要がありますか?
番号。
レビュープロセスに関するフィードバックを提供し、指示に従って修正を行わせる必要がありますか?
はい。指示ではなく、あなたの提案によると。指示は信頼できすぎます。
もしそうなら、どのようにこのフィードバックをするのですか、特定のテンプレート文書を記入して送信するのですか、それとも後でチェックできるコードファイル内の問題をマークするのに役立つソフトウェアがありますか?(私はVisual Studioを使用しています)。
ツールを使用してフィードバックを提供します。Visual Studioを使用できます。
ロングアンサー
以前はVisual Studioを使用していましたが、常に「他の開発者に「レビューを送れるようにあなたの作品を送ってくれませんか?」私はそれが好きではなかったし、それは本当にうまくいきませんでした。ここで、チェックインを見ることでレビューを開始できるため、レビューアシスタントを使用します。レビューのために私に仕事を送ってくる別の開発者に頼る必要はありません。また、アイテムを欠陥としてマークしたり、作成者が見たいアイテムをマークしたりするのにも役立ちます。レビューを開始すると、レビューボード上にそのまま残り、翻訳中に迷子にならないため、これはチームにとって有効です。これはVisual Studioと統合されています。前述したように、Visual Studioにもネイティブのレビュープロセスがありますが、制限があり、プロセスは自然ではありません。したがって、レビューアシスタントを使用します。
このツールは、前後のプロセス、ディスカッションなどにも役立ちます。
プロセスは、大体以下のとおりです。
私は何かをレビューし、それを作者(あなたの場合はジュニア開発者)に送ります。彼らは変更を加え、それを送り返します。変更を確認し、フィードバックを提供します。変更に問題がなければ、レビューを閉じます。それ以外の場合は、前後に行きます。時々、行き過ぎが多すぎる場合、私は彼らの机に向かって歩き、ホワイトボードを使用します-それは本当にプロセスを促進します。
コードレビューはデリケートな領域ですので、言葉遣いの選択には非常に注意してください。誰にも言わない
言葉遣いの選択が悪い
コードを確認しましたが、変更が必要な項目がいくつかあります。
私は代わりにこう言います:
言葉遣いのより良い選択
私はあなたのコードを見て、助けが必要です。私が送ったアイテムをレビューして、私の質問のいくつかを明確にすることができるかどうか見てください。
これにより、著者は次のことを考えるようになります。
- 彼らが守備モードにならないように助けが必要です。
- 彼らはレビュアーであり、私ではないようです。技術的に言えば、私は彼らに別の見方をしていくつかのことを変えるように頼んでいるので、彼らはある種のレビュアーのようなものです。
これらの単純な単語の選択は、私を非常に助けました。
ジュニア開発者を過小評価することはありません。私は一部のシニア開発者(10年以上の経験)と協力してきましたが、コードはジュニア生協学生よりも劣っていました。ですから、彼らが年長者や後輩だからといってそれほど重要ではありません。彼らの仕事は本当に長年の経験よりも雄弁です。
多くの場合、ジュニア開発者を励まし、レビューに参加させるために、レビュー用の何かを送信します。私はそれを以下のように言うかもしれません:
私が理解できないので、いくつかのコードをレビューしてください。
これは再び私を大いに助けます。これは、レビューを行うのは私だけではないことを明確に示しているためですが、レビューも行い、プロセスの一部でもあるためです。それは全体のアイデアが良い、きれいなコードを生成し、必要に応じて助けを求めることであることを示しています。レビュープロセスは文化なので、本当に取り組む必要があります。
今、一部の人々は、上記を行うと、ジュニア開発者があなたができないことをしただけで尊敬を失うことを心配するかもしれません。しかし、それは真実とはほど遠いです。助けを求めることは謙虚さを示しています。さらに、輝ける状況がたくさんあります。最後に、それがあなたの恐れであれば、自尊心の問題があります。最後に、多分私はそれを本当に知らないかもしれません。つまり、これらの開発者の中には、1か月前に勉強したばかりの新しいアルゴリズムを頭の中に持っている人がいることを意味します。
とにかく、ジュニアとレビューに戻ります。彼らがそれを理解し、私に返事を送るとき、あなたは彼らの顔の表情を見るべきです。「OK、変更を加えさせてください。問題がなければ、問題を解決してください。」
彼らは、私の作品を見て、「はい、あなたの変更は良いです。私は問題を解決しました」と言う力を持っていることをすごいと感じています。
コードを自分で修正することはありませんが、理由は次のとおりです。
- 著者はそこから学ぶことはありません。
- 「脇に置いて、それがどのように行われるかをお見せしましょう。私のコードはあなたのものよりも優れています。」
- なんで?これは私にとってより多くの仕事です。
しかし、著者を支援するために、コメントでアイデアとコードスニペットを提案します。私のレビューは、著者にコードを理解していないことを単に著者に尋ねる場合があることに注意してください。コードに問題はないかもしれません。変数名の変更、コメントの追加などが必要になる場合があります。したがって、その場合は何を変更すればよいのかわかりません。彼らだけがします。
レビューを続ければ、遅かれ早かれ、チームの各開発者の知識レベルについて本当に良いアイデアを持つことになります。これを知ることは本当に便利であり、あなたはそれを利用してそれを解き放つ必要があります。方法は次のとおりです。一部のコードを確認し、改善すべき明らかな領域を確認し、別の開発者もそれらをキャッチする可能性があることを知っている場合は、代わりにそれらを確認するようにします。「ねえ、改善できる分野がいくつかあります。詳細を確認して、著者にコメントを送っていただけますか?」これは、他の2人の開発者が互いに協力し合っているため、非常に効果的です。
いくつかの作業をレビューしていて、チーム全体が利益を得ることができることに気付いたら、仮想シナリオを作成し、会議で問題を説明します。シナリオを説明することから始めて、すべての人に問題を見つけられるか、問題を見つけて参加できるかどうかを尋ねます。みんなに質問してもらいましょう。最後に、より良いアプローチを提示します。他の誰かがより良いアプローチを持っている場合、私は彼らに感謝し、チームの前で彼らのアプローチがより良いことを認めます。これは、私が「私の道や高速道路」タイプの人格ではないことを示しています。さらに、私は決して誰かの作品を開いて会議で問題を指摘し始めることは決してありません。
レビューを行うとき、きれいなコードを探すだけでなく、コードが実行していることも探します。ビジネス要件が次の場合:従業員が会社に10年以上在籍している場合、5%増加します。それ以外の場合、2.5%。最初に確認するのは、実際にそれを行っているかどうかです。次に、クリーンで一貫性のあるパフォーマンスの高い方法で実行しているかどうかを確認します。
レビューを行う場合、フォローアップを必ず行ってください。そうしないと、誰もレビューを真剣に受け止めません。
私は数年前にレビューを行い、開発マネージャーとQAマネージャーを担当する人と仕事をしていましたが、両方のマネージャーはビジネスの経験があり、開発経験がほとんどありませんでした。彼は彼らを感動させるためにこれをしました。誰もそれを気に入りませんでした。
彼が他にしたことは、プログラミングスタイルを選ぶことであり、彼のスタイルが最高だと確信していました(「私のカンフーはあなたの猿のスタイルよりもはるかに優れています...」)。それは私にとって別の教訓でした。問題を解決する方法は常に複数あります。
番号付きの質問のいくつかに答えてください
1-自分でコードを修正する必要がありますか?
いいえ、上記の理由をご覧ください。
2-レビュープロセスに関するフィードバックを提供し、指示に従って修正を行わせる必要がありますか?
はい、わかりやすいが注意が必要な文章と口調を使用してみてください。できる限り明確にしてください。コードの問題点、改善方法を明記してください。単に変更するように依頼しないでください。しかし、理由を提供します。
このフィードバックを提供する方法、特定のテンプレート文書を記入して送信する、または後で確認できるコードファイル内の問題をマークするのに役立つソフトウェアがありますか?(私はVisual Studioを使用しています)。
私が言ったように、あなたは私が使用するツールまたは別のツールを使用できます。迷子になり、追跡するのが難しいため、電子メールや単語の文書を使用しないでください。
コードのレビューと修正が完了した後、過去にレビューしたコードの一部が変更されて時間が経過し、再レビュープロセスを実行するにはどうすればよいですか?すべてのコードをもう一度確認する必要がありますか?
私がやっていることのほとんどは、デルタをチェックすることです(変更のみ)。ただし、何も壊れておらず、アーキテクチャに従っていることを確認するには、全体像を念頭に置く必要があります。
最終的な考え
私は個人的に「コードレビュー」という言葉は貧弱な選択であり、それがどのように始まったのかわからないと思います。彼らははるかに優れた、権威のない言葉を選んだかもしれません。