みずほ銀行の次期システム開発が大炎上中のようです。数年前からカオスなことになっていると言われていましたが、何の対策も打てなかったのでしょうね、ついに4000億円まで投資額が膨れ上がってきたようです。
なぜこうなるのか?
とにかく開発のやり方が下手くそなんでしょう。要件定義がクソなのも間違いないですが、金融機関のITリテラシーがクソなのは常識なので、綺麗に炎上しているのは開発が下手くそな証拠です。軽く調べてみましたが、相変わらずのピラミッド構造で開発していたみたいですね。要件定義がクソなのは分かっているのに、なんでウォーターフォールで開発しているのか理解に苦しみます。まあ、それしか知らないからなんでしょうけどね。
いやはやすごい。仕様が変更されただけで設計が白紙っていうのは設計に問題があると思いますが、多重請けで全体像が見えていないと設計にも限界が生じますね。モジュールのことしか書いてないと、そもそも誰に何のためにどのように使われるか想像もつかないでしょう。
元請けが自分で手を動かして作ったほうが圧倒的に早くて安いと思うんですけどね。目先の人件費で下請けに作らせたほうが安く見えるので、こんな19世紀の産業構造みたいになっているわけです。まあ、元請けにその技術がないからしょうがない。
典型的な技術的負債
これは教科書に載せるには素晴らしい案件です。お金と時間をかければ炎上してもいずれ完成するだろうというのは素人考え。設計もアーキテクチャも存在しないスパゲッティコードはお金と時間を更なるモンスターへと成長させます。お金と時間をかけているのに完成から遠ざかるのです。物理法則に反しているように感じるかもしれませんが、ソフトウェア開発工学的には常識。
この図のように、設計とアーキテクチャがないソフトウェアやシステムはいずれ機能拡張が頭打ちになります。この状態に陥ってしまうと、どれだけお金と時間を投資しても機能は増えません。つまり永遠に完成しないのです。これを技術的負債といいます。技術的に負債があるので、人やお金を投下しても効果が相殺されてしまいます。国が借金をしすぎているので、歳出の多くが借金返済に充てられている状況と同じです。一方で、きちんと設計し、アーキテクチャがあるソフトウェアやシステムは、開発するごとに技術的資産が増えていきます。このため、開発は加速していくことになります。これは投資で得た利益を更に投資に回す複利と同じ原理ですね。
某SIerの言葉を思い出す
このシステムの元請けは恐らく〇〇〇フィナンシャルグループのあのSIerでしょう。就職活動中にその企業の説明会に参加したことがありますが、
- プログラミング経験不要
- プログラミングは使わない
- プログラミングできなくても問題ない
ということを大々的に伝えていました。人が足りないから強調していたのかもしれませんが、知識ある人は興醒めして選考を受けることすらやめてしまうし、実際ITリテラシーが低い人材しかいないのではと懸念していたことを覚えています。こういう問題が表面化すると、あーやっぱしそうだったのかなーと思ってしまいますね。
まとめ
今回みずほ銀行のシステム開発が炎上しているのは まとめると以下の通りではないでしょうか。
- 要件定義を固めることが難しい
- 要件定義が不確定なのでフレキシブルな開発プロセスの適用が必須
- 開発プロセス?なにそれ?ウォーターフォールしか知らないよ
- プログラミング知識なんていらないよ
- 技術的な設計は下請けの仕事だ!
- はーい、あとよろしく
まあ、触らぬ神に祟りなしです。触らぬプロジェクトに炎上なしなので、僕は近づきたくないですねー。
追記
まさか本当にウォーターフォールで開発していたとは…。
おしまい。