Tarumi's Blog 2

アクセスカウンタ

zoom RSS ソフトウェア工学の前提

<<   作成日時 : 2009/02/06 18:48   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

はてなブックマークを見ていると、「従来のソフトウェアエンジニア人事工学が決定的に間違っている点」というBLOGエントリがホットのようです。この記事では、別の人によって書かれた記事「 従来のソフトウェア工学が決定的に間違っている点」を参照し、生産性の高いプログラマが客から注文された(興味の対象にならないような)プログラムを喜んで全力で書くはずがないということを指摘しています。的を得た指摘だと思います。世の中のソフトウェアの大半は皆が興味を持つような面白いプログラムではないのです。客から注文されたソフトウェアであり、製品計画や市場動向に従って作って行かなければならない組込ソフトウェアだったりするのです。ソフトウェア工学に対して懐疑的な見方をする人の一部にここを誤解しているケースがあると思います。

さてもう一つ。よくBLOGエントリのタイトルを見て頂きたいのですが、前者の記事では「ソフトウェアエンジニア人事工学」と言っています。「ソフトウェア工学」とは言っていません。ここ重要です。人事や経営と工学とは区別しなければなりません。(人事工学という言葉はとりあえず人事と同義とみなしています。)人事や経営はあなたの会社、あなたのプロジェクトのために考えることです。あなたの会社のソフトウェア生産性を上げるためには、優秀なプログラマを雇うのも一つの手段です。あなたのプロジェクトの生産性を上げるには、社内の他プロジェクトから優秀なプログラマを引っ張って来るのも一つの手段です。

しかし工学は違います。ソフトウェア工学は社会全体のソフトウェアの生産性を上げることを考えなければ意味がありません。あなたの会社が優秀なプログラマをたくさん雇えば、他の会社が優秀なプログラマを雇える可能性は下がります。あなたのプロジェクトに優秀なプログラマを集めれば、他のプロジェクトの生産性は下がります…よね。つまり、一つのプロジェクト、あるいは一つの会社のソフトウェア生産性を上げることと、社会全体の生産性を上げることとは明らかに違います。リソースの奪い合い(=ゼロサムゲーム)は排除して考えることが原則です。

社会全体のソフトウェア生産性とプログラマの能力との関係について言えることは基本的に二つしかありません。

(1) 同じ能力のプログラマでも高い生産性を上げる方法を工夫すれば、社会全体のソフトウェア生産性は上がる。
(2) 同じ開発方法で社会全体のソフトウェア生産性を上げるためには、能力の高いプログラマを多数養成する必要がある。

前者がソフトウェア工学、後者は教育です。

(注)開発しながらプログラマの能力を高めて行くOJT的な発想ももちろんありますが、ここでは省きます。

こういったソフトウェア工学の大前提がよく理解されていないので、いろいろな誤解が生まれて来るのだと思います。私はソフトウェア工学に関係する授業の最初で必ずこのことを話しています。

さてここでもう一度、上の「人事工学」という言葉に戻ってみます。この言葉にはもう少し深い意味があるように思います。人事も、単なるリソースの奪い合いではなく社会全体の生産性に貢献するようになれば工学になるという意味でしょう。つまり、この種のソフトにこの種の能力を持った技術者を配置すれば、他の配置方法より全体として生産性が上がる…というような議論になっていれば、工学と言える、ということなのかなと思いました。

関連記事を読む

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
ソフトウェア工学の前提 Tarumi's Blog 2/BIGLOBEウェブリブログ
文字サイズ:       閉じる