冷たい方程式(19) 指揮官不在のチーム
2012/05/21 8:00:00
幸いムツミさんは、めまいと貧血を起こしただけで、たいしたことはなかった。ただし真面目で責任感も強い彼女のことなので、自分の病状について過少申告している可能性は十分にある。寝不足、ストレス、少ない食事、プレッシャーなどなど、体調を崩す要因を、特売セールが開けるほど抱えているのだから。
「とにかく、今日は帰ってゆっくり休みなよ」
そういうあたしの勧告に、ムツミさんは素直にうなずき、ホライゾンチームのメンバーたちに何とかいくつかの指示を出した後、申しわけなさそうに開発室を出た。
あたしは受付に電話して、タクシーを呼んでもらった。すぐ近くに営業所があるので、数分で到着するはずだ。エントランスまでムツミさんを送っていき、タクシーが来るまで付き添っていた。
「サオリさん、ご迷惑をおかけしてすみません」ムツミさんはかすれた声でつぶやくように謝った。
「いいから。疲労が出たんだよ、きっと。こっちのことは心配しないでね。明日も無理しなくていいから」
「はい」
ムツミさんがタクシーで帰っていった後、あたしはITマネジメント課に戻って、渕上マネージャに顛末を報告した。渕上マネージャは無表情でうなずいた。
「今日は、君がホライゾンの人たちをフォローしたまえ」渕上マネージャはそう言うと受話器を取った。「私はホライゾンに人員の補充が可能かどうか聞いてみる」
――心配してるフリぐらいすればいいのに
あたしはむかっ腹をたてながら、臨時開発室へ向かった。ドアを開けると、3人のホライゾンメンバーが一カ所に固まって、何やらヒソヒソ話をしていたが、あたしの顔を見ると、慌てて各自の席に散っていった。
中坊か、こいつらは、と思いつつ、あたしは笑顔を作って話しかけた。
「皆さん、自分のタスクについては分かっていますか?」
彼らは顔を見合わせたが、1人がおずおずとあたしを見た。
「担当のタスクはありますが……」
発言したのは、みたところ一番年長に見える男性だ。年長といっても、せいぜい25、6歳といったところだろう。臨時入館証の名前は近藤となっている。
「じゃあ、今日はそれを続けてください。何か問題点がある場合は、私か、いなければ亀井に聞いてください」
3人はそれぞれうなずくと、不安そうな視線を交わしながらも、それぞれの担当作業に戻っていった。あたしはそれを確認すると臨時開発室を出た。
自席に戻ると、亀井くんが心配そうな顔で寄ってきた。
「片寄さん、大丈夫ですか?」
「まあ、自分で歩いてたし、熱もないようだったから、たいしたことはないと思うけど」
「そうですか」亀井くんはそわそわしていた。「お見舞いに行った方がいいですかね」
「あんたねえ」あたしは亀井くんを睨んだ。「1人暮らしの女性の家に何しにいくつもり?」
「でも心配じゃないですか。1人で熱出して倒れてたらどうするんですか。先輩、心配じゃないんですか?」
「心配だけど、私たちの出る幕じゃないでしょ。ホライゾンシステムの方でどうにかするだろうし」あたしは、あえて冷たく突き放した。「いいから、仕事しろ」
渋々、亀井くんは仕事に戻った。
あたしもやりかけのシフト管理機能の設計を続けたが、1分も経たないうちに、ホライゾンチームのメンバーが入ってきて中断させられた。さっき、ムツミさんが倒れたことを告げに来た男性だ。
「あの、よろしいでしょうか」
早速来たか。あたしは笑顔で応じた。
「なんでしょう」
「社員権限マスタメンテ画面をやってるんですが、上位職位の勤怠情報の参照権限がうまく出ないんですけど」
あたしは意味がよく分からず相手の顔を見た。胸にぶらさげている臨時入館証には「鈴木」と印刷されている。
「うまく出ないって、どういう意味ですか?」あたしは社員権限マスタのレイアウトを思い浮かべながら聞き返した。「選択肢が画面に表示されないということ?」
「ラジオボタンが表示されなくて……」
「ラジオボタンが?」ひょっとして選択肢データが、テーブルにないんだろうか。「選択肢データのレコードは?」
返ってきたのは沈黙だけだった。
「まあいいか。ちょっと見ましょうか」
あたしは先に立って臨時開発室に入った。残りの2人に「おつかれさま」とあいさつしつつ、鈴木くんの席に座った。
まず、teratermを起動して、DBサーバにpostgresユーザーでログインした。psql でデータベースを開き、選択肢データをselectしてみた。
「うん。データはちゃんとありますね」あたしはつぶやいた。鈴木くんは、背後霊のようにあたしの後ろに立って、遠慮がちにモニタを覗き込んでいる。
あたしは、DBサーバからログアウトしてから、Eclipseに切り替え、メンテナンス画面のHTMLソースを開いた。とたんにため息が出た。
「ああ、これじゃ出ないですね」あたしはマウスで、該当行を反転表示させた。「ラジオボタンの場合は、radio に直接id を振るんじゃなくて、その外側のspanタグにidを振らないと」
「あ、そうなんですか」相手は感心したように言った。「知らなかったです」
「え?」あたしは愕然として椅子ごと振り向いた。「知らない? 今頃?」
「はあ……」
あたしは呆然と相手を見た。
「本当に知らないの?」笑顔も丁寧語も忘れて、念のために確認してみたが、鈴木くんはこくこくとうなずくだけだった。あたしは言い様のない脱力感に襲われた。
――単なるケアレスミスじゃなかったのかよ
「え、ちょっと待って。ラジオボタンがある画面は、これだけじゃないよね。これまで、どうやってたの?」
「ええと……」鈴木くんはうろたえたように視線をキョロキョロとさまよわせた。「普通にタグに書いて……」
「普通って……ちょっと、前に作った画面のHTMLを何でもいいから開いてみてくれる?」
あたしは席を譲って、後ろに立った。
鈴木くんは不安そうにあたしを一瞥すると、マウスでHTMLテンプレートの1つを選んで表示した。休憩時間設定マスタのメンテナンス画面だ。この画面にも複数の項目で、ラジオボタンを使用していて、その選択肢はテーブルから取得しているはず。
HTMLテンプレートは正しく記述されていた。一応、対応するPageクラスに切り替えてみたが、正しく定義されている。
「ちゃんとできてるじゃない」あたしはソースを指した。「これと同じようにやれば出るはずだけど」
「あ、そうですか」鈴木くんは安心したような笑顔になった。「じゃあ、それでやってみます」
あたしはうなずいて戻ろうとしたが、何かが引っかかった。
「一応聞くけど」あたしはドアのところで、顔だけ振り向いて聞いた。「今のソースは、鈴木さんが書いたソースだよね?」
「はい。半分ぐらいですけど」
――半分?
あたしは戻るのを中断して、向き直った。
「半分って、残りの半分は誰が書いたの?」
「片寄先輩ですけど……」それがどうかしたか、という顔だ。
「ちょっともう1回見せて」
あたしは鈴木くんを押しのけるように座ると、バージョン管理システムからソースの変更履歴を呼び出した。1日に3回コミットすること、という、渕上マネージャが決めたルールは厳密に守られているようで、所定の時刻に更新されている。適当に2日前ぐらいのHTMLソースを開いてみた。
これでは、HTML上の値を表示しているだけだ。idも振ってないので、Pageクラスとの関連付けがない。
その数回後の変更履歴を開くと、
と正しくコーディングされている。その最終更新者はムツミさんのユーザーになっていた。
「そういうこと……」あたしは小声でつぶやいた。
どういうことか、わかってきた気がする。
この3名は、Teedaをほとんど理解できていない。idの意味も、Pageクラスの意味も分からないまま実装していたんだろう。
おそらくムツミさんは、というか、ホライゾンシステムは、このプロジェクトにアサインした開発要員に、十分な事前教育を受けさせることができなかったんじゃないだろうか。それとも、他の開発案件に要員を取られてしまったのか、それはホライゾンシステムの内部事情なので分からないけど。それでも、対外的には、つまり、うちに対しては、ムツミさんをリーダーとする数名は、みなTeeda ができることにして開発を進めていた。
最初は、それでもうまく進んでいたのだと思う。ムツミさんがうまく割り振って、他のメンバーにはpure javaの範囲で済むようなロジック部分を実装させる。ムツミさん自身は、それらを片っ端からTeeda仕様に適合させていく、という方法で。要するに、ムツミさんがフィルタリングすることによって、各メンバーがそれぞれの画面を実装しているように見せかけていたわけだ。
――そりゃ寝る時間なくなるわ
あたしは思わずうなった。3人のホライゾンメンバーの顔に、一様に不安そうな表情が浮かぶのが見えたが、それを気にかけているどころではなかった。
――これはちょっとまずいなあ
これが渕上マネージャにわかったら、どういう事態になるんだろうか。頭から湯気を出して怒り狂う、というのは、ちょっと想像できない。むしろ、冷酷にホライゾンシステムにペナルティを課す、という方がありそうだ。取りあえず、このことは黙っていることにした。
「ちょっと聞きたいんだけど」あたしは鈴木くんに、というより3人全員に向かって聞いた。「今まで、ホライゾンシステムさんでは、どういう開発方法を取ってきたの?」
「どんなと言われても……」鈴木くんは困惑した表情を浮かべていた。
「えーと、SuperControllerというのがあるんです」近藤くんが答えた。「社長が昔作ったらしいんですけど。それを使って開発してました」
「SuperController? なに、それ?」
そのメンバーがたどたどしく説明してくれたところによると、1つのサーブレットに対して、パラメータによって画面を遷移させる仕組みがあるらしい。例えば、gamenKey=A01&action=C011 のように。これによって、プロパティファイルに定義したクラスがロードされ、実行され、結果が返される。結果によって遷移先が決まるようだ。
最初に八木社長が独自のフレームワークを使わせてくれ、と言っていたのは、これのことだったのだろうか。
「何しろ、ずっとそればかりでしたから、SeasarとかTeedaなんて初めてやりました」
「なるほどね」
ひょっとすると、このいかにも頼りなさそうな3人も、そのSuperControllerとやらを使って開発を行う分には、十分、優秀なのかもしれない。八木社長があれだけ安い見積もりを提示できたのも、SuperControllerを使う、というもくろみがあってのことだったということなのか。
あたしは、途方に暮れて3人の顔を見たが、そこに見いだしたのは、同じように途方に暮れている顔だった。
(続く)
この物語はフィクションです。実在する団体名、個人とは一切関係ありません。また、特定の技術・製品の優位性などを主張するものではありません。




リーベルG
