« Ubuntu10.04でのLISP環境構築 | トップページ | LinuxでもWindowsでもCommon Lisp »

餅は餅屋

■単一スキルのソフトウェアエンジニア
とあるソフトウェアエンジニアの考えによると、最近の開発案件がうまくいかないことが多いのは、ソフトウェア開発企業がプログラマ候補ばかりを採用することと、入社後もプログラマ養成教育ばかりを行っていることが原因だと言う。

その結果、現代的なソフトウェア開発で重要性を増しているプロジェクトマネジメント、設計、テスト、プロセス設計などのプログラミング以外の部分が非常に弱くなっているというのだ。

■責任分担
これには、歴史的経緯というものが関係していると思う。
つまり、ソフトウェア開発企業の多くは、もともと機械メーカーや電機メーカーのソフトウェア製造部門だったものが子会社として独立した会社が多いため、設計、テスト、開発管理を親会社が行い、ソフトウェアの製造の部分だけを子会社が担当するという関係が固定化してしまったのだろうと思われる。

■失敗しないという思い込み

また、設計を徹底的に行って仕様化すれば、その仕様を実装したソフトウェアは完璧に動作するという思い込みと、苦労して作った仕様書やソフトウェアには欠陥が含まれないという思い込みが、そのような責任分担による開発を偏重する組織の思考の背後にあるのだろう。

■ソフトウェアの特殊事情
もちろん、そういった関係は機械部品や電気部品や金型でなら、うまく責任分担ができて良いのかもしれないし、そのような分野であれば、上の思い込みは正しいのかもしれない。

しかし、ソフトウェアは設計書通りに作れば良いとか、大量生産の歩留まりがどのくらいとか、そういう工業製品とは違う。設計はコーディングそのものと考え られるし、設計の最初の段階からテストを考える必要がある。その意味ではテストもコーディングそのものと言えるかもしれない。

さらには、ソフトウェアはいつも一品生産であり、工業製品と言えるのは、完成したソフトウェアをCD-ROMなどのメディアに焼くところだけであることを考えると、ソフ トウェアは工業製品ではなく、むしろ工芸品や芸術品に近い存在だと言うこともできるのではないだろうか。

■餅は餅屋

このように、機械部品や電気部品などのハードウェアとソフトウェアとは全く違うものなので、ハードウェアしか作ってことのない機械メーカーや電機メーカーにソフトウェアがうまく作れないのはむしろ当然だ。彼らが、自分たちの専門分野の枠組みでソフトウェアをとらえようとする限り、彼らがソフトウェアという概念を正しく形成することさえも困難かもしれない。

もしそうであるとするならば、彼らが自分たちで中途半端に設計やテスト、あるいは開発管理するのをやめて、ソフトウェア開発はソフトウェア専門メーカーに任せてしまうというやり方について検討を始めても良いのかもしれない。

■苦手なことを知る

企業は利益をあげるのが仕事だ。自分の知らない分野や苦手な分野に無理に入っていくことは、経済的には必ずしも良いことではないと気づくことも大切だ。

WOZ

|

« Ubuntu10.04でのLISP環境構築 | トップページ | LinuxでもWindowsでもCommon Lisp »

ソフトウェア開発」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1286769/34601652

この記事へのトラックバック一覧です: 餅は餅屋:

« Ubuntu10.04でのLISP環境構築 | トップページ | LinuxでもWindowsでもCommon Lisp »