言葉の資産集に「バグ収束曲線の終盤戦」という言葉を置いている。SEの現場で何度も見てきた景色であり、リリース前の踏ん張りどころを指す、私の好きな言葉だ。
バグ収束曲線というのは、ソフトウェア開発の品質管理で使うグラフである。横軸に日付、縦軸にバグの累計件数を取ると、テストが進むにつれて曲線の傾きが寝てきて、やがて水平に近づいていく。新しいバグが出なくなっていく、その形を「収束」と呼ぶ。教科書的には、それだけの話である。

図1の緑の実線(●)が、その収束していく曲線である。ただ、現場でこの曲線を見ている人間にとって、終盤はグラフの話ではない。傾きが寝はじめた頃、チームの空気は張り詰めている。残っているバグは、簡単に見つかるものが出尽くした後の、根が深いやつばかりだ。1件を直すと別の1件が顔を出すこともある。リリース日は動かない。それでも曲線は、少しずつ、確実に寝ていく。あの「あと少しで水平になる」数日間の緊張と手応えを、私は終盤戦と呼んでいる。図1の右端、緑の帯のあたりの話だ。
もっとも、どの現場でも曲線が素直に寝てくれるわけではない。収束していきたいのに、収束していかないときがある。図1の金の破線(◆)がそれで、テストを重ねても新しいバグが湧き続け、傾きがいっこうに寝ない。緑の実線(●)が終盤戦の帯で水平になっていくのに対して、金の破線(◆)は帯の中でもまだ上を向いている。これはこれでめちゃくちゃ辛い。終盤戦の緊張には出口の気配があるが、収束しない曲線には出口が見えない。バグの数そのものより、「終盤戦にすら入れていない」という事実がチームを重くする。そして経験上、曲線が寝ないのはテストの問題ではなく、たいてい、その手前の作りの問題である。グラフは、ずっと前の借りを、終盤に取り立てに来る。
だから、傾きが寝はじめた日のことは、よく覚えているものだ。終盤戦は苦しい局面のようでいて、実は、そこに入れたこと自体がひとつの達成なのである。
この言葉が好きなのは、終盤戦が一番、人が出るからだ。序盤の勢いは誰にでもある。終盤に残った難物と向き合い続けられるかどうかは、技術ではなく、やりきるかどうかの姿勢に依存する。特に、リーダーの姿勢に。収束したのか?本当に直しきれているのか?常に自問自答しながら、リリース日まで張り詰めた空気は続く。緊張が解けるのは、曲線が水平になった日ではない。リリースを迎え、一通りの機能が本番で動いてくれたのを見届けて、初めて心の安定が得られるのである。
気づけば、仕事以外でも使っている。試験勉強の最後の一週間。マラソンの35km過ぎ。原稿の最終推敲。何かをやり切る局面には、必ず終盤戦がある。曲線が寝はじめたら、そこからが本番だ。