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

イノウーの憂鬱 (18) ベンダーの論理

»

 「どうも、お時間をいただきまして」
 前回の顔合わせから2 週間後、7 月14 日。再び、来社したマギ情報システム開発の古橋さんは、深々と頭を下げた後、額の汗をハンカチで拭った。今日も雨天で蒸し暑い。同行の三津橋さんと内田さんも、それぞれの角度で一礼した。
 「いや、猛暑ですな。もー、しょーがねー、なんつって」
 伊牟田課長は、安定のオヤジギャグを挨拶にして、古橋さんと二人でバカ笑いを炸裂させた。三津橋さんは軽蔑したように眉を寄せたが、内田さんは一拍遅れて追随した。
 「どうぞ、おかけください」財務課の越中谷課長が笑いながら言った。「冷たいお茶など出したいところですが、あいにく、感染拡大防止のため禁止になっていましてね」
 全員が着席した。財務課から越中谷課長の他2 名、IT システム管理課から戸室課長と湊くんが出席している。システム開発室からの出席者は、伊牟田課長の他には、木名瀬さんとぼくだけだ。
 「本日は受発注管理システムの再構築について、システム構成の提案をご説明させていただきます」
 古橋さんの言葉と同時に、プロジェクターからパワーポイントのスライドが映し出された。感染予防のため、紙でのドキュメント配付は行わない、という話は事前に通知されている。
 システム開発室のメンバーに、ダリオスが「改修」ではなく「再構築」になった、と知らされたのは、先週の火曜日だった。ぼくたちが週末を挟んで作った変更仕様書のサンプルは、日の目を見ることなくお蔵入りになってしまった。
 斉木室長はいつその方針が決まったのか、と抗議の意を含めて質問した。マギ情報システム開発との顔合わせは7 月2 日の木曜日。土日を挟んでいるから、平日は金曜日と月曜日の2 日間だけだ。その間、部課長が参加する会議は行われていない。会議と根回しがビジネスフローの基本になっているこの会社で、これほどの方針転換を伊牟田課長の判断だけで決められるはずがない。
 「昨日、大竹専務の鶴の一声で決定したんだわ」伊牟田課長は自慢そうに言った。「あの人、こえー、なんつってな。ああ、心配せんでええぞえ。再構築は外注だからな。君たちはできるのを待ってりゃええ、ってなもんだ」
 「外注先は決まっているんですか?」
 「マギ情報システム開発だよ」伊牟田課長は予想通りの答えを返した。「もう話はして、快く了承してもらったぜよ」
 「先に言っておいていただきたかったですね」斉木室長は控えめに抗議した。「私たちで変更仕様書のサンプルを作成したんですが」
 「あ、知らんわ、んなもん。それこそ先に言っとけよって話じゃねえのかよ」
 ぼくたちは顔を見合わせた。サンプルの作成作業そのものを、部門管理者を外して進めていたのは確かだ。もっとも、声をかけたところで、伊牟田課長が参加するとは思えないし、再構築を外注するという決定に影響を及ぼせたとも思えないが。
 「そうなると、お盆明けからテストを開始する、というスケジュールではちょっと......」
 「おお、マギの古橋さんもおんなじこと言ってたわ。気が合うねえ、あんたら。ま、そこんとこは、俺のマネジメント力でビシッと交渉中だぜよ」
 「システム開発室はどう関わるんでしょうか?」木名瀬さんが質問した。「マギさんと共同開発する、ということでしょうか。それとも進捗管理ですか」
 「そういうことはやらんでええんよ」伊牟田課長はハエを追い払うように手首を前後に動かしながら答えた。「マネジメントは俺がすっから。下請けの管理は三課がプロだからな。君らは例のm2A だっけか、あれを進めておいてくれりゃあいい」
 「ダリオスが再構築されるということは、データベースも変更になるのではないですか?」
 「さあね。そのへんはマギの方で考えるだろ。それがどうかした?」
 「m2A はダリオスのデータベースにアクセスして、エースとデータをやり取りします。DB が変更になるなら、m2A の方にも変更が発生します」
 「ああ、そういうこと。んー、で、どうしたいっての」
 「打ち合わせはやるんですよね」
 「まあ、そりゃあ、何度かやることになるわな。最初は来週、14 日の火曜日な」
 「うちのメンバーも参加させていただけないでしょうか」
 伊牟田課長はその提案のメリットとデメリットを頭の中で比較しているようだったが、やがて肩をすくめた。
 「まあ、出たいなら構わんがな。つっても、打ち合わせは財務課も出るし、IT システム管理課も出るからな。あまり大勢でぞろぞろ出るのはなしな。一人か二人にしろよ。あと、m2A に関係ないところで、余計な発言すんなよ。打ち合わせの時間が延びるだけだかんな。橋本環奈、なんつって」
 この人が会議の効率的な進行など気にしているはずがない。自分のオヤジギャグを披露するチャンスが増えるから、会議がダラダラ続くのはむしろ歓迎するだろう。ぼくたちの発言に釘を刺したのは、打ち合わせ内容が、自分で仕切れる範囲を超えてしまうのを懸念してのことに決まっている。だが、ともかくシステム開発室のメンバーは参加を許された。初回は、木名瀬さんとぼくが参加することになった。
 マギ情報システム開発が作成したスライドは、ダリオスが再構築になった経緯から始まっていた。最初に上がっているのは、当初の改修の大前提だった下請法適用だが、その他は主に運用の問題だった。現行のダリオスはデータベースにSQL Server を使っているが、ランニングコストを削減するために、オープンソースのデータベースに変更。同じ理由でOS もWindows からLinux へ変更。IE11 をなくすためhtml の全面的な改修。戸室課長と湊くんが真剣に注視している様子からすると、このあたりの理由をまとめたのは、IT システム管理課のようだ。
 「それから」マスクのせいで話しづらそうな古橋さんは、可能な限り声を張り上げた。「御社の開発部門様で保守ができるように、とのことでございましたが、これは仕様書とソースを納品させていただく他に、何か留意する点などございますか」
 「開発部門様」というのはシステム開発室のことだろう。ぼくは発言しようとしたが、伊牟田課長に先を越された。
 「特にないですよ。まあ、保守っつってもポーズみたいなもんで、実際は御社にお任せすることになりますよ」
 「ありがとうございます」
 あうんの呼吸で古橋さんが答えたので、ぼくは発言を諦めた。湊くんが、「それでいいのか」と言いたげな視線を投げてきたが、ぼくは肩をすくめた。
 「ではデータベースですが、現行のシークエルからオープンソースへ、ということですね。うちとしてはポスグレを考えていますが、御社のご希望は何かございますか」
 シークエルって何だ? ぼくは木名瀬さん、戸室課長、湊くんの順番に目で問いかけたが、どの顔からも困惑が返ってきた。伊牟田課長に邪魔されないように、ぼくは挙手して発言の意志を明らかにした。
 「あの、シークエルというのは?」
 「御社で使ってるDB の製品名です」三津橋さんが、今にもため息に変わりそうな口調で言った。「Microsoft ですよ」
 「エスキューエルサーバーのことですか?」
 「SQL は正式にはシークエルと読むんですよ」三津橋さんは親切に教えてくれた。「エスキューエルでも、まあ、間違ってはいませんがね」
 「不勉強ですいません。MS の商品名だけではなくて、言語の方も同じですか?」
 「もちろんです」これだから社内SE は困る、とでも言いたげだ。「業界じゃ常識ですよ」
 三津橋さんより少ないかもしれないが、ぼくもIT 業界に身を置いてそれなりの年数になる。同業者やユーザ企業の担当者を合わせて、数百人以上と顔を合わせてきたし、関わった案件の中にはSQL Server を使ったものもあった。それでも、SQL Server を「シークエルサーバー」と呼称する人には会ったことがないので、業界の常識とまで言い切られたのには、少し違和感が残った。
 「ポスグレで問題ありません」湊くんが落ち着いた声で言った。「OS はこっちで準備しますが、ポスグレのインストールは御社にお願いできますか」
 「それは構いませんが」三津橋さんは首を傾げた。「インストールってコマンド叩くだけですよ」
 「コマンドってyum のことですか?」
 「そうです。よくご存じですね」
 「yum だと最新版が使えないので、ソースからのコンパイルでお願いしたいんです」
 「コンパイルですか」初めて三津橋さんの声に戸惑いが混じった。「そこまで最新版にする必要はないと思いますがね」
 「最新版があるのに、わざわざ古いバージョンを使う必要もないと思いますが」
 湊くんは丁寧に返したが、普段より口調が尖っていた。三津橋さんの社内SE を見下すような言動を快く思っていなかったらしい。
 「ああ、まあ、そうですね。じゃソースからコンパイルします。OS って何になりますか」
 しばらく湊くんと三津橋さんの間で、OS についてのやり取りが続き、他の出席者が口を挟む余地がなかった。伊牟田課長は何とか会話に参加しようとしてか、「ああ」とか「へえ」など無意味な合いの手を入れていたが、全く相手にされていなかった。
 インフラについての話が一段落すると、古橋さんは新ダリオスの構成に話題を切り替えた。開発言語は現行版と同じくJava だが、現行のソースは参考にしない方針だそうだ。
 「ま、いろいろ古いコーディングもされているようなので」三津橋さんが理由を説明した。「今後のメンテナンスも考えてのことです。現行と同じものを作ったのでは意味がありませんから。現行がこうなっているから、ということではなく、こういう機能が欲しいから、という視点で作った方がいいと思います」
 「よろしいでしょうか」木名瀬さんが手を挙げた。「ゼロベースで構築されるということですが、業務フローなどはどうやって確定されるんでしょうか。お恥ずかしい話ですが、残っている仕様書には必ずしも現状が反映されていません」
 「もちろん利用される方々にヒアリングを行う予定です。使っていない機能などもあると聞き及びますので、それらを除外することも必要でしょうし」
 改修の話が持ち上がってから、ぼくは時間を見つけて現行の仕様を大急ぎで確認し、承認ルートなど、かなり複雑なロジックになっている機能が多々あることを知った。木名瀬さんが言った通り、仕様書も完全ではなく、ソースと同期が取れていない機能も散見される。おそらく、エンドユーザからの要求発生の都度、機能追加を頻繁に行ってきた結果で、当時の経緯や意図は、担当者のメールボックスの中にしか残っていないのだろう。現行版に依存する必要はない、という三津橋さんの考えにも一理あるが、現行ソースを全く参考にしないのは危険な気がする。
 「これからヒアリングだと、開発期間が長くなりませんか」
 「その件に関しては」古橋さんが言った。「ヒアリングが終わった後、改めてスケジュールを決定するということで、伊牟田さまからお話をいただいておりますが」
 「ああ、そうそう」伊牟田課長は発言の機会を与えられて嬉しそうに答えた。「別に期限があるわけじゃないからね。不要不急ってことで」
 「せっかく再構築するわけですから」三津橋さんが付け加えた。「現行版にこだわっても仕方ないでしょう」
 現行のソースを解析する手間をかけたくないだけの言い訳に聞こえるが、ぼく自身、こうすべき、と言えるだけの経験値を持っているわけではない。木名瀬さんも納得はしていないようだが、小さく肩をすくめて、それ以上は追求しなかった。
 スライドが切り替わった。使用するJava のライブラリ一覧が並んでいた。ほとんどはApache Commons のライブラリでLang、Logging、Math、Codec、Collectionsなど見たことがあるものばかりだ。magi- で始まっているライブラリもいくつかある。マギ情報システム開発で作ったライブラリだろう。一通り眺めた後、ぼくは挙手した。
 「フレームワークは何を使うんでしょうか?」
 「フレームワークってどういう意味ですか?」
 質問を質問で返すなよ、と思ったが、フレームワークというだけでは曖昧すぎたのかもしれない。ぼくは言い直した。
 「Web フレームワークのことです。Struts とかSpring とかPlay とかいろいろあると思うんですが」
 「ああ、はいはい、そういう意味ですか。うちじゃあ、そういうのは使わないことにしてるんです」
 「え、フレームワークを使わないんですか?」ぼくは驚きながら訊いた。「じゃあどうやってWeb システムを作るんですか」
 三津橋さんは小さく笑った。
 「ご存じないかもしれませんが、Java にはサーブレットという仕組みがあります。Web のシステムを作成するための仕組みです。それを使うんですよ」
 そこまでの素人だと思われていたとは。伊牟田課長はシステム開発室のことを、何と言って説明したんだろうか。
 「Servlet ぐらい知ってますよ。つまりServlet とJSP で作る、という意味ですか?」
 「そういうことです。うちで独自に改良したServlet を使いますがね」
 「この」古橋さんがライブラリの一つの上でカーソルを回転させた。「magi-servlet-base.jar というのがそれにあたります」
 「そのソースを見せてもらうことってできますか」
 「ええ?」三津橋さんはまた笑った。「いえいえ、Java をかじったぐらいじゃ読めるものじゃないですよ。それに社外秘なんでソースの開示はできませんね」
 「それは紳士協定的な意味で、ということですか」
 「はあ? いえ、御社に納品するのはjar ファイルのみになる、ということです」
 意味がよくわからなかった。社外秘だなんだといったところで、jar ファイルがこちらの手元にある以上、逆コンパイルすればソースを確認することはできるのだが。まさか逆コンパイルを知らないわけでもあるまいに。
 「さきほど、うちでメンテナンスできるように、ソースを納品してもらえると仰っていましたが」
 「失礼しました」古橋さんが頭を下げた。「このシステムのために作成したソースについては、もちろん全て納品させていただきます。弊社の資産にあたるmagi-servlet-baseは対象外となります」
 「そのmagi-servlet-base に不具合が発生したら、どうすればいいんですか?」
 まるで人格に対する侮辱の言葉を浴びたかのように、三津橋さんが不快そうな視線を向けた。
 「何年も使っていて実績があるプログラムなので、そんなことはありえないですね」
 「おいおい」伊牟田課長が苛立ったように言った。「イノウーくんよ、それぐらいにしとけって。細かいところはプロに任せときゃいいんだよ。グリーンだよ」
 この人、どうしてそこまでマギ情報システム開発を信頼できるんだ、とぼくは苛立ちと疑問を感じた。まさか、再構築発注の見返りにキックバックを要求しているとかだろうか。いや、以前、木名瀬さんが言っていたように、伊牟田課長がそこまでの悪人だとも思えない。単に自分が「できない」ベンダーを選んだと認めたくないだけだろう。
 次のスライドはパッケージ一覧だった。現ダリオスの機能ごとに分類されている。受注管理のreceive、発注管理のorder と2 つの大分類から、パッケージの階層が枝分かれしている。よく分析している、と言いたいところだが、ぼくはすぐに現行版のパッケージ構造を踏襲していることに気付いた。しっかり現行ソースを参照してるじゃないか、と思いつつ、他にも気付いたことがあり、ぼくはまた手を挙げた。
 「作成するのって、これだけですか?」
 「そうですが?」三津橋さんが鷹揚に頷いた。「何か問題でもありますか」
 「データの移行を行いますよね。移行プログラムは別途、作成ということですか?」
 「移行プログラムですか? そんなのを作ることは考えていませんがね」
 「作らないんですか? じゃあ、どうやってデータ移行するんですか?」
 「そんなのどうにでもなりますよ」あからさまに苛立った声だった。「Access とかに取り込んで、移行先に登録していくとかですね。一度しか使わない処理に、わざわざプログラムなんか組まないですよ、普通」
 普通はどうだかしらないが、サードアイではデータ移行用のプログラムは、しっかり作るのが通例だった。確かに一度しか実行しないが、データ移行に失敗するとカットオーバーを延期することになるので、予行演習を行った上で実行するためだ。
 「もし失敗したら......」
 ぼくは言いかけたが、三津橋さんの笑い声に遮られた。
 「いやいや、最初から失敗することを前提にしていてどうするんですか」
 これにはさすがに怒りが湧いた。失敗を前提にするのと、失敗を想定してガードを張っておくのでは、根本的に意味が異なる。人間が作る以上、常に不具合が発生する可能性を除外できないから、ユニットテストを始めとするテストツールが存在するのではないか。
 「さきほどmagi-servlet-base についても、不具合がない、という前提のお話でしたが」ぼくは内心の怒りを押し殺して訊いた。「ダリオスの再構築で、改修や拡張が必要になることもあるんじゃないでしょうか」
 古橋さんは三津橋さんを見た。三津橋さんは、仕方なさそうに答えた。
 「ま、そういうことがあった場合は、対応させていただきますよ。もちろん保守契約の範囲外となりますが」
 保守契約ってなんだ? ぼくは質問しようとしたが、木名瀬さんの方が早かった。
 「保守契約という話は初めて聞きました」木名瀬さんは、来客にではなく、伊牟田課長に向かって言った。「どういう内容ですか」
 「保守契約だからな」伊牟田課長は大したことではない、というように手を振った。「そりゃ、いろいろだろう」
 「ちょっと待ってよ、伊牟田さん」初耳だったらしい越中谷課長が戸惑いの声を上げた。「保守契約って費用はどうなってんの?」
 伊牟田課長は古橋さんと顔を見合わせた。互いに、説明を押しつけあっているようだ。数秒後、古橋さんが諦めたように言った。
 「年間保守料という形でいただくことになっております」
 「いくら?」
 越中谷課長のストレート過ぎる問いに、古橋さんは金額を口にした。ぼくの基本給7 ヵ月分だ。数字を耳にした途端、越中谷課長は渋面で唸った。
 「保守料にしてはかなり高額のようですが」木名瀬さんが不信感を隠そうともせず訊いた。「それでもmagi-servlet-base については別料金となるんですか。改めてうかがいますが、年間保守の内容はどういったものになるのですか?」
 「毎月、一定の工数を超えない改修について、無償で対応させていただくことになっております」
 「一定の工数とは具体的には」
 「3 人日でお話させていただいております」
 その瞬間、ぼったくり、という言葉を思い浮かべたのは、ぼくだけではないはずだ。

 (続)

 この物語はフィクションです。実在する団体名、個人とは一切関係ありません。また、特定の技術や製品の優位性などを主張するものではありません。

Comment(21)

コメント

匿名

数ヶ月後、数年後には倒産してるのにどーすんだ?

匿名

これはやばい事が起きてるみたいですねぇ(ゲス顔)

yupika

ここまで酷いベンダーも見たことないけど実話ベースだったら怖いな。
これ、確かに納品して会社潰して、そのマギサーブレットとかいうのをリネームして同じような商売してそう笑

匿名

毎週読まずにはいられないけど、月曜朝からイライラする・・・

匿名D

いろいろ書きたいところだけど、どうせ皆さん同じ事思ってるだろうし。
つか、こんなザマでどうやって、
伊牟田グチ氏が今の地位を保っているのか、それが信じられん。


ベンダーの方もひどいけど。
まともな思考の持ち主なら、絶対に失敗しないなんて、
絶対に断言なんかしないわ。

匿名

SQLは英語だと確かにシークウェルって読むけど、三橋氏は外国かぶれですか。
それにしても伊牟田氏はいちいち発言がむかつく、って思わされてるのは作者さんの掌の上で踊らされてる感が 笑

匿名

是非倒産後の結果までやって欲しい。

匿名

伊牟田みたいな人は会社に生存していて仕事で関わらなきゃ案外いい人だったりする
オヤジギャクの連発だって飲み会とかならウケるんだよね

N

ダリオス改修の主な理由が下請法対応
マネジメント三課の業務が下請けの管理
法外な保守料

…う~ん
伊牟田課長は悪人ではないそうだけど、う~ん…

なんなんし

みんな騙されるな
シークエルはスター・ウォーズネタにするからだぞ(嘘

なんなんし

冗談はさて置き
シークエル(後日談)ってなんかの伏線かなぁ
とは思った

匿名希望

9/7 9:12 さんにめっちゃ共感する
読みたいけど、すごいイライラする…
イノウーより、自分は大人じゃないみたいだ…

匿名

>伊牟田課長は悪人ではないそうだけど
無能な働き者は・・・

ほげ

データ移行を甘く見すぎなのはあかんやろ、と思うけど、いまんとこはまあまだ「クセの強いベンダやな」って感じ。

というかイノウーの側にも意識のすれ違いがあるというか
「逆コンパイルを知らないわけでもあるまいに」はイノウー側の発想で、向こうは当然逆コンパイルは知っていつつ「ユーザは知らんやろこんなもん」と思ってそうで、
たぶんこのすれ違いはテスト工程辺りでギャップとして顕れそうで怖い。ベンダ側に(ユーザには言っても分からんだろうからこっちで決めるか)の
裁量を想定より深く見積もられる危険があるわね。

なんなんし

逆コンパイルの件はイノウーが経験不足かなと
建前上は契約で禁止してるだろうから
そういうの発覚するとめんどいから
そこそこ大手でまともな会社はやらない

匿名

オフショア丸投げの会社でシークエルを常用している場合があった(実話)
エスキューエルだとエンジニアに通じないから癖になっているんだと思う

匿名

普通PostgreSQLをmakeしてまで最新版を入れるものでしょうか。
最新版でないと入っていない機能が必要だなど理由があるなら納得できるんですけれども、データベースサーバにわざわざビルド環境を用意しないといけないし、アップデートも全部tarball持ってきて自分でやる必要があるうえ、失敗時は誰も頼れないしで、基本的に面倒なだけに思いますが。
もちろん作中では明らかな悪役キャラが同じ主張をしているわけで、今後どのような理由付けがされるのか楽しみではあります。

へそまがり

とっても面白い。がんばれ伊牟田課長! どんでん返しに期待。

人形つかい以来

まだやってたのかw
継続は力なり。世相も反映して素晴らしい創作力だと思います。懐かしく読んでしまいました。

匿名

毎度ながらシステム屋から見てクソむかつく人を書かせたら右に出るものなしですよねー

・シークエルってIBMの製品名からの話なんでそう読むのってどうなんだと思ってました。たとえ欧米でそう呼んでる人がいても。でも全く知らないっていうのはある意味若いのかもと。
・逆コンパイルは障害調査などのためなら著作権のあるものでも許されるという事例があったように記憶してます。もちろん、契約条項にやっちゃダメって書いてたらダメでしょうけど(パッケージなんかそうですよね)
・最新版をmakeしていれることは私のまわりではあります。rpmのってけっこう古かったりしますからねえ。httpdでも同様です。

ってなのはあくまで私のまわりでの普通、ですけどねえ。

匿名

postgreSQLならpostgresql.org行けばマイナーなディストリビューションでなければ最新版(βではない)のパッケージがあるよね。

コメントを投稿する