ふつーのプログラマです。主に企業内Webシステムの要件定義から保守まで何でもやってる、ふつーのプログラマです。

人形つかい(17) 果てしなき修正の果てに

»

 K自動車の仕事始めに合わせて、総合テストも1月10日より再開された。ぼくたちはそれまでに、残っていた6件の修正をほぼ完了させていた。

 「ゼロになりましたねえ」

 ぼくは安堵のため息をついたが、東海林さんは浮かない顔だった。

 「これは当然の結果だろ。問題は明日からだな」

 1月11日の朝、8件の修正が上がっていた。これぐらいは、まあ予想の範囲内といえる。ぼくは、まだ楽観的な気分のまま、指示された修正に取りかかった。

 ランチの後、自席に戻ったぼくは、キーボードの上に変更仕様書が置いてあるのを発見した。これを床に払い落として、何も見なかったことにできたらどんなに幸せか。たちまち心に暗雲が広がるのを感じながら、進捗表ページを確認すると、修正件数が12件に増えていた。

 「わあ」思わずため息をついた。「明日からどころじゃなく、すでに増えてますね」

 「総合テストも佳境だからな」

 東海林さんはそっけなく答えた。追加修正の増加スピードが急すぎて、頻繁に実装のスケジューリングをやり直しているので、さすがに余裕がなくなっているのだ。

 18:00を過ぎる頃、修正件数は一気に31件に増えていた。うち、完了期限が12日9:00になっている修正が25件。明日の初号デモに必要な機能ばかりなのだろう。

 東海林さんはライオンのように唸ると、ぼくには修正を続けるように言っておいて、橋本さんの席へと向かった。

 ケンカとかするんじゃないだろうな、と心配しながら修正作業を行っていると、東海林さんは10分もしないうちに戻ってきた。

 「件数は減らせなかったが、リミットを明日の12:00に延ばしてもらった」

 たしか、明日の初号デモは、15:00に開始予定だった。もし、デモが朝一番の予定だったらと思うと、ちょっとぞっとした。

 「よし、さっさと片付けよう」

 あいにくさっさと片付くような修正ではなかった。ぼくたちは自社に戻ってからも、日付が変わるまで修正作業を続けた。どちらも終電の時間など気にも止めない。この日は自宅のベッドで寝るのをとっくに諦めていたのだ。ぼくたちは交代で応接室のソファで2時間ほど仮眠を取っただけだった。修正完了した機能は橋本さんにメールで送信していたが、その都度、律儀に「拝承」のメールが届いていたから、橋本さんも明日の準備でずっと残っているらしい。

 全ての修正作業が終わったのは、翌日の午前10:00過ぎだった。

◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇

1月12日、水曜日。

 初号デモは予定通り実施され、今回は高杉さんも眉間に皺をよせることなく帰ってきた。橋本さんの話では、いくつかエンドユーザの意図と異なる動作があったそうだが、いずれも修正の範囲内で収まりそうとのことだ。

 「最終デモは26日です。あと少し、よろしくお願いします」

 橋本さんは頭を下げた。初めて会った頃のような「私はシステムエンジニアでプログラマより偉い」オーラは、すっかりなくなっている。

 これで2月1日のカットオーバーまでのマイルストーンは、あと2つ。1月26日の最終デモと、1月31日のイニシャルデータ作成バッチだけだ。

 東海林さんは、初号デモがトラブルなく終わったことよりも、イニシャルデータ作成バッチのテストの方が気になっているらしく、その点を橋本さんに問いただした。

 「そっちの方は、私はほとんどタッチしていませんので、よくわかりませんが……」

 「……ということは」東海林さんはゆっくりと確認した。「総合テストとは別の部門がやっているんですか?」

 「そうです。言ってませんでしたか?」

 初耳だった。

 「少なくとも総合テスト部門と、そのバッチのテスト部門は、情報の連携などはしているんでしょうね?」

 「高杉が仕切ってますので……大丈夫だと思いますが」

 仕切ってるのがあの人だから心配なんだよ、などとは言わず、東海林さんは別の角度から不安を表明した。

 「バッチのランスルーはやるんですよね? いつですか?」

 「ランスルーと言うと?」

 「本番実行前に、通しでテストするでしょう?」

 「さあ」橋本さんは申し訳なさそうに首を縮めた。「私は聞いていませんが。スケジュール表にもなかったと思います」

 東海林さんは何か言いかけて、諦めたように首を振った。

 ぼくは、東海林さんが飲み込んだ言葉の予想がつくような気がした。きっと、高杉さんに確認してもらうよう、橋本さんにお願いするつもりだったのだろう。だが、高杉さんからは「プログラマには関係ない」とばかりに無視されるのは、まず間違いない。板挟みになった橋本さんに、ストレスの種を増やすだけだ。

 そもそも、このような重大な処理を本番稼働の前日に設定するということ自体、非常識ではないだろうか。ぼくが責任者だったら恐ろしくてできたものではない。致命的な問題があったら本番稼働が延期になるのだから。

 よほど品質に自信があるということだろうか。しかしこのバッチ処理は、かなりの部分をAフレに依存しているはずだ。Aフレ自体、実戦投入はこれが初なのだ。高杉さんの自信の根拠がどこにあるのか、ぼくには見当もつかない。

 橋本さんを解放した後、東海林さんは何事か考え込んでいた。

◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇

 最終デモに向けて、総合テストも最終段階に入り、K自動車港北工場による受け入れテストも始まっていた。橋本さんを通して間接的に得られる情報でしかなかったが、本番環境に近いデータで、実際にエンドユーザに操作してもらってのテストが行われているらしい。

 「実質的に、今が最終デモみたいなもんだな」と東海林さんは言った。「26日の最終デモなんて、偉いさん向けのパフォーマンスでしかないよ。むしろ、そこで問題が発生するようじゃ困るな」

 東海林さんの言うとおり、データの質と操作する人が、より本番に近いものになるにつれて、上がってくる修正の内容も件数もシビアになってきていた。しかも、即時対応が求められるケースばかりなので、ぼくたちはそれまでしていたように、いちいち橋本さんに不明点を確認するのをやめてしまった。

 「東海林さん、代理承認のルートをスキップする場合の条件が追加になってるんですが……」

 「確か、A03F022で同じことをやっていたから参照して」

 「東海林さん、否認結果のメールの文言に、承認されたルートを追加するとありますが、どうやって表示したら……」

 「とりあえず、承認結果テーブルから承認日付順に羅列しよう。それで不足なら、また修正上がってくるだろうし」

 「東海林さん、申請時に画面上に最終決裁権限者氏名を表示するとあるんですが、金額によって変わる場合はどうしたら……」

 「最初は空白にしとこうか。確認処理で金額が計算された時点で最終決裁者が決まるから、部門名と役職と氏名を表示しよう」

 こうした行動を橋本さんは何も言わなかった。高杉さんも気付いていないはずはなかったが、同じく黙認していた。これも、以前に東海林さんが言っていた「高杉さんの論理」なのだろう。ぼくは、仕様の細部を東海林さんが勝手に決めてしまうことを、面子がつぶされたように感じて、高杉さんが怒り狂うのではないかと思っていたのだが、どうもそういう思考は備えていないようだった。東海林さんがそこまで計算していたのかどうかは不明だが。

 修正件数は、1日あたり30件以上のペースで上がり続けていたが、一通りの総合テストが終わったため、1月22日を境に減少に転じた。エンドユーザによる受け入れテストは続いていたが、そちらから上がってくる修正は、バグというより、要望に近いものが多かったから、大部分は高杉さんが止めてくれていた。もっとも、これは、ぼくたちの作業量を考慮してというより、二次開発として新しいプロジェクトを提案する材料にするためだ、と東海林さんは考えていたのだが。

 数が減ったとはいえ、残った修正は規模が大きなものが多く、ぼくたちの帰宅時間を早める効果はなかった。それでも東海林さんの的確な指示のおかげで、修正件数は着実に減っていき、25日の深夜になって、とうとう最後の1つを完了することができた。

 自社で作業していたぼくは、すぐにソースをまとめて橋本さんに送付し、電話で完了報告をした。電話の向こうの橋本さんの声も、心なしか明るかった

 『これで明日の最終デモに組み込むことができます。おつかれさまでした』

◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇

 翌日の午後から実施された最終デモは、予想どおり、特に大きな問題もなく終了した。

 ぼくたちにとって、より大きな意味があったのは、最終デモをもって総合テストが完了となることだった。つまり、明らかなバグを除いては、修正に無条件で対応する必要がなくなったわけだ。

 ――これで少しは早く帰れるか。

 そう思ったのは甘かった。最終デモの日、いつもより早めに自社に戻ったぼくたちに、営業の黒野さんが近寄ってきた。

 「エースさんから、機能追加の依頼が入ってます。別見積ということでいいそうです」黒野さんはプリントアウトを東海林さんに渡した。「4機能ですが、期限は30日となっています。できそうですか?」

 「先手を打ってきたか」東海林さんは苦笑した。「営業の判断は?」

 「可能なら受けたいですね。あっちの営業の佐々木さんと話しましたが、常識的な範囲なら、こっちの言い値で見積もりを通してくれそうな感触でしたから」

 東海林さんは、答える前にぼくの顔を見た。作業が増えるのはつらかったが、東海林さんがぼくの意見を求めてくれたのは嬉しかった。気がつくと、首を縦に振っていた。

 「よし、受けていいぞ」

 黒野さんは踊るように自分の席に戻っていくと、電話にかじりついた。それを見ながら東海林さんがつぶやいた。

 「あとは例のバッチだけだな」

◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇

 翌日から、ぼくたちは機能追加分の実装を開始した。ライズさんにも同じ依頼があったようだった。

 「金だけはあるんだな」東海林さんは小声で皮肉を言った。

 追加となる機能は、総合テストの開始後に必要であることが判明したマスタ系のメンテナンス画面だった。特に困難な画面ではないので、ぼくは担当分をのんびりと作成していた。ライズの人たちも同じで、早めにアップし過ぎて、またもや機能追加依頼が来てはたまらない、という認識を共有しているようだった。

 東海林さんだけは、自分の担当分をさっさと終わらせてしまうと、これまでに作成したロジックのチェックをしていた。席を外して、長い時間帰ってこないことも、たびたびあった。ぼくはそれほど気にも留めているわけではなかったが、一度だけ、東海林さんと橋本さんが廊下で熱心に話し込んでいるのを目撃した。

 そして、最後のマイルストーンであるイニシャルデータ作成バッチを実行する日がやってきた。

(続く)

 この物語はフィクションです。実在する団体名、個人とは一切関係ありません。似たような行動や言動があったとすれば偶然の一致でしかありません。また、特定の技術・製品の優位性などを主張するものではありません。

Comment(6)

コメント

レモンT

今回のタイトル元ネタは小松左京さんですか。
……黙祷。

うう

うおお とうとう山場かー!
普通に考えたらバッチはうまくいかないだろうけど、東海林さんの動きがきになる。

ヤミヤ

山場ですね><
倒れないようにがんばれとしかいいようがないです。。
しかし、よく機能追加受けましたね^^;
自分なら、いやですとかいいそう・・まあ、きっと受けないといけなんでしょうけど^^;

BU-SON

プロジェクトもこのお話も佳境を迎えていますね。
最後まで目が離せませ~ん!w

「最後のマイルストーン」...、
というか墓石にならないといいですね(n‘∀‘)η

ふもふも

>「最後のマイルストーン」

むしろ、冥土への一里塚(ぼそ

kk

エースシステムの横柄さもですが、仕事を請けた段階で注意が足りなかったのでは・・・

コメントを投稿する