彼はチームの意見を聞くことを拒否し、最近、コードレビュー、ユニットテスト、実装の詳細の共有を停止しました...
コードレビューでは、必ずしもコーダーがレビューのために作品を提出する必要はありません。
彼がしていることを追跡する簡単な方法は、VCSの履歴を監視して、チェックインを探すことです。彼のコードが心配なら、これを見つける簡単な方法です。diffの履歴を取得し、彼が何を入れたかを見て、赤旗が飛び出すかどうかを確認します。彼のチェックインを十分な速さでキャッチし、問題が見つかった場合は、コミットをロールバックしてその旨をメールで送信できます。明らかに間違っていることがわかった場合は、ジュニアコーダーであっても、仲間のチームメンバーを呼び出すことができます。
はい、彼は高速に「コーディング」しますが、彼のコードは単なるバグ生成プログラムです。他のチームメンバーと私は「バグ修正フェーズ」にあり、バグの80%は彼のコードに起因しています。私は彼のバグを修正したくありません。そして、経営陣は盲目であるか、これを見たくないか、多分彼らは彼の「スピード」を好む。
コードは要件に基づいています。要件は、要件が満たされていることを検証する実行可能なテストになります。これらのテストはさらに細分化することができ、変更が要件を満たしていることを確認するために、変更が行われる前に記述することができます(赤緑リファクタリング、TDDの本質)。
「コードカバレッジ」メトリックをチームのビルドサーバーに追加します(できれば、それがあればいいのですが、そうでなければ、それが最初の問題です)。単体テストの合格を確認するだけでは、単体テストのない領域で作成された彼の新しい非TDDコードの問題をキャッチできません。すべての単体テストを実行した後、ビルドサーバーは理想的にはすべてのコード行を実行する必要がありますが、実際には単体テストではできないことがいくつかあります。現実的には、95%以上のカバレッジを期待できます(または特定のライブラリまたはファイルの種類をカバレッジから除外します)。遅かれ早かれ、カウボーイはカバレッジレベルをしきい値以下に落としたため、ビルドを壊す何かをチェックインし、あなたは彼を呼び出します。
また、「速度」に関する限り、速度とは、物事を「完了」させる速度のことであり、正しく完了するまで「完了」しません。この方法でマネージャーにそれを置くことができます。ある自動車整備士が、マネージャーがBMWをオイル交換のために持って行ったときに、オイルパンプラグを元の位置に戻すのを忘れ、その結果、ガレージから出て行く前に新しいオイルがすべて流出します。もちろん、オイル交換には5分しかかかりませんでしたが、マネージャーは車のエンジンが家に帰る際に気にすることはありません。彼はメカニックがステップを逃したことを気にします。それは彼が修正するために多くの追加の時間とお金を費やすことになります。今、彼は本当に速く仕事をするためにカウボーイを1人払っている。sチームの残りのメンバーに非常に大きな金額を支払い、仕事を正しくやり直します。カウボーイに自分のことをさせ続けることの利点は、本当に何ですか?
私(彼の上司ではなく、年齢の若い同僚として)がそれについて何かできる方法はありますか?
彼を呼び出します。あなたが彼が台無しにしたものを見つけたら、彼が彼のコードがどのように失敗したか、彼がそもそも問題をどのように防ぐことができたか(適切な設計、TDD、コードレビューを含む)とあなたが結果として何をするか、またはする必要があるかを彼に示す彼の壊れたコードを修正します。
私はこのプロジェクトを本当に気にかけている最後の人だと感じています。
クラクションが鳴り響き、ライトが点滅し、サイレンが泣き叫ぶ -チームが作成したコードの品質を気にかけているのが自分だけであると本当に感じている場合、深刻な問題があります。チーム全体を蹴って叫ぶことを優れたコーディングの時代に引きずり込んでいると感じ、それが重すぎて運搬できない場合は、ドロップします。会社に別のチームが適切に行っている場合は、異動を求めます。