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

魔女の刻 (5) 白い魔女

»

 どんな業界でも同じことだろうが、時代のニーズやテクノロジーの進歩によって、否応なしに変化の波にさらされているのはIT 業界も変わらない。日本有数のSIer であるエースシステムも例外ではなかった。むしろ図体がでかい分、あまたのIT ベンダーに比べて影響度は大きかったのかもしれない。もし5 年前にエースシステムが、今回の規模の案件を受注したなら、数万人月を費やしてフルスクラッチで構築することになっただろうし、誰もがそれを当然だと思ったことだろう。あいにく21 世紀が5 分の1 を消化しようとする昨今では、フルスクラッチという手法は、もはや有力な選択肢ではなくなっている。
 エースシステムは、自社内に実装部門を持たないので、技術的なノウハウの蓄積は皆無だ。そのかわり、国内外のIT ベンダーが開発した製品やフレームワーク、サービスを金を惜しまず著作権ごと買いあさり、エースシステムでパッケージ化して販売している。くぬぎ市再生プロジェクトでエースシステムが導入したのは、そんなパッケージの1 つ、Viloconyだ。
 Vilocony は、virtual relocatable container yard ―― 「仮想再配置可能コンテナヤード」のことで、多数のモジュールを、コンテナという単位で配置し、それらを組み合わせて複数のWeb アプリケーションとして公開できるフレームワークだ。
 「ヴァイロコニーは」白川さんはTV に表示した構成図を示しながら説明した。「複数の物理サーバを束ねて1つの仮想空間を構築し、その中にコンテナを配置します。外部からは、いくつかのWeb アプリケーション、というか、いくつかのサイトに見えますが、内部は複数のコンテナが有機的に結合した複雑な環境になっているわけです」

vilocony.png

 「すいません」一人のプログラマが手を挙げた。「御社とは何度かお仕事をさせていただいていますが、そのフレームワークは初耳です。これまで、どのようなシステムで導入されたんでしょうか」
 「あー、多摩アプリケーション開発の外川さん、痛いところつきますねえ」白川さんは悪戯っぽく笑うと、ぺろりと舌を出してみせた。「実業務に投入するのは、これが初めてです」
 「そうでしたか」つられて笑顔になった外川さんは頷いた。「じゃあ、今回、実地テストも兼ねてるということでしょうか」
 「そういうわけでもないんです。検証には十分な時間をかけていますよ。私自身、Vilocony の実用化には関わっていましたから。弊社内でも、4 つほどの社内システムが、Vilocony 上に移植されていて、トラブルなく稼働しています。これまで実戦投入されなかったのは、ちょっとした理由があります。何だか知りたいですか?」
 「知りたいですね」
 「理由の1 つは、クラウド環境のような複数の物理サーバを展開できる規模のシステムでないと十分な能力を発揮できないことです。本来はAWS やAzure、GCP などのメジャークラウドサービス向けに開発したパッケージですが、今回、このプロジェクトに導入するのは、くぬぎ市のクラウドシステムに合わせてカスタマイズした、KNG Edition となります」
 つまりVilocony は、少なくともKNG Edition については、RC 版というわけだ。最終テストをエンドユーザにやらせて、初期費用とランニングコストもふんだくる。いい商売だ。
 「もう1 つの理由は、下世話な話ですが価格です。Vilocony は基本パッケージの販売価格が8 桁になります。サポートエンジニアリング料を含む月額利用料は最低でも120K です。民間企業の経理システムとか販売管理システムに導入を企図しても、稟議が通るとは思えませんよね」
 「あの」私は思わず手を挙げた。「どうしてそんなに高いんですか」
 「差し支えない範囲でお答えするとですね、サードアイの川嶋さん」白川さんは微笑んだ。「まず、Vilocony の原型となるフレームワークの権利購入コストと、パッケージ化にともなう開発費が回収できていないことが最大の理由です。次に、Vilocony はインストールすればすぐに使えるという製品ではないこともあります。導入にあたっては、対象の環境について専門技術者によるリサーチと、初期設定作業が必要になり、環境にもよりますが、およそ2 週間から5 週間を要します。その人件費が含まれるためです。くぬぎ市への導入は、かなりディスカウントさせましたが、それでもまだ高価です」
 「......」
 「私としては」白川さんはため息をついた。「思い切って価格を下げてでも、導入実績を増やした方がいいと思うんですけどねえ。まあ、こういうことを決めるのは、頭の固い上の人たち、って決まってますから」
 控えめな笑い声が数カ所で上がった。白川さんは一緒になって笑った後、真面目な顔になって説明を続けた。
 Vilocony の特徴は、再配置可能、という言葉から想像できる通り、稼働中でもコンテナを入れ替えたり、実行順序を変更可能なことだ。これは、コンテナ同士が直接通信するのではなく、コンテナコーディネータ、および、コンテナドライバが、コンテナ間の情報を流通させることで実現している。たとえば、コンテナA の機能を変更したい場合、修正したコンテナA' を配置した後、コーディネータ・コントローラによって、コンテナA に対する接続を、A' に変更するだけですむ。
 白川さんは表示を切り替えた。

container.png

 「これが、みなさん実装してもらうコンテナの概念図です。このコンテナは、完全に疎結合な構成になっていて、単体でも完全に実行できる形式になっています。これは、みなさんが完全に単体レベルの作成、テストに集中できる、ということを意味します。これらのコンテナを、どのように配置するかを設計するのは弊社の仕事です」
 そりゃあ楽だ、という呟きが周囲で上がった。その1 つは細川くんの口から出たものだった。
 「楽、かな」
 私が思わず洩らした言葉を、細川くんは自分への反論だと取ったようで、怪訝そうな顔を向けられた。
 「え、楽じゃないですか?」
 「そりゃあ単体レベルに集中できるのは楽かもしれないけどね」
 細川くんは気付いていないようだが、私たちが楽をできるのは、エースシステムの設計が的確であった場合だけだ。白川さんはVilocony の実戦投入はこれが初めてだと言った。つまり、実業務での設計ノウハウはないのだ。コンテナ配置の設計がいい加減だと、どうしても試行錯誤の繰り返しになる。
 通常のWeb アプリケーションであれば、実装の段階で仕様の矛盾や洩れを発見することができるが、私たちの関与が完全に独立したコンテナに限定されるとなると、私たちは与えられた仕様が正しい歯車であることを信じて実装するしかない。
 同じ懸念を抱いたらしい東海林さんが、勢いよく手を挙げ、立ち上がった。
 「そのコーディネータの情報は、こちらにも落としていただけるんでしょうか」
 「いえ、今のところ考えていません」白川さんはわざとらしく首を傾げた。「みなさんは、コンテナの作成と単体テストに集中していただければ、と思います」
 「単体で完結するコンテナといえども、全体の中の位置づけを認識していないと、正しく実装することはできないと思いますが」
 「それは、MVC に代表される従来型のWeb アプリケーションの概念に囚われすぎている意見ですね。Vilocony のコンテナが疎結合、という言葉は、文字通りの意味です。Model - View - Controller を互いに意識しないと実装できないMVC のような不完全な仕組みではありません」
 「失礼を承知で言わせていただければ」東海林さんは反論した。「コーディネータの設計というか設定を行うのは人間ですよね。その設計が不完全だと、ムダなコンテナを多数作ることになりかねないのではないでしょうか」
 東海林さんの言葉を言い換えると「あなたたちの設計は信頼できるんですか」となる。エースシステムに関するウワサが事実を反映しているならば、白川さんが激怒してもおかしくない。だが、案に相違して白川さんは平静な顔で頷いた。
 「もちろん私は、弊社が行う設計がパーフェクトだ、などと主張するつもりはありませんよ。おそらく最適な設定値を得るためには、幾度となくトライアンドエラーを繰り返す必要があるでしょう。東海林さんが言ったように、ムダなコンテナの実装が発生することも織り込み済みです。私が最初の説明会で言ったことを思い出してください。東海林さん、おわかりでしょう?」
 「成果物に対してではなく、拘束時間に対して対価を支払う、ですか」
 「そう、それです」白川さんはサムズアップしてみせた。「みなさんの会社とは、契約レベルで話がついていることです。おかげで、心おきなくみなさんの心身を酷使できるというものです」
 潔いと言ってもいいぐらいの開き直りだ。東海林さんも苦笑した。
 「どうせなら、こちらの工数を設計部分にも回してはどうでしょう。ムダな時間を減らせると思うのですが」
 理にかなった東海林さんの提案に対して、白川さんは笑みを浮かべながらも、考慮の余地なし、と言わんばかりに首を横に振った。
 「あいにくVilocony 技術の大部分は社外秘です。そうでなかったとしても、コンテナコーディネータの設定は、弊社内で2 週間の研修が必要となります。簡単に習熟することはできません」
 「まだ開発は始まってもいません」東海林さんは反論した。「今から、その研修を受けるということは難しいんでしょうか」
 「その予定はありません。私は、弊社が用意した要員のみでコーディネータの設定は十分だと考えています。これは決定事項です」
 東海林さんは諦めたように頷くと腰を下ろした。入れ替わるように別の男性が挙手した。TSD の草場さんだ。
 「気になってるんですが、A フレはどこで登場するんでしょうか」
 「コンテナは、それ自体で完結したWeb アプリケーションになりますが、Vilocony 上で動作させるために、一定のルールに従う必要があります。jQuery のプラグインや、Web サービスのSOAP のようにですね。A フレは通常のWeb アプリケーションを、コンテナとしてVilocony にコンバートするためのツールとして使用します」そう言った後、白川さんは笑顔を見せた。「草場さんが懸念されていることはわかります。昨年の開発で、TSD さんはA フレの不具合のせいで、かなり苦労されたと聞いていますから」
 「ええ」草場さんも顔をほころばせた。「苦労しました。付け加えるなら、かなりという表現が控えめすぎるぐらい苦労しました」
 「ですよね。すいません、できの悪いフレームワークで苦労させてしまいまして」
 ペコリと頭を下げた白川さんを見て、草場さんは慌てたように手を振った。
 「いえいえ、そんな、口で言うほどではなく......」
 「よかった」顔を上げた白川さんは白い歯を見せた。「大丈夫ですよ。A フレはバージョンアップしてます。去年までに報告された不具合は、全て解消済みだとのことです」
 「昨年使用したバージョンは4 だったと思いますが、今回のはいきなり5.6 です。かなり変わってるんでしょうか」
 「基本的なコンセプトは変わっていませんが、バージョン5 系は、特にVilocony 向けの機能追加がされているんです」
 白川さんは草場さんに座るように合図すると、タブレットを操作した。TV の表示が切り替わり、HTML ソースの一部が表示された。1 行めからinput タグが並んでいるが、form タグもbutton タグも見えない。
 「これはVilocony 学習用に用意されたサンプルの1 つで、会員登録画面の一部、という想定です。ご覧のとおり、氏名、氏名かなの入力と、ラジオボタンによる性別のみが記述されています。これは前後が省略されているわけではなく、これが1 つのHTML テンプレートになります。もちろん、このままでは単体テストができないので、A フレが提供するモックにはめ込んで動作させます。対応するJava ソースも同様です。HTML からJava ソースを生成することも、Java ソースからHTML を生成することもできます。どちらの場合も、所定のExcel ファイルに既定の書式で項目などを記述することで、基本的なコードが生成されます」
 画面が切り替わった。やはりHTML ソースだが、こちらはbutton タグのみだ。
 「これがさっきの画面項目の実行ボタン部分です。言うまでもなく、実際にこんな粒度でコンテナを作成することはありません。この他、バリデーション機能、入力内容チェック機能、Cassandra への登録、更新、削除機能などのコンテナがあります。HTML がなく、ロジックだけのコンテナも、もちろん存在します。それらを、Vilocony のコーディネータで結合してやると、このように1 つの画面が完成します」
 表示されたのは、ブラウザ上で動いている会員登録画面だった。
 「どうですか、東海林さん」白川さんは、いきなり東海林さんを名指しした。「サードアイさんが使った時代に比べて、A フレが進歩しているのがおわかりになりましたか」
 「そのようですね」東海林さんは慎重に答えた。「実際に使ってみないと、なんとも言えませんが」
 「ですよね。その希望は早速かなえられます。すでにご連絡した通り、今週いっぱい、みなさんにはA フレ習熟のトレーニングを受けていただきます。午後から、弊社の横浜支部から専任のトレーナーがやってきます。今日は21:00 まで。明日からは9:00-20:00 の予定です」
 いきなり11 時間労働か。息子の世話を母に頼んでおかなければ。
 「言っておきますが、21:00 までというのは、あくまでも予定です。毎日、課題が20 問近く出題されます。課題を提出し、合格点を得られるまで、何時まででもトレーニングは継続されます」
 プログラマたちはざわめいた。抗議らしき声も上がっている。白川さんは、それらの声を笑顔で黙殺して続けた。
 「それからですね、一定の水準に到達しない、とこちらが判断した場合、その個人、または会社は、今回の開発から外れていただくことになります」
 ざわめきが大きくなった。
 「いっそ」細川くんが囁いた。「わざとトレーニングの手を抜いて、この仕事から外れる、ってのはどうでしょう」
 「アホか」
 「では、これから各自の席に移動してください」
 あらかじめ配布されていた座席表に従って、私たちは自分の席にたどりついた。サードアイの3 人はクライアント常駐席に近い窓際の並びだ。同じ島には、TSD からの2 名が向かい合う席に座った。
 「近くですね」草場さんが親しげに笑った。「よろしくお願いします」
 その言葉と視線は、主に私に向けられていた。私は少し戸惑いながら頷いた。
 「あ、はい、こちらこそ」
 全員が着席すると、白川さんが告げた。
 「では、13:00 まで昼休憩とします。それまでに昼食を済ませておいてください。それから各自のPC を起動して、ログインできることの確認もお願いします。午後からは、A フレのトレーニングを開始します」
 「すいません」東海林さんが手を挙げた。「説明になかったんですが、喫煙室はどこにあるんでしょうか」
 白川さんは東海林さんに口元だけの笑顔を向けた。その目には、害虫に向けるのにふさわしい冷ややかな光が浮かんでいる。
 「タバコを吸いたい人には、専用の喫煙場所があります。まず開発センターを出て、エレベータか階段で1 階まで降りてください。オフィスエントランスを出たら、北西の方向に50 メートルほど進み、市役所前の交差点を反対側に渡ります。市役所の外周を反時計回りに進み、角を西側に曲がると、市役所職員用の喫煙所があります。開発センターで勤務する人は自由に出入りできるので、心おきなくニコチンを摂取してください」
 「......つまり、このビルには喫煙室はないと?」
 「元々は、このフロアにあったのですが、昨年末に撤去しました。個人の嗜好に口を挟むつもりはありませんが、喫煙などという何のメリットもない悪癖は、この際捨てることを推奨しますよ。環境にもお身体にも優しいですしね」
 そう言うと、白川さんは返答も待たずに、部下を促して、さっさと出て行ってしまった。東海林さんは肩をすくめた。
 「やれやれ。肩身の狭い世界になったもんだ」
 「去年、禁煙したんですよね」私は笑いを噛み殺した。「また復活しちゃったんですか?」
 「いや、今のところ続いてる。選択の余地がなくなるのがムカつくだけだ」
 「私も一昨年まで吸ってました」草場さんが言った。「禁煙外来でやめたんですよ。でも繁忙期とかでストレスがかかると、つい手がタバコの箱を探してるんですよ。無意識のうちに」
 「ああ、同じですね。さっきの話じゃ、今後、かなりストレスがかかることになりそうじゃないですか。その時に備えておこうかと思ったんですがね」
 「ところで」草場さんは立ち上がりながら言った。「昼を一緒にどうですか。うちは車2 台で来てるんで、全員で行けますよ。県道を横浜方面に走ったところに、うまい塩ラーメンの店があるんですが」
 私たちはその提案を歓迎し、一斉に席を立った。東海林さんが「緊急時の避難経路の確認を兼ねて階段で降りてみよう」と言い、私たちは2 箇所ある非常階段のうち、近い方に向かった。
 「そういえば」薄暗い階段を途中まで降りたとき、私は草場さんに訊いた。「最近、エースシステムさんとお仕事されたんですか?」
 「ええ」草場さんは頷いた。「K自動車関連の仕事で」
 「白川さんと面識があったんですか?」
 「いえ。でも、ウワサは聞いたことがあります。あの人、エース社内で何と呼ばれているのかご存じですか?」
 「さあ。女王様とか?」
 「近いですね。白い魔女、だそうです」
 反射的に私が連想したのはナルニア国物語の映画だったが、白川さんの容姿はティルダ・スウィントンとは似ても似つかない。
 「ちなみに夜の女王の二つ名を持っているのは、上級SE の高杉さんです」
 東海林さんと細川くんが、ウンウン、と頷きあっているのを尻目に、私は草場さんに訊いた。
 「でも、どうして魔女なんでしょう? 見かけによらず意地悪だとか?」
 「その話を教えてくれた人は、誰もが当初のカットオーバーは難しいと思うプロジェクトを、しっかり完成まで持って行くからだと言ってましたね。エースの人ですから実装スキルはないんですが、その直前、つまりモジュール、今回ならコンテナですね、その粒度を決めるセンスが天才的なんだそうです。プログラマではないのに、プログラミング的な思考回路を持っているというか」
 「確かに有能そうな人だとは思っていましたが。天才的ですか」
 「白川さんの設計を見ると、大抵のSE は戸惑うみたいです。モジュール構成図を見ても、どうしてこんな配置になるのか理解できない。何も考えずに、行き当たりばったりに決めたみたいに見える。でも、実際に配置して動かしてみると非常に無駄なく動作するし、それ以上の方法などないんじゃないかと思えるぐらいしっくりくる。エースの人に言わせると、まるで魔法のようだ、と」
 「それはすごいですね」
 話しているうちに地階に到着した。草場さんは慣れた足取りで駐車場に続く非常ドアに先導しながら続けた。
 「もちろん何度か試行錯誤するそうですが、他のSE だと部分最適化に留まるのに、白川さんだと全体最適化になるんですね。私たちプログラマが戦術家だとすると、白川さんはとても優秀な戦略家というわけです」
 「じゃあ、この案件、結構、楽ができそうってことですか?」
 草場さんはニヤリと笑って、首を横に振った。
 「その代わり、部下や下請けを容赦なくこき使って、労働基準法すれすれまで使い倒すそうですよ。レモンの絞りかすみたいになった部下が、これまで何人も異動したり転職したという話です。泣いて馬謖を斬る、という言葉がありますが、白川さんは笑顔で人を切り捨てるそうです。まあ、真偽のほどは定かではないですが、それも魔女と呼ばれる所以でしょうね」
 「うちの営業が言ってましたが」興味を惹かれたのか、東海林さんが話に加わった。「白川さんはこのプロジェクトに自分から志願したそうですね」
 「そうらしいですね」草場さんは頷いた。「体調を崩してしばらく休職していたそうですから、遅れを取り戻そうとしてるんじゃないかという話です」
 エースは失敗を好まない、と黒野の話が思い出された。にもかかわらず、あえて火中の栗を拾ったのだから、白川さんはなりふり構わずプロジェクトを成功に導こうと全力を傾注し、参加するプログラマ全員の体力と気力を「レモンの絞りかす」みたいになるまで注ぎ込み、最終的に成功するに違いない。
 こういう場合、プロマネが有能であれば成果を出すことができるだろうが、逆だと本人も含めた全員が不幸にしかならない。私は、自分自身のために、白川さんが評判通り優秀であることを祈った。

(続)

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

Comment(11)

コメント

K

いつも楽しく拝見しています。
中盤くらいに「A フレ習熟のトレーニングを受けていただいます。」とありました。
タイプミスかと思います。

匿名

白川さんが己を過信してなんでも抱え込んで自爆して失踪…
というのが想像しやすい結末だけど、どうなんだろう。

匿名

>もちろん何度か試行錯誤するそうですが、他のSE だと部分最適化に留まるのに、白川さんだと全体最適化になるんですね。私たちプログラマが戦術家だとすると、白川さんはとても優秀な戦略家というわけです
開発よりの人だとよくこういう発言が見受けられる気がする
自分担当のシステムなりコードしか頭に無さそうな発言というんでしょうか
現場内ではそれが分かるだけ優秀な部類に入るんでしょうけど、たぶん

利用者からAPサーバのプロセスやその先のDBまで全部見通してるならともかく
APサーバがきちんと動かせるように配置してるだけなら全体最適ではない

ITだと全員がそうだけどお金やスケジュール、ネットワーク、サーバ、コード、仕様を担当分だけ見てる
全部見てる人なんていないでしょうし

システム全体見て最適化出来る人なんて実際にいるんでしょうか?
見てたらプロジェクトの成功が3割にはならんでしょうけど

リーベルG

Kさん、ありがとうございます。
typo でした。

匿名

今回を読むと不安しか感じないけど、第一話が完成セレモニー前夜ってことは途中で破綻はしない?んだよね
白川さんは自信家だけど楽天家ではない、という感じなのかな

匿名

白川女史の「全体最適化」のタネが何なのかが気になるところ。
本人のエンジニアとしての研鑽の賜物なのか、はたまた何らかの「トリック」を使っているのか。

白川女史の実力は付け焼き刃ではないと仮定して、第一話でのカタストロフィに通じる伏線は何なんだろうか?
有り得そうなのは、高杉女史あたりから実力を疎まれて、白川女史の失脚を狙った裏工作を仕込まれたとか?

匿名

こんなえげつないやりとり、フィクションならでは、ですよね。

それにしても。
オールスターってことですが、東海林さん、川島さん以外が出てこない。
歳か。orz

ちょい呑み

白川さんがAIとかアンドロイドとか、ハウンドの悪事の試作品てオチなんではなかろうかと邪推しています。

そして、満を辞してなるみんの続編スタートかなと。

匿名

ストーリ上の必要性からすると白川さんがハウンドのエージェントでKVSをソリストに使う為の実験をしていた
休職中にハウンドが白川さんに接触して取引でナルミンファンの為に類似のものを実験的に投入
その為にすごい成果を上げられもう実験が終了したので消えたとか

最近のSFチックな書き方からすると現実的なものよりもストーリとの接続性が重視されるのかもしれません

N

ハウンドの名前が出てる以上もう不穏な感じしかしないですよね。
3話に出てきた「既に開発者がいないけど機能的にはよく出来ているライブラリ」とか怪しいなんてもんじゃない…

Hiro

テスタロッサみたいなものの実地試験になるのかなあ
ハウンドが絡んでいるということでワクワクします

コメントを投稿する