« Re: チャールズ・ダーウィンの言葉 | トップページ | [.NET] フィードバック - MSTest: ClassCleanup() のタイミングを早くしてほしい ( その2 ) »

2008年4月30日 (水)

「ソフトウェアの部品化」が失敗する理由

Out of Memory 経由、 @IT の記事より。

「ソフトウェアの部品化」が失敗する理由 - @IT

 「部品化を推進」 という言葉。 この志は正しい。 しかし、 ベンダがパッケージソフトウェアは作れなくても部品ぐらいと考えるのであれば誤りだ。

 部品化の実現には、 技術的な課題以上に実は経営資源的な課題が横たわっている。 日本のソフトウェア企業が部品化を推進できない理由。 それは 「納品 物の作成に手一杯かつ、 採算はギリギリで再利用に足る品質を持ったコード作成に必要な資金投下がそもそもできない」 ことも理由である。 そもそも日本のソフ トウェア企業の研究開発予算比率はきわめて低い。

まず、 この記事に出てくる 「ソフトウェアの部品」 とは、 再利用することを前提とした、 いわば 「標準部品」 とでも呼べるモノでしょう。

「再利用に足る品質を持ったコード作成に必要な資金投下がそもそもできない」、 あるいは、 されていない、 ということに異論はありません。 私も、 そうだと思います。
でも、 それだけ? この記事に書かれていない他の理由は?

◆ そもそも、 日本ではオブジェクト指向のプログラムを作っていない
部品を組み合わせてプログラムを作るという手法を取っている場合、 何回かプロジェクトをこなすうちに、 似通った部品を作っていることに気付き、 それを標準部品に仕立て直すことができます。
し かし、 そういう手法を取っていないのですから、 つまり、 そもそも部品を作っていないのですから、 標準部品を作るというのは無から有を生み出す仕事になってしまいます。 また、 がんばって標準部品を作ってみても、 組み込む先が無い、 ということにもなりかねません。 パッケージを作るより、 標準部品を作るほうが難しいのです。
標準部品を作れ、 と号令を掛ける前に、 オブジェクト指向のプログラムを作れるようになるべきです。

◆ 標準化は継続的にコストが掛かる ( …ことを無視している )
仮に、 「再利用に足る品質を持ったコード作成に必要な資金投下が」 出来たとした場合。 それで標準部品化が成功するでしょうか?
ノー、 です。
開 発した標準部品は、 カタログ化し、 社内の他プロジェクトへ展開しなければ、 再利用されません。 再利用された場合は、 きっとフィードバックがありますから、 その対応も必要になります。 また、 標準部品の規格も決めなければなりませんし、 その改訂作業もあります。 外販するとなれば、 なおさら手間が掛かります。
標準部品を作るだけの資金を投入して作らせても、 こういった継続的に掛かる再利用のためのコストはまかなえないので、 けっきょく失敗します。

◆ 標準部品の寿命が短い
何回かのプロジェクトを経て、 その中から標準部品を育て上げたとします。 ここまでで、 1年以上掛かっているでしょう。 ひょっとすると 2 ~ 3年?
さぁ、 そのあと何年間、 使えるでしょうか?
純粋にロジックだけの部品なら、 そうとう寿命があるでしょう。
し かし、 すこしでもプラットフォームに依存するなら…? たとえば、 .NET Framework では、 データベースにアクセスする基盤が、 数年で変わってしまいました。 GUI もそうです。 数年で変わるプラットフォームの変更のたびに、 標準部品も作り直しです。
ということは。 よほど再利用する価値がある部品に限って、 標準部品への仕立て直しをしてカタログに載せるようにしないとペイしない、 ということです。

つらつらと、 標準部品を作る資金だけの問題じゃない、 ってことを書いてみました。 まだ他にも困難はあるでしょう。
でも、 プログラムを作る立場にいるものとして、 それでもやっぱり標準部品化は進めたいなぁ、 と思います。

|

« Re: チャールズ・ダーウィンの言葉 | トップページ | [.NET] フィードバック - MSTest: ClassCleanup() のタイミングを早くしてほしい ( その2 ) »

プログラミング」カテゴリの記事

-プログラミング ( わんくま )」カテゴリの記事

-プログラミング ( 開発プロセス )」カテゴリの記事

コメント

経済産業省の特定サービス産業実態調査によると、 SIer の事業所数は 7000社くらいなんだそうで。
その 1割っていうと 700社… 1% の 70社もいかないんじゃないかなぁ ( とくに根拠無し f(^^; )

投稿: biac | 2008年5月 1日 (木) 09時11分

割り切って部品ベンダーになってしまえればいいですが、現存の SIer のうち、その転換に成功するのは一割ありますかな?

投稿: シャノン | 2008年5月 1日 (木) 00時11分

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: 「ソフトウェアの部品化」が失敗する理由:

« Re: チャールズ・ダーウィンの言葉 | トップページ | [.NET] フィードバック - MSTest: ClassCleanup() のタイミングを早くしてほしい ( その2 ) »