Old Articles

えすあい!

どことは言いませんが青い銀行のシステム更改が予定通り壊滅中で 「要件定義が終わっていないだけで総合試験は予定通り実施中である」 と大本営発表したのが夏の話ですが、何もここだけが特別無能なのではなく、 程度の差はあれ超オモシロカッコイイシステム開発はどこにでもあるものです。

古き悪しきウォーターフォールであろうが超イケてる意識高い系アジャイル開発であろうが 何らかの形で要件定義、つまりは「実現したいことは何か、そのために何を作るか」を検討する作業が必要になるのですが、
「要件定義のインプットとしてステップ数を見積もる」
のはウォーターフォールならではだと思います。ウォーターフォールでもおかしい気はしますが。 これから何を作るかを検討するというのに、その作るもののステップ数を先に出せと言う。 何を作るか決めてからじゃないと規模を見積もれないじゃないかと指摘すれば決まって返ってくるのが
「ざっくり見積もりでいいから」
という謎の言葉。ざっくりなら何を作るかも決まってないコードの量がわかるというのも随分不思議な理屈ですが、 過去のメジャーバージョン開発は XX キロステップ、マイナーバージョン開発は X キロステップだから 今回は XX キロステップで、という根拠でいいらしいです。

まあアプリケーションプロバイダとして開発するシステムの場合、随時バージョンアップを行うという前提で 投入可能な開発リソースの範囲内に収まる要件のみ対応、はみ出た分は次期案件にするというのも考え方としてはありかもしれないですね。

……などという合理的な思考を SIer ができるはずもなく、すべての案件が「重要度最大、対応必須」であり、 そのくせ人月当たりのステップ数 (笑) を根拠にするとどう考えても納期に間に合わないので 「このステップ数はおかしいから半分にして」と修正をお願い (笑) されます。 で、ざっくり改変したステップ数 (笑) で開発することに何故か確定している、と。

ついでに「これ緊急だから」「これお客さんにやるって言っちゃったから」 とアジャイル (笑) に案件を追加してくるのは毎度の想定内です。 そうなると当然ステップ数が変わるのでステップ数の再見積もりが必要になりますね。 ころころ小出しで案件追加してそのたびにステップ数を見積もりなおすわけですから、 そんな時間あるならさっさと設計始めれば?という無粋なツッコミなど通じるわけがないのが SIer クオリティ。 そりゃまぁ後の工程で決めた期間が作るべき案件と異なる根拠で進めるわけにいかんというのはわからんでもないけどさぁ。

そしてステップ数は「ざっくりと」都合のいい見積もりをした一方で 「今回の案件での新規バッチがメモリ何バイト使うか見積もりして」 「新規バッチの処理時間が何秒かかるか測定しといて」 などという事を言い出します。何をする処理かも決めてないのにメモリの消費量を見積もり、 処理の対象すらわからない、そもそも作ってもいないプログラムの処理時間を測定しろという謎の言い分です。 せめて計算量オーダくらいで妥協しませんかね。しませんか、そうですか。

いずれも要件定義に性能に関する考慮が必要だからということですが、 要件定義で必要なのは他の既存処理との兼ね合いで求められるリソースの上限じゃないですかねぇ? そもそもJavaVM上で動いてるプログラムの正確な消費メモリなんか見積もりで出せるもんなんですかね。

COBOLの汎用機だと実装したステップ数に対して動作時間やら消費メモリがかなり正確に見積もれるらしいですけど、 そんなOSのアーキテクチャレベルで違うであろうものの常識が普遍的なもんだと思われてもねぇ。


まあ SIer、というか COBOLer の言う要件定義はどういう訳か「やるべきことは何か」に関するストーリーををすっ飛ばして テーブルが〜フラグが〜という、それもう内部設計とかそういうレベルじゃね? って記述が飛び出すのが普通なので、 要件と実装の違いすらわかってないんでしょうね。 いやまぁメインフレームとかだとそれこそバッチの定型業務の塊みたいなもんなので 抽象化した要件定義を検討することにどれだけ意味があるんだってのもわからんではないんですが。 とはいえ教科書通りのウォーターフォール開発をやると要件定義工程が SIer の責任になってしまうので、 下請けに責任ごと丸投げできなくなるってことですかね。

内部設計みたいな妙に具体的な要件定義とはいえ、その詳細さも内部設計みたいかというと決してそんなことはなく、
「今回追加した案件のフラグを追加するだけ」
とか
「ループをグルグル回すだけ」
という楽観主義的コピペ上等な文言しか出てこないので結局改めて内部設計が必要なのは変わらないのですが。 今までもそうやって画面にインデントの空白しか見えないようなコードを積み重ねてきたのですから、 これからもきっとそうなんでしょう。


まあこんなことやって見栄えだけの生産性 (笑) を稼いでたら実態が何も生産されないのも当然でしょうね。 青い銀行なんかはここに敵対チームに対する戦略行動 (笑) を行う時間が必要になってきますから、 実際の納品物で換算した生産性はどれほどなのか、想像するだけで笑いが止まりません。

聞くところによると来年春が最終タイムリミット (爆) らしいですが、同業者一同いまからニヤニヤが止まりませんね。

ああ、そういえばアクセスログを見るとたまに .co.jp なドメインからフリートークを丁寧に漁っている形跡が見られますが、 「裏切り者」探しを頑張ってる暇があるならもうちょっとまともな「生産性」を向上する方法を考えるべきじゃないですかね。 とりあえず私は「架空の存在であり実在の人物、企業とは一切関係ありません」事にしてるので御社の機密には何の影響もなかったらいいなあと思っているので安心してくださいね。 だって考えてみてくださいよ。「技術立国」にして「アイテー革命」な「ものづくりニッポン」のこの国に こんな素敵な頭でやっていける会社が実在するわけじゃないですか HAHAHA!