私は常に、優れたリードの特徴の1つは、各開発サイクル中に必要に応じて追加のトレーニングを提供する人物であると感じていました。私にとって、それは自分でコーディングしたりコードをレビューしたりするだけでなく、より若い開発者たちと一緒にプログラミングを組み合わせて、私が踏んだような地雷を回避できるようにすることを意味します。
主に、私たちの主な目標が教育であるという幻想はありません-そうではありません。あなたがシニア、リード、ジュニアのいずれの開発者であっても、目標はあなたの啓発ではありません。目標は常に高品質のコードを顧客に提供することです。できれば、時間通りに、予算通りに、彼らがやりたいことをする。しかし、私がすべての作業を自分で完了することは不可能であることを認識しています。そのため、チームの成功を支援するすべての人を助けるためのリードとして私に責任があります。そして、それは、彼らが自然に現れるときに訓練の機会を認識することを意味します。
したがって、プルリクエストがジュニアのトレーニングの場所であるかどうかについてのあなたの質問に対して、私はこれらの間に教えられる瞬間が発生することは珍しくないと言わざるを得ません。ねえ、あなたはあなたの最初のマージ競合に対処する必要があるでしょう、レビューの後でそれを見てみましょう。ああ、DAOのユニットテストは含まれていません。これらの新しいメソッドをカバーする機会が見つかるまで、レビューを延期します。この財務計算でBigDecimalsよりもダブルプリミティブを使用する方が良いと思いましたか?ええ、それは本当に珍しいことではありません。
ですから、確かにそれは起こり得ると言いますが、それは明らかにプルリクエストの主な目的ではありません。また、プルリクエストのコードが本番環境に対応していることを期待しているとは思いません。多くの場合、そうではありません。
gitflowスタイルの分岐戦略で機能ブランチとリリースブランチを使用している場合、プルリクエストはリリース候補のようなものになります。生産準備はできていませんが、より近似的なものです。あなたはコードがコンパイルされていることを知っており(右)、ユーザーストーリーの目標を満たしていると適切に主張するのに十分なテストcovfefeを持っています。また、開発環境ですでにいくつかの統合テストを実行しているので、PRのレビュー中に変更をデモンストレーションするように求められたら、すぐに使えるデモがあります。
結局のところ、私たちはPRのレビュー中に支援を提供する必要があると感じていますが、その支援は一般的なコーディングに関するものではありません。代わりに、提案されたコードを運用品質のコードの作業ベースに含めるための準備に関連しています。PRは、開発者がPRに含めた各変更の正当化と確実な把握を実証する機会です。そして、それでも-単体テスト、デモ、および大量の質問でそれらを比較検討した後でも-提案された変更が本番環境で準備できているとはまだ予想されていません。
結局、コードは終わりです。しかし、それからQAにそれを拷問させます。