web-dev-qa-db-ja.com

ジュニア開発者にコードレビューへの参加を奨励する方法は?

私は現在、3人下のシニア開発者として働いており、本番環境に入るコードの品質を管理するのに役立つコードレビュープロセスを導入しています。

お互いの作業を確認することは私たち全員にとって非常に有益だと思いますが、プロセスの約5週間後、ツール(BitBucket)でコメントを書くのは私だけです。

職場には文化的な問題があり、コメントが間違っている場合は当然のことと思われますが、後輩が私と他の人の仕事をより快適に感じるのを助ける方法はありますか?

13
Graham S

私にとって、ここでの質問は、「コードレビューから抜け出すために、ジュニアデベロッパーに何を求めていますか?」です。私にとって、潜在的に最も重要なことは、ジュニア開発者にとって、うまくいけば良いコードを調べて学ぶことです。彼らがあなたのコードにも問題を見つけた場合、それはおまけです。

コードレビューから学ぶために後輩を探しているなら、あなたがしなければならない最も重要なことは、学習が評価され、時間の無駄と見なされない環境を作ることです。これは多くのことを意味します:

  • 愚かな質問などはありません。誰かが少しのコードを理解できない場合、なぜ特定のパターンなどを使用したのか、彼らはあなたや他の開発者の時間を浪費していると感じさせられることなく、気軽に尋ねる必要があります。
  • 学習に費やされた時間はよく費やされた時間です。ジュニアを希望する後輩の開発者は、コードを見て、それから学ぶことに時間を費やす必要があります。これは、将来的に、より優れた生産的なスタッフになるためです。 今すぐ確認する必要がある重要な修正でない限り、コードレビューにより多くの時間を費やすようにしてください。
  • 上級スタッフは常に正しいとは限りません。ずっとこれをやってきたからといって、あなたが正しいとは限りません。彼らがバグを見つけたと彼らが思うなら、彼らはおそらく正しいです。別のデザインパターンがこのコードのコードに適していると考える場合、否定的なフィードバックを得ることなく、気軽にそう言う必要があります。
15
Philip Kendall

毎週、決められた時間に、コードレビュー会議を直接開催してください。私はこれを次のようにチームメイトに売りました(私たちは実際には両方とも上級開発者ですが、何でも):

「コードレビューは、あなたのコードを少しよく理解し、いつかトラックに見舞われてスプリントを終了するように命じられた場合に、あなたの側で何が起こっているのかを知るために、部分的にあります。しかし、主にそれはあなたがコードを他の人に説明するためにそこにあなたがそれをするとき、それはあなたの脳の別の部分に従事し、しばしば彼らへのあなたの説明、および/または彼らの質問やコメントをあなたが忘れた何かを思い出させるかもしれないのでコードで行うか、コードを読みやすくしたり、設計したりするためのより良い方法を実現する可能性があります。これにより、コードがより美しくなります。」

私はそれを見本市として考えるのが好きです。人々は自分の仕事を仲間に自慢することができます。それはあなたの同僚があなたの仕事で何か間違ったことを見つけたということではありません。それはあなたの素晴らしいコードで仲間を感動させることです。

しかし、私はコードレビューツールを使用して、人間とのやり取りがなく、部屋での会議もホワイトボードもないことを考えます。そのようなツールがあるべきではないというわけではありませんが、コードレビュー会議中に、コードの特定のセクションのより詳細なレビューが必要になる場合があることに気づいたら、それらはあなたが頼るべきものであるべきです。次に、ジュニア開発者の1人を割り当てて、特定の領域で他の開発者のコ​​ードを確認します。

5
CommaToast

あなたは良い例を設定することによって助けることができます。誰かがあなたの過ちを指摘するとき、あなたは防御的になることができません。独自のコードでコードレビューを行い、改善点をメモします。これをチームと共有してください。結局、彼らはこれが奨励されて、誰も彼らのコードにバグを持っていることのために殴られるつもりはないことを知るでしょう。

仕事をするということは、自分の仕事に責任と誇りを持つことを意味します。コードレビューがその一部である場合は、コードレビューへの参加を評価に含める必要があります。私はオンラインディスカッションへの参加が成績の一部であるオンラインクラスを受講しました。コメントについて詳しく説明する必要があります。 「同意する」は認められません。

コードレビューはコードを改善するはずです。状況に応じて、内部で使用するコードを記述している場合、販売数、ユーザーの苦情、またはその他の評価によって評価される場合があります。実際には、コードが何らかの目的を果たしており、チームはその目的をどれだけうまく果たしているかによって評価されるべきです。あなたが決定したものは成功に貢献し、報酬で比例して共有するようになります。

高品質のコードのリリースに焦点を当てます。目標は、バグを避けて誰もが自分自身に満足することではありません。私は悪いコードを書いています。私は悪いコードを修正しなければなりません。それが仕事と人生です。バグの修正は嫌いなので、回避するようにしています。私は自分の仕事に誇りを持っているので、自分のコードが機能しないときは困ります。これらのことを指摘するために時間をかけなければならないユーザーや他の誰にとっても私は気分が悪く、それを修正したくなります。

補足として、誰も建設的な批判を与えたり受け入れたりすることができない環境がある場合、問題があります。

0
JeffO