私は最近、多くのコードレビューを行っていますが、コードレビューにポジティブなコメントや面白いコメントを入れることによるプラスとマイナスの効果、および専門性について確信が持てません。
私たちのチームでは、コードレビュープラットフォームとしてGithubを使用しているため、コメントはだれでも見ることができます。私は通常、このプラットフォームを使用して、最初から最後までのプロセス全体が表示され、歴史的なものになるようにします。
ポジティブとネガティブを強調することが重要です。特定の地獄のようなサブシステムのリファクタリングをきちんとクリーンなものにレビューしているのなら、おそらくプログラマーに彼の努力のためのピザを買うでしょう。
レビューをトレーニングとして使用している場合、それは二重に重要です。良いコードをハイライトすることは、ジュニアプログラマーがそのコードをレビューするのにも役立ちます。特定のアプローチや手法が他の手法よりも優れている理由について質問する機会があります。
面白い:最小限の用量を除いて、ウォータークーラーのために保存します。プルーンフェイスを使用することは、コードをレビューするための要件ではありません。
Positive:確かに。レビューには、定義上、ポジティブとネガティブ/建設的なものの両方が含まれます。
肯定的なフィードバックは誰にとっても役立ちます:
高い評価を受けている人にとっては、あなたは彼らの自信を強化し、あなたの前向きなフィードバックを通して彼らに同じことをもっとやる気を起こさせます。
残りについては、他の人が述べたように、彼らはすべきことだけでなくすべきでないことも学びます。また、Excelへの参加も奨励されるため、いつの日か注目を集めることができます。
私はかつて彼の前向きなフィードバックに寛大な上司のために働いていました-結果としてチームは非常に成功し、生産的でした。彼は先へ進み、他の人たちが引き継いで、よくできた仕事を賞賛する彼の能力が欠けていました。生産性と士気が急上昇し、優れたチームメンバーの多くが退職しました。
文化のせいで、コメントは簡潔かつ的確にとどめておきましょう。
一部の人々が物事を間違った方法で行うことを避けることはできません。
それを軽減するために、個人的な1対1の会話は、面と向かって、チャット、電子メール、またはスカイプが不可能な場合、スムーズに進行します。
管理のツールとしてコメントを扱う
コードレビューにコメントを挿入することは、管理の一形態です。そのため、管理ツールとしてアプローチする必要があります。
コメントするときに管理慣行を使用します
目標が望ましい結果を達成することである場合、人々を管理するための構造があります。管理への主なアプローチのいくつかはコメントには適用されませんが、ほとんどは適用されます。該当するトピックには、環境、リーダーシップ、組織化、および制御が含まれます。
環境
文化
管理のスタイルは環境によって決まります。管理のツールを使用するときは、職場の文化と環境に留意する必要があります。通常、これは業界と、管理されている会社またはエンティティのサイズの影響を受けます。
スタイル
気楽な文化があれば、それは経営のやり方に出くわすかもしれません。非常に厳しいガイドライン、ポリシー、および結果がある場合は、それを使用するスタイルに反映する必要があります。だから、誰もがドロイドを参照するスターウォーズのジョークと気の弱いストームトルーパーに乗っているなら、喜劇の投射が適用されるかもしれません。ただし、最終結果を真剣に受け取らないという悲惨な結果がある場合は、回避する必要があります。
リーダーシップ
Fundamentals
コメントする際に考慮すべきリーダーシップの3つの主要な柱があります。つまり、ビジョン、コミュニケーション、そして判断力です。
Vision
説明や指示を行う際に、グランドビジョンを念頭に置くことが重要です。コメントでは、これは小さな変更がプロジェクト全体にどのように影響するか、さまざまなアプローチを取ることの意味、または懸念の分離への秘訣を指摘することを意味する可能性があります。
Communication
優れたコミュニケーターであることは、人生の多くの面で重要です。コメントも同じです。賢明なレベルの簡潔さを採用することは重要です-特にコメントはそれほど多くのスペースを取るべきではないためです。要点を早期に把握し、必要に応じて例を付けてバックアップします。大規模な組織では、問題が1つのレビューセッションに限定されていない場合、コミュニケまたはメモを送信する必要がある場合もあります。
Judgement
コメントを行う必要があるかどうか、およびどのような変更が必要かを判断するときは、戦略を使用することが重要です。あなたの判断は常に正確である必要はありませんが、特に大きな判断の呼び出しが行われる場合、それは一貫して正しい必要があります。
整理
管理の観点から見ると、組織化とは、最終目標を念頭に置き、一連のルールに従ってプロセスを調整することを意味します。コメントは、設計のフローが確実に実行されるように、可能な場合は相互に構築する必要があるという点でも、このことを覚えておく必要があります。結合を減らし、全体的な設計に従うために、レビューされるコードの範囲を覚えておくことも重要です。
管理
管理対象のアクションの制御は、デリケートなプロセスです。しっかりしている一方で、人々が重要であることも心に留めておく必要があります。他の人をコントロールするときに使用する管理スキルがいくつかあります。これらのスキルは、政治的、概念的、対人的、診断的、および技術的です。
政治
政治は人々の間の相互作用があるときはいつでも見つけることができます。それは大きなトピックですが、一般的に政治は影響力を中心に展開します。コメントするときは、職場での個人的および専門的な政治に留意することが重要です。これは、指示、冗談、または質問に関連している可能性があります。
概念
概念化による管理は重要なツールです。目の前にある状況の複雑な分析が必要です。コメントするとき、レビューで示された結論または変更を思い付くために使用された分析の一部を含めることは有益です。
対人関係
対人スキルは、管理する際に非常に重要です。これも大きな話題です。対人関係のスキルで考慮すべき重要なことのいくつかは、メンタリング、建設的な批評、そして「うんざり」です。
Mentoring
経営陣は敵対者としてよりもメンターとして見られることが重要です。コードレビューでは、これは、状況を改善するために使用できる設計パターンまたはアプローチにうなずくことを含めると有益な場合があることを意味します。
Constructive Criticism
批判は反省を招くため重要です。しかし、批判は可能な限り前向きにしておくべきです。これは、批判を裏付ける有効な証拠を提供すること、および使用される口調が否定的でないことを確実にすることも意味します。コードを確認する際には、コード全体を置き換える必要がある場合に正しくない場所をすべて表示するのではなく、ソリューションを示唆しながらエラーを生成する例外または考えられるシナリオを表示することを含めることができます。
"Harpooning"
「ハープニング」とは、誰かを比喩的に地面に引き寄せるときです。これは、彼らが立ち上がることができないと感じる点まで、何の猶予もなく、段階的にそれらを分解することによって行われます。コードレビューや他の場所で人を銛で刺すと、彼らの協力を失うでしょう。誰かを過度に破壊しないようにすることが重要です。
エグゼクティブサマリー
コードレビューのコメントを管理ツールとして扱います。コメントは簡潔で、要点があり、建設的でなければならないことに注意してください。また、コメントしている間、レビュー対象の人物が考慮されることを確認してください。
コードレビューは、一部は欠陥を明らかにすることにより、コード品質を改善するためのツールです。さらに重要なことは、優れたコーディング手法を浸透させることです。
この観点から、うまくいったことについてコメントすることが重要です。トレーニングのコンテキストでは、改善についてもコメントする必要があります。文化が継続的な改善の1つである場合は、常に改善についてコメントする必要があります。
間違い、バグ、不適切なコーディングが発生します。非個人的な方法でそれらを指摘し、期待どおりに扱います。
行動修正の観点からは、報酬は罰よりも変化を生み出す方がはるかに優れています。報酬として注目された良い仕事を検討したいと思います。