日替わり NAT’s Champloo

音楽やライブ(HM/HRやボカロなど)、旅行など、ごちゃっとした日記

テストしてないコードは負債である

どこかで、そんな言葉を読んだ覚えがあるのだが、今日はそれを実感した。
手伝いにいった開発プロジェクトではトラブル続きで納期が厳しくなり、下請けのソフトウェア会社に依頼したプログラムも予定通りに完成しそうにない。そこで発注元のこちら側で人を集め、下請けで作成途中のプログラムの一部を引き取って、こちら側で続きをやることになった。
で、その引き取ったプログラムの一部を私が担当して、プログラムを完成させることになったのだが、その作成途中のプログラムというのは、まさに書きかけのプログラム。ちゃんと動くのかどうかも、どこが書きかけで、どこが書き終わったのかも分からない。プログラムの仕様書や設計書とかはあるので、それでプログラムの構造を理解しながら、完成している処理とまだ完成してない処理を調べた。それだけで半日以上はかかった。私が手伝いできる期間は1週間なので、その期間で完成させないと、私の次にそのプログラムを担当する人が、また同じ目にあってしまう。
これがテストしたプログラムなら、どのテストが成功して、どのテストが失敗したのかさえ分かれば、あとは失敗した部分のプログラムだけ完成させれば良いことになる。1つのプログラムをずっと同じ人が担当するとは限らないこういう状況だと、先にテストのやり方を決めてからプログラムを書いていく、いわゆる「テストファースト」のやり方が良いのかもしれない。