人形つかい(2)今、そこにある案件
エースシステムの敷地から出た途端、東海林さんは黒野さんにかみついた。
「おい、いくつか聞きたいことがあるんだけどな」
「まあまあ、立ち話もなんだから、どっか入りましょうよ。喉も渇いたし」
そりゃ、あれだけ1人で喋れば喉も渇くだろうけど。ぼくたちは、すぐ近くのファミレスに入ると、ドリンクバーを3人分頼んでウェイトレスを追い払った。
「で、ステップ数ってマジで言ってるのか、あの人は?」
「そうみたいですね」黒野さんはえへへ、と笑った。「まあ、そういうこともあるでしょう。何が問題なんです?」
「冗談のつもりか?」東海林さんはにこりともしなかった。「プログラムの難易度がステップ数で測れるわけがないだろう」
「そりゃそうですが……」
「おれに言わせれば、時代遅れもいいとこだ」
大いに同意したいところだったが、あいにく、ぼくの意見を求める人は誰もいなかった。
「エースシステムじゃそうしてるんだから、仕方がないでしょう。それとも何ですか? 今どきステップ数換算なんて時代遅れですね、とでも言えばよかったんですか?」
「言えなかったのか?」
「言えるわけないでしょう」首を締められているようなかすれ声だった。「私がこの契約取るために、どれだけ苦労したと思ってるんですか」
「お前の苦労など知るか」東海林さんはそっぽを向いた。
「じゃあ言わせてもらいますけどね、東海林さん」黒野さんは開き直った。「せっかくの大口受注を、たかだか『ステップ数で難易度が測れるわけがない』なんて理由で棒に振れとでも言うんですか? 確かにエースシステム自体は上流専門の時代遅れのSIerなのかもしれませんが、同時にカネを、それも大金を持ってるSIerでもあるんですよ。誰が持っていようと、カネはカネです」
「……」
「そりゃ私だって、東海林さんや細川くんが十分納得できる状況で仕事をしてもらいたいですよ」黒野さんの口調から激しさが消えた。「でも、今、目の前にある案件は、エースシステムさんの案件なんです」
東海林さんは険しい目で黒野さんを見ていたが、不意に立ち上がった。
「ちょっとタバコ吸ってくる」
そう言うと、喫煙所の方へすたすたと歩いていってしまった。残された黒野さんは、ぼくの顔を見て苦笑した。
「とりあえずドリンク持ってこようか」
「そうですね」
ぼくたちがそれぞれのドリンクを持って席に戻ったとき、東海林さんも戻ってきた。眉間の皺は消えている。
「わかった。まあ、そういう元請けなら仕方がないな」東海林さんは肩をすくめた。「じゃあ、さっきのフレームワークの仕様書を見ようか」
東海林さんがキングジムファイルを広げ、ぼくは身を乗り出した。
ざっと見た限りだと、Aフレは一種のテンプレートエンジンのようだった。チュートリアルによると、その基本的な使い方は、
- モジュール定義ファイル(Excel形式)に、画面上の項目名、バリデーションルール、選択肢一覧など、ロジックの分岐など、各種項目を入力する
- 専用のツール(Eclipseのプラグイン)に通すと、HTMLファイルと対応するJavaのソースファイルが作成される
- HTMLにはhiddenタグにMIME形式でバイトコードが埋め込まれている。その部分は修正不可
- Javaのソースは、画面上の項目(id)に対応するプロパティを持つ*Form.javaと、ビジネスロジックを記述する*Logic.java の2つが生成される
- それぞれのJavaファイルには、アノテーションで、HEX形式のバイトコードが埋め込まれている(修正不可)
となっていた。
MVCに当てはめると、
- コントローラ部 …… 完全にノンプログラミング
- ビュー部 …… HTMLファイルは、バイトコード部分と、タグに自動セットされているid以外は自由に変更可能
- モデル部 …… 入力必須チェックや桁数チェックなどのバリデーションはノンプログラミング。ビジネスロジックは、*Form.class が引数になった空のメソッドが自動生成されているので、中身をコーディングするだけ
となる。
「へえ、こりゃすごいですね」ぼくは思わず感嘆した。「これが使えるなら、かなり工数減らせるんじゃないですか?」
「そうかもな。ま、戻ったら試してみよう」東海林さんは添付されていたDVD-Rを指で弾いた。「お前のPCに入れてみろよ」
「わかりましたけど、なんでぼくのなんですか?」
「おれのEclipseに変なプラグイン入れたくないからだよ」東海林さんは平然と答えた。
「……」
「さて、定義ファイルってのは、どんな風に書くんだろうな」
ぼくはページをめくり、サンプルが載っているページを見つけた。
「これですね」
東海林さんは乾いた笑い声をあげた。
「これ覚えるの大変だなあ」
確かに大変そうだった。普通にStrutsを使った方が早そうだ。
「覚えてしまえば簡単なんでしょうね、きっと」
「ふん」
東海林さんはファイルを引き寄せると、パラパラとザッピングしていたが、あるページでその手が止まった。
「おい、これ見ろよ」
東海林さんはファイルの先頭付近にある、更新履歴のページを開いていた。覗き込んでみると、ほとんど毎日のように機能追加やらバグフィックスやらが行われているのがわかる。最新の日付は昨日になっていたが、東海林さんが指しているのはバージョン番号だった。
ver 0.89.1-b
「メジャーバージョンが1未満ってことは、このAフレって、実はまだ完成してないんじゃないのか?」
「でもすでに開発スタートしてるんですよね」
「あー、あのですね」コーヒーをすすりながら見ていた黒野さんが口を挟んだ。「そっちの研究はまたゆっくりやってもらうとして、先に見積もりを出してもらえると助かるんですけどね」
「ああ、そうだな」東海林さんはファイルをバタンと閉じると、ぼくによこしてきた。「じゃあ帰るか。佐々木さんからのメールが来てるはずだな。設計書のサンプルを送るとか言ってたから」
ぼくたちはドリンクを飲み干して立ち上がった。伝票は黒野さんに押しつけられた。
◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇
社に戻ると、約束通り佐々木さんからのメールが届いていた。設計書のExcelファイルが添付されている。単純なマスタメンテ画面のようだ。よくあるセルが方眼紙のようになったシートに、画面レイアウト、項目名、処理などが並んでいた。
もっとも、ぼくは中身までしっかり見たわけではない。Aフレを理解するという作業が待っていたからだ。逆に東海林さんは、その設計書を印刷して、じっくり眺めはじめた。
「明日の朝か、昼ぐらいまでに概算見積、出ますか?」黒野さんが訊いた。
「そうだな」東海林さんは設計書に、何やら書き込みしながら答えた。「まあ、何とかなると思うよ」
「今日中は無理でしょうね?」
「わかってるなら聞くな」
「いえ、明日は終日外出なんで」黒野さんは躊躇った。「佐々木さんに送っておいてもらえますか? 私にCC入れておいてもらえばいいので。今後のことあるので、あまり高くしないでください」
東海林さんはうるさそうに頷くと、設計書に戻った。
次の日の昼過ぎ、東海林さんは見積を算出して佐々木さんに送信した。
from:東海林
to:エースシステム佐々木様
cc:黒野、細川
subject:開発工数の見積を送りますお世話になっております。サードアイの東海林です。
昨日はありがとうございました。 送っていただいた設計書のサンプルを早速、拝見しました。 サンプルということもあるのかもしれませんが、内容が少々抽象的なようで、詳細までの見積もりを出すことは難しいと思われます。 またお借りしたAフレも少し操作してみましたが、どうもエラーばかりで正しく動作させることができませんでした。
とりあえず現時点で出せる見積は以下の通りです。
実装:2人日
ユニットテスト:1人日 ドキュメンテーション:1人日
よろしくご査収お願いします。
5分もしないうちに返信が届いた。
from:エースシステム佐々木
to:サードアイ東海林さん
cc:サードアイ黒野さん、サードアイ細川さん
subject:Re:開発工数の見積を送ります毎々お世話になっております。佐々木です。
申しわけありませんが、もう少し精度の高いものをいただきたく。
このプロジェクトは、弊社が多く抱える案件の中でも、特に重要度が高く失敗が許されません。“とりあえず”というノリで出されては困ります。
また、できれば日単位ではなく、時間単位で出せないでしょうか。
この状態ではアバウト過ぎて上に説明ができません。今日中に再度の提出を、お願い致したく。
東海林さんは口の中で何か罵ると、すぐに返信した。
from:東海林
to:エースシステム佐々木様
cc:黒野、細川
subject:Re:Re:開発工数の見積を送ります
お世話になっております。「精度の高いものを」とありますが、現時点ではこれ以上の見積は出せません。見積がアバウトだとしたら、いただいた設計書のサンプルがアバウト過ぎるせいです。おまけにAフレはまともに動作しませんし、サンプルのソースもありません。この状態でどうやって時間単位で見積を出せと仰るのでしょうか?
精度の高い見積もりをお求めなら、もう少し詳細な情報をいただかないと難しいです。
せめて実際に動作するソースを1機能分だけでもいただけないでしょうか。
佐々木さんからの返信は、またまた数分後だった。
from:エースシステム佐々木
to:サードアイ東海林さん
cc:サードアイ黒野さん、サードアイ細川さん
subject:Re:Re:Re:開発工数の見積を送ります毎々お世話になっております。佐々木です。
他の協力会社さんからは、もう少し細かい工数をいただいています。
ソースは出せるものがまだありません。とにかくこれでは見積もりとして受領するわけにはいきません。
申しわけありませんが、もう少し精度の高いものをいただきたく。今日中に再度の提出を、お願い致したく。
読み終わったとき、電話が鳴った。出てみると黒野さんだった。
『東海林さんいる?』
「今、タバコです」
『じゃ、戻ったら携帯に電話くれるように言ってくれるかな。あ、それから佐々木さんへの返信、ストップしてって言っておいて』
スマートフォンでメールをチェックして、東海林さんと佐々木さんのやり取りに気付いたらしい。これ以上エスカレートする前に止めたいのだろう。
「わかりました」
電話が切れると、ほぼ同時に東海林さんが戻ってきた。黒野さんの伝言を伝えると、東海林さんは顔色ひとつ変えずに「そう来ると思ったよ」とつぶやき電話をかけた。
「もしもし、おつかれ。ああ、ああ、わかってるよ……ああ、でも仕方ないだろ。今の時点で時間単位で出してもウソになるんだぞ……ふーん、あ、そう……わかったわかった。じゃあ、それらしくしとけばいいんだな……はい了解」
数分後、東海林さんは短いメールを送信した。
from:東海林
to:エースシステム佐々木様
cc:黒野、細川
subject:Re:Re:Re:Re:開発工数の見積を送りますお世話になっております。
それでは、以下の通り再見積を送ります。
実装:18.25時間
テスト:8.5時間
ドキュメンテーション:8.75時間
よろしくご査収お願いします。
返事はさらに短かった。
from:エースシステム佐々木
to:サードアイ東海林さん
cc:サードアイ黒野さん、サードアイ細川さん
subject:Re:Re:Re:Re:Re:開発工数の見積を送ります拝承
――拝承って何だ?
たまたま川嶋さんがいたので聞いてみると、
「ああ、それね。エース用語ってやつらしいよ。了解しました、みたいな意味」
と教えてくれた。ぼくは礼を言って、もう一度、メールのやり取りを眺めた。つまりは、独自の文化ができるほど、エースシステムは歴史があるSIerだということだ。うちなんかより、ずっと大きな案件をいくつも手がけてきているのも確かだ。
なのになせ、まだ実際に始まってもいないうちから、早くもイヤな予感がするんだろう。ぼくは頭を振って、Aフレの解析に戻った。
その日は早めに帰宅してしまったので見ていないが、残業していた川嶋さんの話だと、帰社した黒野さんと待ち構えていた東海林さんは、かなり激しくやりあったらしい。そこで、どのような話がついたのかはわからない。
ともかく東海林さんとぼくは、2日後に再びエースシステム社を訪問、先方のSEさんから開発の具体的な進め方を聞くことになった。
(続く)
この物語はフィクションです。実在する団体名、個人とは一切関係ありません。また、特定の技術・製品の優位性などを主張するものではありません。
コメント
ちけんち
はじめまして、前作・今作とも楽しく読んでます。
「拝承」「~をいただきたく」「お願い致したく」…
あの会社と仕事したことのある人は一発で元ネタがわかりますね(笑)
そのうち名前に括弧がつきそうですな。
Aフレにも何か元ネタがあるんでしょうか?
ハムレット
見積もりを現実ではなく、予め決めた目標値に合わせて行うって、何かよくある話ですよね。職場でも結構出くわしますし、結果炎上、デスマってパターンもあります。
ただ、これって人間の性なのかとか思うことも、最近多いです。特に福島県の児童に対する年間放射線許容量が20mシーベルトが規定され、現地のPTAが「うちの子を殺す気か」と言わんばかりの勢いで、文部科学書に怒鳴り込みに行った件などを見ていると、洒落にならないぐらい、ここの話と本質が似通っているような。
へろへろ
うわぁ・・・またわかる人にはわかるやばいキーワードいっぱいの回だなぁ(笑)。
Aフレは元ネタありだけど、名前はもっと前の別の開発手法だね。
この開発案件やったことあるけど、ソースよりExcel直してる時間のほうが長かったよ。
というか、Excel部分がやたら肥大化して明らかにそこの作業がほかを圧迫してた
ね。ソースよりExcelを先に直さないと不整合がおきるし、やたらとわかりにくいし。
まだやってんのかなぁ?
セルカー
面白いですねー、ぐいぐい引き込まれます。
コメント欄で皆さんが書いているのをみると、元ネタがあるんですかね?
それを調べるのも楽しみかも。
次回も楽しみにしています。
たけひろ(PG)
私は件の会社と仕事したことないのですが、
昔、じゃんぬねっとさんのブログで用語とか
見て「ふぅ〜ん」と思ってました。
ほんとにそうなんですねぇ