こんにちは、エンジニア/スクラムマスターの中村です。
前回は「ふりかえり」についてお話しました。
今回は「トラックナンバー」のお話です。
トラックナンバーとは?
プロジェクトやチームにおいて「トラックに轢かれるとプロジェクトが立ちゆかなくなったり、チームの活動が困難になる人数」です。
トラックナンバーの数字が少ないほどリスクが高まります。
「ここのコードはAさんしか修正できない」や「開発環境の構築はBさんに聞かない限り分からない」などはトラックナンバー1の状態です。
では、トラックナンバーを2や3にしていくにはどうすれば良いでしょう?
よく見聞きする方法
- ドキュメントをしっかり詳細に書いて、揃える
- (そのドキュメントを元に)引継ぎタスクとして引継ぎを行う
しかし、全てをドキュメントにするのは難しく、またコストもかかります。またコードの変化にドキュメントの修正が追いつかず、結果的にドキュメントが信頼できない状態になりがちです。
さらに、「引継ぎ」タスク自体も、信頼できないドキュメントや引継ぎコストが原因で、結果としてうまく引継ぎできないことも多くあります。
一見、トラックナンバーは2以上になったように見えますが、蓋を開けてみると「トラックナンバー1だった」と明らかになったりします。
うまくいった方法
うまくトラックナンバー1を解消できた時にやったことの1つが「ペアプログラミング」でした。
ペアプログラミング(英: pair programming)は、2人のプログラマが1台のワークステーションを使って共同でソフトウェア開発を行う手法である。一方が単体
テストを打ち込んでいるときに、もう一方がそのテストを通るクラスについて考えるといったように、相補的な作業をする。
実際にキーボードを操作してコードを書く人を「ドライバー」、もう1人を「ナビゲーター」と呼ぶ。30分ごとか、単体テストを1つ完成させる度に役割を交替するのがよいとされる。また、1日に一度の割合でパートナーを変えるのがよいともされている。(Wikipediaより)
ペアプログラミングによってそのコードに2人(以上)が関わっていることになり、トラックナンバーは2以上になっていきます。
ちなみにプログラミングだけでなく作業などでも同じ効果が見込めるので「ペア作業」も良い方法の1つです。
さらにペアプログラミングの効果の1つとして「他人が読んで分かりやすいコード」になることがあります。
結果、ペアプログラミングをしたペア以外のメンバーも(コードが分かりやすいので)短時間で理解し、開発を継続することができます。
これも形を変えたトラックナンバー1を解消するパターンです。
#ペアプログラミングを実際にやって感じたこと、より効果を出すためのコツなどはまたの機会に書こうと思っています。
最後に
全ての領域でトラックナンバー1を解消するのは難しいことも多く、それを許容した戦略をとることもあります。
色々な方法を使ってトラックナンバー1の解消を目指せば、それがチーム力の向上につながりますので、チャレンジしてみてはどうでしょうか?
ソーシャルアカウント
フェンリルのオフィシャル Twitter アカウントでは、フェンリルプロダクトの最新情報などをつぶやいています。よろしければフォローしてください!