私はエクストリーム プログラミング チームで働いており、毎日ペア プログラミングを行っています。最近はフィードバックが遅くなるようなことをすることが多くなってきました。3分程度です。例: 何かを変更し、再コンパイルし、実行して、パフォーマンスが向上するかどうかを確認します。ペア プログラミングの質を調整していると思いますし、ソロ プログラマーよりもペアに影響を与えると思います。私が一人なら他のこともできますが、ペアプログラミングの場合はどうなりますか? どのように対処しますか?
8 に答える
あなたのマイレージは異なるかもしれませんが、主要な機能以外のペアプログラミングは、少なくとも1人のプログラマーの時間の無駄だと思います
ペアプログラミングは、開発の研究/POC/革新的な部分にのみ適用する必要があります。単純なタスクは、単一のプログラマーに委任する必要があります。
パートナーが重要ではあるが時間のかかるタスクを完了するのを待たなければならないのは、時間の無駄の問題だけではありません。人的要因もあります-待っている間に退屈します。生産的な開発者は、常にモチベーションを維持する必要があることを忘れないでください。パートナーが完了するのを待っていると、士気が低下します。
統計を収集するために数分間実行する必要があるパフォーマンス作業は、XP にはあまり適していません。いくつかのアイデアをスケッチするためにペアとして開始し、その後、3 分間のパフォーマンス実行ごとに 2 人の時間を無駄にしないようにソロになり、チェックインする前に再び参加して作業を確認することをお勧めします。
スパイクの時間パフォーマンスは、追加するのではなく、組み込む必要があります。チームは、本番環境のような環境で頻繁に(毎日)実行できる一連の自動テストを用意する必要があります。また、チームはプロファイラーを継続的に実行する必要があります。どちらもお持ちでない場合は、回線を停止して今すぐ完了してください!!!
チームがパフォーマンスが問題となる状況に陥った場合、チームは技術的負債を特定し、その負債に対処するための一連のストーリーカードを作成する必要があります。これには、一連の自動パフォーマンステスト、一連のプロファイラーテストが含まれます。テスト結果の毎日の分析は必須です。パフォーマンスの問題が発生した場合は、アーキテクチャまたは設計のスパイクを呼び出すことができます。
チームが最初からパフォーマンステストを継続的に行っていない場合は、対処すべき重大な技術的負債が発生する可能性があります。アプリケーションを実行したら、問題が発生したかどうか、いつ発生したかを知ることができるように、自動テストを毎日実行し続ける必要があります。次に、アプリケーションに対する問題のある変更を特定することをお勧めします。
自動パフォーマンステストを実行することにより、テストを一定期間、通常は数時間実行できるようにすることができます。結果は後で分析することができ、開発者は多数の個別のパフォーマンステストの結果を待たずに他のストーリーカードで作業することができます。
待つことはブロッカーです。自動テストによる待機を排除します。
私はそれらのタスクのために分割します。2 人とも別々にコードに取り組み、改善を行ったときは頻繁に (30 分程度?) 再結合します。
ペアプログラミングの有無は問いません。1 人でコーディングしていても、コード変更に関するフィードバックを得るには 3 分では長すぎます。より小さな部分に集中できるように、プロジェクトをプロファイリングして分解します。その意味で、XP は、手遅れになる前に設計を改善するのを実際に支援 (強制) しています。