入出力ファイルの謎
フリー編
各サブシステムの結合試験が進んでいたが、試験結果が思わしくない状況だった。
JCLチームが出きたおかげで、処理が止まる、ということはないが、処理の結果が正しくないのだ。
お客様へ満足した試験結果を提出できなければ、次のフェースに進むことが難しい状況であった。
【入出力ファイルの謎】
徹夜明けの日曜の朝。
仮眠をとったあと、スーツ姿で出社してきた大川さんと課金サブシステムのJOBの見直しを行うことにした。
プログラムは間違っていないのに処理結果がおかしい。
これは入力ファイルが間違っていて、データをうまく引き継いで処理ができてないからではないか?と大川さんと意見が一致したからだ。
大川さんと二人で、再度、課金サブシステムのジョブを実行しながら、プログラムと入出力ファイルの確認をした。
赤井さんにひとつひとつ確認しながら、実行した結果の出力ファイルが、次のプログラムの入力ファイルとして妥当かどうか見直したのである。
大川:「あー、やっぱりココおかしいかも?キーがソートされてないよ。次のプログラムはソートされた状態でないと、ちゃんと処理ができないじゃん。」
私:『じゃぁ、JCLのほうで、ソートしようか?』
大川:「そうだね。赤井さんに確認して、修正しちゃおうか。」
地道にひとつずつ確認して、直していくしかない状況であった。
今日中にどこまでできるか。。。
この見直さなければならないプログラムの量を見ると、「今日が期日」という言葉は現実味を失った
【帳票がずれる?】
赤井さんのところに仕様を確認しにいくと、請求サブシステムの香川さんが何かしら相談をしていた。
赤井:「お、佐藤くん。いいとこにきた。ちょっと教えてよ。H社の汎用機得意でしょ?ぼくはねI社の・・・」
赤井さんは調子に乗ると、話が長い。とても長い。
時間がないので、申し訳ないが話を遮って香川さんに聞いた。
私:『香川さん、どこかおかしいんですか?』
香川:「うん。そうなんだよ。帳票が多いんだけどね、請求サブシステムは。その帳票の文字がずれるんだよ。」
私:『文字がずれるんですか?なんででしょう?』
香川:「漢字とねスペースが微妙にずれるんだよね。」
私はそんなことがあるのか?と不思議に思った。
過去、3年半、H社の汎用機でCOBOLをやってきて、帳票の出力で文字がズレて合わない、ということはなかったからだ。
私:『香川さん、プログラム見ましょうか?』
香川:「あ、ありがとう!助かるよ」
【文字コード】
話で聞くよりも、プログラムを見た方が早いと思い、香川さんのプログラムを見せてもらうことにした。
請求サブシステムは規模が小さいため、香川さんが一人で設計とプログラムを作成している。
もちろんJCLもだ。
香川:「いやー、僕もね、H社の汎用機が初めてで。F社のとはだいぶ違うから。赤井さんに聞きながらやってるだけど。難しいよね?」
私:『そうですよね。メーカー違うと、結構違いますもんね。』
私自身、H社の汎用機しか使ったことないのに、そんなことを言える立場ではないのだが、このプロジェクトの状況を見るに、メーカーが違うからみんなうまく進められてないと、思い込むしかなかった。
香川さんに、帳票出力の仕組みを教えてもらい、プログラムを追っていった。
帳票レイアウトシステムで帳票を作り、そこにプログラムで値を流し込んでいくようになっている。
そして、プログラムをみていると、見慣れない書き方をしているステップを目にした。
私:『あれ?この文字コードなんですか?何に使ってるんでしたっけ?』
香川:「あぁ、それね。赤井さんに教えてもらったんだよね。漢字を出力するときは文字コード調べて書くようにって。」
私:『え?漢字使えないんですか?』
香川:「そうそう。赤井さんがそう言ってたよ。この文字コードで空白をいれようとすると、どんどんズレちゃうんだよね。」
【漢字の出力方法】
私:『赤井さん?ちょっといいですか?』
そんなことって、あるんだろうか?と疑問に思いつつ、忙しそうにしてた赤井さんに声をかけた。
私:『この、帳票の文字コードなんですけど、漢字って出力できないんでしょうか?』
赤井:「あのね。I社の汎用機は日本語使えないから。文字コード表で漢字を確認して使うんだよ。H社のなんて、I社ベースだから一緒でしょ?」
私:『あ、いや。H社の汎用機は漢字を取り扱えるはずなんですけど、マニュアルと、できれば既存のプログラムなんてないでしょうかね?』
赤井:「え?そうなの?そんなの知らないよ!I社しかやってないだから!そんなこと言われたってさ。」
赤井さんは怒って、どこかに行ってしまった。
残された香川さんと顔を見合わせながら、仕方ないなぁと、大川さんも巻き込んで、既存の漢字を使用しているプログラムを探し、それをベースに香川さんに漢字の出力方法を教えたのだった。
「あーあ、言い方間違っちゃったかな?」と後悔しつつも、赤井さんも善意で教えてたのに、間違いをこんな若造に指摘されたら、怒りたくなるのも仕方ないな。と自分を納得させた。
この、徹夜続きも怒りやすくなるひとつの要因ではある。
【結合試験の関門】
PMの山崎さんから、明日の夕方、16時からお客様向けに報告する結合試験を実施するということの発表があったのは、日曜日の20時を過ぎた頃だった。
赤井:「え?明日ですか?それは無謀じゃないですか?」
確かに通りだ。
結合試験という名目とはいえ、3サブシステムの連携が必要になる。それぞれのサブシステムの修正で手一杯で、3サブシステムを連動させたことは一度もない。とりあえず、まずは、自分たちのサブシステムをしっかり通して動かすこと。そこに向けて今週を乗り越えようとしていた。
それなのに。だ。
しかし、何を言っても始まらない。
結合試験が延期することはないだろう。
今はまず、明日の試験に向けて、最短で進められるように考えてやるしかないのだ。
あ、そうだ。と香川さんに声をかけた
私:『香川さん、さっきの文字コードのやつなですけど。』
香川:「うんうん。なんだろう?」
香川さんは人当たりもよく、会話もやさしい。ただ、ちょっとおっちょこちょいな性格ではある。
私:『文字コードの修正なんですが、全プログラムの文字コードの部分を修正していると明日の試験に間に合わないと思うんですよね。なので、まずはズレてるところだけ直して、それ以外の部分は後日対応した方がよさそうですよ』
香川:「あ、そうだね。ありがとう。あと、JCLが動かないところあるんで、みてくれるかな?」
私:『わかりました。みてみます!』
【担当者不在】
香川さんより心配なのは、明日、結合試験として動かす3サブシステムの課金サブシステム、請求サブシステム、と、もうひとつの経費サブシステムのほうである。
経費サブシステムのSEの角川さん、プログラマーのJCLリーダーこと小森さんは、昨日、今日と出社していない。
余裕な感じで進めていたけど、本当に大丈夫なんだろうか?と、みんなが心配していたのだ。
PMの山崎さんも連絡しているようだが、全然連絡がとれなくて困っているようだった。
赤井:「いやー、経費サブシステムの出力ファイルが、課金サブシステムの入力になるのに。大丈夫かな?」
機嫌の直った赤井さんが、心配をしている。
処理としてはスタート部分の一つである経費サブシステムだったので、そこがうまく動かないと後続の処理がまともに動かないからだ。
私:『とりあえず、課金サブシステムから、請求サブシステムまで、処理を流してみましょうか?そこまでならなんとか、今いる人で動かせるので。』
大川:「そうだな。請求は今香川さんが帳票部分直してるけど、その手前までなんとか動かしてみよう。」
請求サブシステムの入出力ファイルの見直しは、おそらくできていない。
まさか、明日、動かすことになると思っていなかったし、私自身も課金サブシステムの修正だけで手がいっぱいだったからだ。
きっと、課金サブシステムから請求サブシステムに処理が移ったら、そこで結果がおかしくなるんだろうな。と、大川さんと話しながら、月曜の朝をここで迎えることを悟ったのだった。
そして、町田さんは、今日も来なかった。
なんでだ?
つづく
※この物語は経験をベースにしたセミフィクションです。
最後までお読みいただきありがとうございました!
TwitterやFacebookなどのSNSでのシェアも大歓迎です!