担当からの発言
「追い込まれている」というのが理由で、テストをさぼることはありますか?
私の場合は、テストをサボることはあります、いや、ありました。もう少し正確に言うと、テストを書くのをさぼるというより、テストを「先に」書くことをサボった、そういうことはありました。
以前、もうリリース間近のプロジェクトで、お客様が機能が欲しいことがわかっていて、さらに直近で仕様変更もありました。その結果、赤くなってしまった(テストが失敗する)プログラムがいくつか出てしまったり、新たにテストを書いてから開発しなければならないコードがあるというとき、これはもう大きいテストを通すまでに、小さいテストを積み上げていく余裕はないなと判断したことがあります。
そのような場合に、ちょっと冒険的に、小さいテストを少なめに、要するに階段を2段飛ばしとか3段飛ばしとかで登るようなイメージで開発を進めてしまうようなことはありました。いま考えるとヒヤヒヤしますね。土台のないところを走っていたわけですから。
家永さんの発言
私は逆の体験がありますね。
プロジェクトが燃えちゃったってときに、動作確認の足場がないから開発速度は上がらないんだっていうことに気づいて、先になんとか一日二日かけてテストの足場を作って、それで速度を上げようっていうアプローチとって、なんとかプレッシャーを押しのけて進んだっていう。
そうですね。すばらしい姿勢だと思います。
本当に差し迫っているときとか、プロジェクトがどうにも前に進まないときに、何が原因か調べると、テストがそもそもなく、自分たちが書くもの、もしくは土台にするものに対する不安が手を止めてしまうことはよくあります。
テストが真っ赤っかで足がもう先に進まないというような状況のときに、一度新規機能の開発を止めて、テスト基盤の整理とか、テストのメンテナンスに時間をぐっと取って、それらが満たされた上で開発のスピードを上げていくという手法ですね。
プロジェクトのピンチを脱するときや、開発のスピードをそれ以降ぐっと上げていかないといけないときに、テストが肝となっていることは本当に多いと思うんです。
そういうときに、テスト基盤をぐっと整理して、ぐっと堪えて、プレッシャーに耐えて、まわしていくという選択肢があります。ぜひ、覚えておいて下さい。
今の話は結構おもしろかったですね。