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

イノウーの選択 (1) 果てしない項目定義

»

 これまでの人生を通して、キーボードから入力した最も多い単語は、きっとString だ。次点はint あたりだろうか。業務システムなどという厄介なシロモノを作っている世界中のプログラマたちに統計を取ってみたいものだ。short やboolean だ、という人も、中にはいるのかもしれない。
 「えーと、次は」仮想世界に逃避しかけたぼくの心を、シノッチこと篠崎さんが引き戻した。「わて......あ、違う。ウォーターファシリティ・ディスカウントコード97」
 「ウォーターファシリティ......」waterFacilityDiscountCode97 とフィールド名を入力しながらぼくは訊いた。「それは何ですか」
 シノッチは分厚いキングジムファイルをバサバサとめくった。
 「......あ、あった。水回り設備関連割引特典97 年コードですね。タイプはchar。桁数は......これも不明です」
 またか。桁数が不明ということは、バリデーションを定義するために、一手間かけなくてはならないということを意味する。ぼくは作成中のdto ファイルを保存し、スクロールした。コメントを除いて103 行。そのほとんどがString で定義された変数だった。
 「米印ありです」シノッチは続けた。「えーと、在庫プログプロセス内で......うーん読めないな、なんだこれ、木? あ、未か、未引当在庫数参照のためのワークコード、と書いてあります」
 zaiko_prog_process 内で......とコメント行に入力を終え、2 行をExcel シートにコピー&ペーストすると、次の項目を指で追っているシノッチに訊いた。
 「あとどれぐらいですか?」
 ぼくの問いに、シノッチはまたファイルをめくり、口の中でカウントしてから声に出して答えてくれた。
 「残り7 ページです」
 これまでのところ、1 ページに記述されている項目数は、平均して30 前後。ということは、少なく見積もっても、200 以上の項目を定義しなければならないわけだ。
 ロック解除音が鳴り、ドアが開いた。入ってきたのは茅森課長だ。ぼくとシノッチを見ると、まだやってたのか、と言わんばかりの表情を浮かべた。
 「どうだ?」
 「どうもこうも」ぼくは感情を抑えて抗議した。「まだまだ先は長いですよ」
 「そうか。まあ、引き続き頼むよ」
 「これ、本当にうちがやる仕事ですか? システム開発室の職務分掌は社内システムの開発および保守ですよね」
 茅森課長はぼくの言葉になど、関心を寄せるふりすらしなかった。自分のPC のロックを解除すると、何やらマウスを操作し始める。モニタに視線を固定したまま、半ば上の空で言った。
 「社内システムだろう」
 「うちのじゃないですよね」ぼくはつい声を荒げた。「しかも、ソースもドキュメントもない」
 「ドキュメントはエースから届いたと聞いたが」
 それは間違いではない。シノッチの前に並んでいる6 冊のキングジムファイルがそれだ。問題はHOUSEPROG ver2.7 と銘打たれた仕様書が、全て手書きで書かれていることだった。それもお世辞にも読みやすいとは言えない筆致で。暗号化、難読化してあるのではないかと疑いたくなるほどだ。
 「お、これか」茅森課長は数回キーを叩くと、またPC をロックして立ち上がった。「まあ、とにかく急いでくれよ。また夏目課長に嫌み言われるのはごめんだからな」
 そう言い置くと、それ以上の苦情をシャットアウトするかのように早足で出て行った。急用で自分のPC の何かを見に来ただけだったのは確かだろうが、少しぐらいこちらの話を聞いてくれてもよさそうなものだ。
 「少し休憩します?」シノッチが訊いた。
 答える前に時計を見て首を横に振った。16 時2 分過ぎ。今日は17 時に仕事を切り上げて幼稚園に娘を迎えに行かなければならない。下手にインターバルを挟んでしまっては、集中力が途切れてしまうだろう。
 「もうちょっと続けよう」
 「OK」シノッチは頷いた。「じゃ、次行きます。えーと、あ、これも今のウォーター何とかと同類ですね。数字部分が99 になってます」
 ぼくはため息を押し殺してキーを叩いた。F.S としかわからないHOUSEPROG ver2.7 の消息不明の作者を呪い殺してやりたい気分だった。
 Teams から通知がポップアップした。斉木さんだ。『16 時からJINKYU の打ち合わせだよ。もうみんな......』
 口汚い罵り声を上げそうになった。Outlook でとっくにスケジュールはキャンセルしてあるし、出席者全員に理由も送信済みだ。マネジメント部の部長代理に昇進したというのに、この人はよくメールやTeams を見るのを忘れることが多い。
 幸い、他の出席者が指摘したらしく、通知はすぐに削除された。
 「ごめん」ぼくはシノッチに言った。「えーと99 ね。米印は?」
 「ありますね。長―いやつが。読みます?」
 言いながらシノッチは該当ページを持ち上げて、ぼくの方に向けた。「※」で始まる特記事項は、必ず赤いペンで書かれている。大抵は1、2 行だが、今回のはページ面積の2/3 を占有していた。
 「あー、ちょっとつらいですね。スキャンで」
 シノッチは安堵した顔で頷くと、ポストイットを貼り付け、連番を書き付けた。後ほど高解像度でスキャンし、TIF ファイルで保存する対象となる。慎重な手つきでページをめくると、シノッチは目を大きく見開いて、次の項目の解読を始めた。
 この作業を開始したときは、二人で半分ずつ分担を決めて進めていく予定だった。だが、総務課での勤務が長いシノッチが、活字ではなく、手書きの文言を解析する高いスキルを有していることが判明して以来、現在の方法に変更となった。数語以上の手書き文字を読む機会が滅多にないぼくとしては、シノッチに足を向けては寝られない。
 「じゃ次行きます......」
 シノッチの言葉にかぶせるように、ドアが開いた。今度は夏目さんだ。何がうれしいのか、満面の笑みを浮かべている。
 「おつかれさま。調子はどう?」
 「順調ですよ」
 答えるシノッチの声が硬い。この業務をぼくたちに投げ落とした張本人に対して、サラリーマンとしての最小限度の礼儀以上のものを示す必要性を感じないのだろう。それでも、ぼくよりよほど人間ができている。ぼく自身は、3 度未満の角度で頭部を傾けただけだったのだから。
 その空気を感じ取ったのかどうか、夏目さんは表情を崩さないまま問いかけた。
 「何か必要なものはない?」
 ありますとも。ぼくは心の中で答えた。このドキュメントを燃やし尽くす魔法の火だ。ここにあるファイルがオリジナルなので、消滅させれば、ぼくたちは解放される。どこかにコピーがあるのは間違いないとしても、それが手配されるまでには、作業の再開を防ぐ、あるいは先延ばしにする口実を何かしら思いつくだろう。
 「いえ」シノッチが吐息すら節約するように答えた。「特には」
 「そう。とにかく最優先でね。明日の午後、広報の定期コミュニケーション会があって、そこでこの件の進捗を報告することになってるんだ。わかってると思うけど、みっともない報告を私にさせないでよ。せっかく私が苦労して築き上げたエースシステムとの関係を、こんなことで壊したくはないですからね。じゃあ邪魔しちゃ悪いから」
 夏目さんは回れ右して出て行った。自分の言いたいことだけばら撒き、さっさといなくなる。この会社の役付きは、みんな自分勝手な人種ばかりだ。
 顔を上げたぼくと、ドアから視線を戻したシノッチは、互いに苦笑し合った。そういえば、ぼくとシノッチも役付きになったんだった。ぼくは室長補佐、シノッチは課長代理だ。
 続けましょうか、とシノッチが言い、ぼくも頷いた。誰が命じようと、仕事は仕事だ。

 ◇ ◇ ◇ ◇ ◇

 ぼくの名前は井上ヨシオ。マーズ・エージェンシー株式会社に勤務している。経営管理部システム開発室に所属し、社内システムの開発および保守が主な仕事だ。34 歳。妻と3 歳になる娘が一人いる。
 この春の組織変更では、経営管理部の箱に変更はなかったが、構成人員はかなり入れ替わった。まず、斉木さんが、株式会社インストルメンタリティ関連から離れて、部長代理としてマネジメント部に異動した。斉木さんはシステム開発室の室長に籍だけは置いていたのだが、これでシステム開発関連業務からは完全に手を引くことになる。システム開発室の管理者は、別の部署の課長クラスに引き継ぎさせることも検討されたようだが、どういうわけか積極的に手を挙げる人間がいなかったため、引き続き、マーケティング課の茅森課長が兼務することになった。
 ぼく自身は、一年前にマネジメント職ラインへの転換を打診され、周囲と相談した上で受諾することにした。いくつかの管理職研修と、適性試験を経て、各部の部長、役員との面談をクリアし、今期から名刺に「室長補佐」という役職が付け加えられることになった。給与テーブルでは、課長代理と同等のポジションだ。マネジメント職は年俸制で、勤務時間数に関わらず、毎月決まった額が支給される。基本給は平社員のときより上がっているが、システム開発室は定時で退社できるような職種ではない。これまで時間外労働手当として受け取っていた分と比較すると、手取りはたいして変わらないことになる。
 ぼくの配偶者であり、システム開発室の主要メンバーでもあった、笠掛(旧姓)マリも、営業四課への異動となった。うちの会社には、夫婦が同じ部署で勤務することはNG という慣習がある。これまでは、他に人がいないという理由で、結婚後もシステム開発課に席を置くのを黙認されていたのだが、夫が上司という状況は前例もなく、人事評価上の不平等が懸念されたため、異動が発令されることになったのだ。マリは不平不満を表すこともなく、この異動を受け入れた。どのみち、現在のマリの関心は、その大部分が仕事ではなく、娘のナナミに向けられていたからだ。人事課との数度の話し合いの結果、時短勤務の事務職、という位置付けで、勤務時間は10:00 ~ 16:00 となった。
 もっとも、これはあくまでも組織図上だけの話だ。マリのフロント技術が必要になった場合は、上長の――形式的な――承認を得た上で、システム開発室の業務をヘルプすることも可、ということになっている。実際、マリは出勤後の10 分程度、営業四課に顔を出した後、勤務時間の大半をシステム開発室で過ごしている。
 その他にも人事異動はたくさんあったが、大きなトピックとなったのは夏目さんだ。2 年間のエースシステムへの出向から戻った夏目さんは、広報部部長の肩書きを得て、出世の階段を昇りつつある。順調にいけば5 年後にはソリューション本部長、さらに5 年後には初の女性役員というコースが目の前に続いている、とはシノッチの話だ。
 過去に夏目さんとはいろいろあったものの、ソリューション本部とシステム開発室は、組織的にも業務的にも、ほとんど接点がない。夏目さんが権力を希求しようが、どこの階段を昇ろうが(またはころげ落ちようが)、自分には関係ないだろう。
 そう考えていたぼくは、自分の認識の甘さと、夏目さんの行動力を思い知らされることになった。先週、つまり5 月の第三週、茅森課長に呼ばれて会議室に入ったぼくは、夏目さんが同席しているのを見て少し驚いた。
 「イノウー」夏目さんは陽気に手を振った。「お久しぶり」
 「どうも」ぼくは座りながら、二人の上司を交互に見た。「急ぎの仕事、ということでしたが......」
 「そうなんだ」茅森課長は頷くと、夏目さんを見た。「どうぞ」
 「ちょっとした仕事をお願いしたいの」夏目さんは会社支給のタブレットを見ながら言った。「先に言っておくけど、これは緊急かつ重要な仕事です。今、何をやっているのか知らないけど、優先してやってもらいたいんです」
 そんな緊急な開発案件があったかな、とぼくは首を傾げた。システム開発室には、社内の各部署から開発依頼や改修依頼が舞い込むが、それらのほとんどは担当社員からの相談、という形で事前に情報が得られるものだ。
 「エースグループに」夏目さんはタブレットをぼくに見せた。「エースホームがあるのは、もちろん知ってるわよね」
 タブレットにはエースホームのコーポレートサイトが表示されていた。戸建て住宅の施工と販売を手がけるハウスメーカーだ。ぼくは頷いて、知っています、と答えた。社名ぐらいは何となく聞き覚えがある、という程度だが、ウソではない。
 「ハウスメーカーにはだいたいあるんだけど」夏目さんは続けた。「エースホームにも紹介制度、というのがあるの。聞いたことは?」
 今度は素直に首を横に振った。夏目さんも、そこまでは期待していなかったようで、でしょうね、と呟いてから説明を始めた。
 紹介制度は、簡単に言えば、ハウスメーカーの顧客になり得る人を紹介すると、報酬がもらえる、という制度だ。たとえば住宅の購入を検討しているA さんを、B さんがハウスメーカーC 社に紹介する。C 社のセールスマンがA さんと商談にこぎつければ数万円、仮に成約になると数十万円が、C 社からB さんに支払われる。住宅というのは、他の商品と違って動く金額が桁違いなので、それぐらいの報酬があたりまえであるらしい。
 「まあ詳しい仕組みは省くけど、この紹介制度の管理は、エースホームの総務だかで、一人か二人ぐらいが担当しているらしいのよ。一部門を割り当てるような業務量ではないから。ただ、お金の支払いが発生するわけだから、経理的にも法務的にも、かなり複雑なルールがあるの」
 その管理を、エースホームでは、独自に開発したアプリケーションで行っている。Web アプリケーションではなく、Windows で動作する、Win32 アプリだ。作成されたのは前世紀末で、C 言語で構築されたらしい。当時の担当者が、どこかのソフトハウスに発注したのだが、どちらもすでにこの世にない。
 「まさか」プログラマとしての本能が警報をガンガン鳴らしている中で訊いた。「そのアプリをメンテナンスしろ、とか言わないでしょうね」
 「まさか」夏目さんは同じ言葉を返して笑った。「システム開発室のイノウー先生に、そんな仕事を頼むわけないでしょう」
 そう言われても安心できるものではない。
 「アプリが載ってたPC を、先月、やっとWin11 に変えたら、そのアプリが動作しなくなったらしいの。とりあえずは、廃棄予定だったWindows10 のPC に、そのアプリだけコピーして業務には支障がないんだけど。さすがに、もうとっくにサポート切れたOS と、ハード的にもいつ動かなくなるかわからないようなPC をいつまでも置いておくわけにもいかない。いい機会だから、リニューアルしようという話になったというわけ」
 妥当な判断だ。だが、ぼくがこの場にいる理由がわからない。
 「で、そのリニューアルをうちで請け負うことになったの」
 「つまり」茅森課長が補足した。「システム開発室で、だ」
 なぜ営業部で通常の開発業務として受託しないのか、という理由は訊かなくてもわかった。どうせ話を聞きつけた夏目さんが、「あ、それならうちのにやらせますよ」と安請け合いしたに決まっている。事業統合という建前になってはいるものの、エースシステムとマーズ・エージェンシーの関係は、実質的に親会社と子会社のそれだ。無償でリニューアルに成功すれば、エースシステムへのアピールになる。夏目さんが全ての功績を独占するであろうことは言うまでもない。
 いずれにせよ、もう決まったことだ。抵抗しても意味はないし、時間のムダだ。
 「わかりました」ぼくはプロらしく簡潔に答えた。「Web アプリケーションで、ということでいいんでしょうね」
 「動けば何でもいいらしいわ」
 「アプリの詳しい仕様はいつもらえるんですか」
 「明日のエース便で届くそうよ」
 「エース便でですか」
 エース便というのは、エースシステム―マーズ間で日に1回送受される物理的な配送のことだ。押印が必要な書類や、両社の社内報などがやり取りされるが、たまにUSB メモリやDVD なども含まれることがある。両社間にはセキュアなファイル送受信システムが確保されているが、最大ファイルサイズが200MB に制限されているためだ。
 「どうしてわざわざエース便で送ってくるんでしょう?」
 「さあね」夏目さんは時計を見ながら立ち上がった。「届いたらシステム開発室に持っていくように、総務には頼んであるから。じゃ、お願いね。あ、進捗はまめに報告して」
 てっきりソースファイルや操作マニュアルなどが、何らかのメディアで送られてくるのだと思い込んでいたぼくは、翌日、システム開発室に届いた段ボール箱に唖然となった。それが怒りと絶望に変わったのは、中身を確認し、電子データが皆無で、手書きの仕様書だけが入っているとわかったときだった。ソースコードについては、プリントアウトすらない。あるのは6 冊のキングジムファイルだけだ。
 ほぼ同時に、夏目さん経由で、1つのzip ファイルが届けられた。解凍してみると、PowerPoint の操作マニュアルと、exe ファイルが1つ格納されていた。操作マニュアルはエースホームの担当者が、自分の業務のためだけに作ったもので、HOUSEPROG 作者の手が入っているわけではないようだ。
 「なんじゃ、こりゃ......」
 ネットからいくつかツールを拾ってきて、exe ファイルの逆コンパイルを試みたが、生成されたのは、読み進める気にもなれないほど難解なコードだった。もしかするとC 言語ではないのかもしれない。
 「どうだね」作業を見ていた茅森課長が心配そうに訊いた。「いけそうかね」
 「いけない、と答えたら、なかったことになりますか?」
 返って来たのは、バカなことを訊くな、という視線だけだった。
 「仕様書を解読するしかないですね」
 こうしてぼくは、夏目さんのせいで、手書きの仕様書と、操作マニュアルしかないWin32 アプリから、Web アプリケーションをリビルドするという厄介な業務を抱え込むことになったのだった。

 (続)

Comment(0)

コメント

コメントを投稿する