大規模開発はなくならない

いつまでたっても大規模開発はなくならないでしょう。こんなひとがいる限りは。

通りすがり:
 防衛システムが小規模でできるわけないだろ。

2008-09-12 - kなんとかの日記

まさに勘違いしている人の典型的なコメントですね。この通りすがりさんは、大変わかりやすい典型例を何度か書き込んでくれています (いつもありがとうございます)。
せっかくですので、この典型的な勘違いコメントを利用して、前のエントリの補足を書いておこうと思います。


まえのエントリに書いてある趣旨は、主に 3 つです。

  • 同じ要件や仕様でも、作る人の能力次第で 100 万行に膨れあがることもあれば数万行で済むこともある。
  • 規模が大きいほど失敗する可能性は急速に高まるから、プロジェクトを成功させようと思ったら、規模を小さくすることを考えるべき。
  • それがわからず、規模の大きさを自慢するやつはバカ。


これから分かるように、だれも規模の「絶対値」の話なんかしていません
同じ要件でも、巨大で複雑な仕様にする人もいれば、コンパクトで簡潔な仕様を導きだせる人もいる。
また同じ仕様でも、100 万行に肥大化させる人もいれば、数万行で済ませられる人もいる。
ほんとうに要件が広範囲で複雑なら、100 万行でも小さいほうかもしれないし、単なる掲示板なら 1 万行だって巨大です。
そんなの、要件や仕様の大きさや複雑さで評価は変わるに決まっています。


だれも「小規模じゃないとダメ」といってるわけじゃではありません。「小さくする努力が必要」といっているだけです。
「10 万行を超えたら全部ダメ」といってるわけではありません。「100 万行は 10 万行に、10 万行は 1 万行にする工夫が必要」といっているだけです。
わかりますか? 規模の「絶対値」の話ではないですよ。

通りすがり:
 防衛システムが小規模でできるわけないだろ。

何の防衛システムかわかりませんが (会社名はわかりそうですが)、きっと *大規模な* プロジェクトなんでしょうね。
ただ、*大規模な* プロジェクトであるからこそ、規模を小さくする工夫が必要というのはわかって下さい。また『小規模でできるわけない』という気持ちが、小さくすることを妨げることに気づいてください。


実は、規模を小さくするうえでの最大の障壁は、この通りすがりさんのような、「自分のプロジェクトは特別なんだ」という思い込みや勘違いではないでしょうか。
誰しも、自分が参画しているプロジェクトが special だったり big だったりほうがカッコイイと思いがちです。
そして、そんな big で special なプロジェクトを率いている自分に少なからず陶酔しています。
そのため、規模を小さくするなんてことは考えから除外してしまいます。

たとえば:

  • 自分は、全社あげてのシステム刷新プロジェクトを任された。金額にして 115 億円。これだけのプロジェクトなんだから、大規模になって当然だ
  • 今度手がけるプロジェクトは、業界 1 位と 3 位の企業が合併してできた巨大企業の、システムを一本化するという最重要プロジェクだ。だから、大規模になって当然だ
  • 自分のプロジェクトは、日本を守る正義のための防衛システムだ。だから、大規模になって当然だ


こういった、妙なプライドや勘違いがある限り、規模を小さくしようとする工夫も努力も、ろくになされることはないでしょう。
現実には、どんな種類や規模のプロジェクトでも、仕様や実装を工夫すれば、大幅に小さくできるというのに。


この業界は、過去に EJB やら SOAP やらを推進してきた過去があります。
しかし、そういった複雑なものは廃れ、今は O/R Mapper や DI Container や REST や JSON といった、シンプルなものが使われています。
同じことをするにも、よりシンプルな方法を考えることができるというのは、過去に何度も証明されているわけです。
なのに、いまだにそのことを学習せず、複雑な仕様や複雑なテクノロジーを「崇めて」いる人のなんと多いことでしょうか。

通りすがり:
 防衛システムが小規模でできるわけないだろ。

こういった、大規模ほど偉いと思っている人や、自分のプロジェクトは特別だから大規模になって当然だと思い込んでいる人がいるかぎりは、大規模開発はなくならないでしょう。
そして、それが不幸な失敗プロジェクトを生み出すこともなくならないでしょう。