コードの所有権の移行
2006 年 5 月 15 日
最近の CodeOwnership の投稿で、コードの所有権の問題について、私の考え方を説明しました。ソフトウェア開発の私の友人の中には、エクストリームプログラミングを好み、共同のコード所有権を支持する人がたくさんいます。しかし、この種の慣行は絶対的なものではなく、常にローカルの考慮事項によって調整されるべきです。同僚の 1 人が次の話を私に送ってくれました。これは、XP の熱心なファンであっても自分の慣行を変える必要があるときの良い例だと思います。(彼は自分のチームについて話しているので、匿名を希望しています。)
一部の開発者による規律のないプログラミングに対抗するため、チームを「集団」モデルから「弱い」モデルに移行しました。率直なフィードバックと組み合わせることで、重要なコード領域を「所有」するプログラマーが継続的に低レベルのコードを修正する必要がなくなったため、速度が向上しました。それらの重要な領域で低レベルの仕事を行っていたプログラマーは、バグの検索やリスクの低いコードの変更などの作業を行っています。これにより、他のプログラマーがさらに解放されます。
また、低レベルのプロデューサー以外の全員が、問題がないかチェックインをいちいち確認して、時間内に検出できなかった問題を修正することに不満を持っていたため、士気も全体的に向上しました。この変更により、品質、TDD、非推測などを真剣に受け止めている人たちが報われました。
ただし、次の問題に対処するために追加の慣行とポリシーも必要でした。
- ペアの切り替えを頻繁に行う(実際のポリシーは、コードのすべての部分で作業することはできますが、自分の「自由領域」以外の領域にある場合は、その領域を所有している人とペアを組むか、まずその人に十分にアイデアを吟味してもらう必要があります。)
- 復帰は所有者を通して行います。自分のコードが基準を満たしていると感じた場合は、そこで再び自由にタスクを引き受けることができます。
- 問題が改善されない場合は、さらなる措置を講じる必要があります。
私にとって非常に有益でした。今まで一度もこのレベルに達したことがなかったので、「強権を振るう」ことに本当に消極的でした。指示的な慣習を支援的な慣行に変えることは私にとって本当に難しいことでしたが、それ以来状況は大幅に改善されました。
この種の小規模の適応は、エクストリームプログラミングやアジャイル手法の不可欠な部分です。すべてが平等であれば、同僚は依然として共同のコード所有権を好みますが、すべてのケースが平等ではありません。