カウボーイコーダーをどのように武装解除しますか?[閉まっている]


37

私は質問(チームのコードカウボーイ)を見つけましたが、それは私が抱えている問題よりも「Ninja Coder」に関連していました。

カウボーイコーダー」の純粋に生きた例であるチームメンバーがいます。人を変えることはできないことを理解していますが、彼が「カウボーイコーダー」のように振る舞うのをやめる方法ですか?

彼はチームの意見を聞くことを拒否し、最近、コードレビュー、ユニットテスト、実装の詳細の共有などを停止しました。

はい、彼は高速に「コーディング」しますが、彼のコードは単なるバグ生成プログラムです。他のチームメンバーと私は「バグ修正フェーズ」にあり、バグの80%は彼のコードに起因しています。私は彼のバグを修正したくありません。そして、経営陣は盲目であるか、これを見たくないか、多分彼らは彼の「スピード」を好む。

私(彼の上司ではなく、年齢の若い同僚として)がそれについて何かできる方法はありますか?

このカウボーイコーダーを武装解除するにはどうすればよいですか?

私はこのプロジェクトを本当に気にかけている最後の人だと感じています。


17
この男は自分のバグを修正する必要があります。すべての開発者がコードレビューを行う必要がないのはなぜですか?
プログラマー

8
誰の権限の下で、彼はコードレビューを停止しましたか?
オタビオデシオ12

14
だから...あなたはこのことを管理している人はいない。それはあなたの問題であり、カウボーイコーダーではありません。
オタビオデシオ12

3
その場合、スクラムは何のプロセスにも適していません。すべてが担当している場合、誰も担当しておらず、製品は傍観者の影響を受けます。
オタビオデシオ12

7
しかし、「クローズスレッド」カウボーイを武装解除するにはどうすればよいですか?
リグ

回答:


22

いくつかのオプションがあります:

  • 懸念事項についてコーダーにアプローチしてください。特定のポイントで建設的な批判として行われなければなりません。より大きな一歩を踏み出す前に、懸念を直接かつプライベートに提起して、その人に変化の機会を与えることが適切です。
  • 情報と統計を収集し、管理者に提供します。経営陣は気にかけないように見えるかもしれませんが、うまくいく場合にはとにかく努力をすることがしばしば重要です。考えられる否定的な結果には、経営陣への苦情を認めない他者の疎外が含まれます。
  • カウボーイコーダーの仲間を見つけて、プライベートで議論してください。彼/彼女は、その人に聞いてもらうより良いチャンスを持っているかもしれません。
  • 別のチームで作業するよう依頼してください。問題は解決しませんが、正気を保ちます。少なくともあなたの能力を最大限に発揮し、あなたを引きずり込まないでください。
  • 誰も聞かない場合は組織を離れます。悪い環境のようですね。

6

彼はチームの意見を聞くことを拒否し、最近、コードレビュー、ユニットテスト、実装の詳細の共有を停止しました...

コードレビューでは、必ずしもコーダーがレビューのために作品を提出する必要はありません。

彼がしていることを追跡する簡単な方法は、VCSの履歴を監視して、チェックインを探すことです。彼のコードが心配なら、これを見つける簡単な方法です。diffの履歴を取得し、彼が何を入れたかを見て、赤旗が飛び出すかどうかを確認します。彼のチェックインを十分な速さでキャッチし、問題が見つかった場合は、コミットをロールバックしてその旨をメールで送信できます。明らかに間違っていることがわかった場合は、ジュニアコーダーであっても、仲間のチームメンバーを呼び出すことができます。

はい、彼は高速に「コーディング」しますが、彼のコードは単なるバグ生成プログラムです。他のチームメンバーと私は「バグ修正フェーズ」にあり、バグの80%は彼のコードに起因しています。私は彼のバグを修正したくありません。そして、経営陣は盲目であるか、これを見たくないか、多分彼らは彼の「スピード」を好む。

コードは要件に基づいています。要件は、要件が満たされていることを検証する実行可能なテストになります。これらのテストはさらに細分化することができ、変更が要件を満たしていることを確認するために、変更が行われる前に記述することができます(赤緑リファクタリング、TDDの本質)。

「コードカバレッジ」メトリックをチームのビルドサーバーに追加します(できれば、それがあればいいのですが、そうでなければ、それが最初の問題です)。単体テストの合格を確認するだけでは、単体テストのない領域で作成された彼の新しい非TDDコードの問題をキャッチできません。すべての単体テストを実行した後、ビルドサーバーは理想的にはすべてのコード行を実行する必要がありますが、実際には単体テストではできないことがいくつかあります。現実的には、95%以上のカバレッジを期待できます(または特定のライブラリまたはファイルの種類をカバレッジから除外します)。遅かれ早かれ、カウボーイはカバレッジレベルをしきい値以下に落としたため、ビルドを壊す何かをチェックインし、あなたは彼を呼び出します。

また、「速度」に関する限り、速度とは、物事を「完了」させる速度のことであり、正しく完了するまで「完了」しません。この方法でマネージャーにそれを置くことができます。ある自動車整備士が、マネージャーがBMWをオイル交換のために持って行ったときに、オイルパンプラグを元の位置に戻すのを忘れ、その結果、ガレージから出て行く前に新しいオイルがすべて流出します。もちろん、オイル交換には5分しかかかりませんでしたが、マネージャーは車のエンジンが家に帰る際に気にすることはありません。彼はメカニックがステップを逃したことを気にします。それは彼が修正するために多くの追加の時間とお金を費やすことになります。今、彼は本当に速く仕事をするためにカウボーイを1人払っている。sチームの残りのメンバーに非常に大きな金額を支払い、仕事を正しくやり直します。カウボーイに自分のことをさせ続けることの利点は、本当に何ですか?

私(彼の上司ではなく、年齢の若い同僚として)がそれについて何かできる方法はありますか?

彼を呼び出します。あなたが彼が台無しにしたものを見つけたら、彼が彼のコードがどのように失敗したか、彼がそもそも問題をどのように防ぐことができたか(適切な設計、TDD、コードレビューを含む)とあなたが結果として何をするか、またはする必要があるかを彼に示す彼の壊れたコードを修正します。

私はこのプロジェクトを本当に気にかけている最後の人だと感じています。

クラクションが鳴り響き、ライトが点滅し、サイレンが泣き叫ぶ -チームが作成したコードの品質を気にかけているのが自分だけであると本当に感じている場合、深刻な問題があります。チーム全体を蹴って叫ぶことを優れたコーディングの時代に引きずり込んでいると感じ、それが重すぎて運搬できない場合は、ドロップします。会社に別のチームが適切に行っている場合は、異動を求めます。


5

この1人の開発者から寄せられたバグ/問題の数に関する統計情報を管理に移動します。バグを修正すると、チームの生産性に影響することを説明します。実際に問題の80%が1人の人から生じている場合は、間違いなく対処する必要があります。経営者に同意できる条件(つまり、「時間の浪費は金の浪費」)で説明する限り、彼らは介入します。

また、この開発者は独自のバグ/問題を修正する必要があるため、これらの問題を割り当てることが役立つ場合があります。あなたのチームはこの一人をカバーすべきではありません。


4

私(彼の上司ではなく、年齢の若い同僚として)がそれについて何かできる方法はありますか?

仲間からの圧力と例による指導が唯一の良い方法です。最良の方法は上司/リードによって行われます。あなたが彼らのボス/リードでない場合は、その人と話してください。しかし、最終的にはあなたの仕事ではなく、それを大事にするのが彼らの仕事です。あなたが良い仕事をしていて、物事がうまくいく傾向があることを確認してください。


1
カウボーイコーダーはプレッシャーから免れるかもしれません。経営者が彼の本当の影響を理解していない場合、彼の知覚された影響によって盲目にされるかもしれません。
mhoran_psprep

彼は管理の前に自分の間違いを非常によく主張できるので、大きなバグや問題は管理者には小さく見えますが、最後にはコードは台無しになります。そして、それは経営陣が気にしないことです。
アドロニウス

2
@mhoran_psprep-確かに。私は彼が成功することを期待していませんが、そうでなければ物事を修正しようとすることは、負の結果をもたらすことに関してより危険であると思います。特にカウボーイに対するOPの認識が不正確である場合、それについて大騒ぎをすることは、自分自身を追放される迅速かつ簡単な方法です。
テラスティン

0

彼はチームの意見を聞くことを拒否し、最近、コードレビュー、ユニットテスト、実装の詳細の共有を停止しました...

レビュー、テスト、実装によるコードの文書化されたパスがありませんか?そうでない場合は、より広範な問題を抱えています。そうした場合、これはエスカレートする必要があるものです。


もちろん、たくさんのプロセスとドキュメントがありました。しかし、それは人々がそれらをどのように使用するかについてです。
アドロニウス

しかし、関連するサインオフを取得せずに本番環境に移行することはできません。彼は通常の変更管理を回避していると言っていますか?
-temptar

正確ではありませんが、一種です。彼はコードに変更を加えた後、「正式な」手順を実行してコードのレビューを行います=自分でツールを使用するため、コードは「レビュー済み」フラグを持っているか、コードを気にしない仲間に尋ねます彼のコードを「レビュー」します。その後、彼はすぐにコードを「説明」し、完了しました。Huray、そして彼は変更を提出しに行きます。
アドロニウス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.