「ソフトウェアは工業製品ではない」

コメントは受け付けていません

投稿日:2009年04月15日 作成者:yasunaka

@ITにRubyの作者であるまつもとさんの講演をまとめた「ソフトウェアは工業製品ではない」という記事が載っています。「コード(ソフトウェア)を書くというのは、組み立てのことではなく、製造業でいう「設計」に相当する」と述べています。以前、ひがやすをさんも同じようなことを言ってらっしゃいましたが、まさにその通りだと思います。

ソフトウェアを作るという行為は上から下まですべて設計であって、手順どおりに同じ製品を作り続ける生産工程ではないのです。

おそらく製造業との対比で言えば、工場に相当するのはデータセンターなのでしょう。

ただ、日本においては一般に、ソフトウェア開発というのは工場における製造と同じようなものと考えている向きが多いのではないでしょうか? コーディングなどの実際にプログラムを作る作業を「製造」と表現する場合がありますが、これなどはまさにその典型だと思います。

この考え方の根底にはウォーターフォール的な思考に基づいて、上流工程が設計のすべてであって、下流工程はただ単に機械的な作業をしているという考え方があるのではないでしょうか? しかしもしそのような機械的な作業ですむことであれば、ソフトウェアの世界ではとっくの昔に自動化されて、人間がやらなくても良い作業になっているはずです。

以前、何かの資料で読んだのですが、日本のソフトウェア開発は、コストは若干高めで生産性は低いそうです。なぜこんなことになっているのか考えてみたのですが、コード(ソフトウェア)を作るという作業を単なる「同じ製品を作り続ける生産工程」だと考え違いをしている間は、人材も育ちません。結果として、いつまで経っても生産性の向上は望めないのではないでしょうか?

タグ システム

素人プログラマ

コメントは受け付けていません

投稿日:2009年04月08日 作成者:yasunaka

日本のソフトウェア産業に関わる人って、普通どの程度「ソフトウェア」について勉強しているのでしょうか? こんなことを書くのも、職業プログラマの中にもあまりにも程度の低い、メンテナンス不能なプログラムを書く人が結構多いと感じるからです。

プレゼンテーション層(JSPとか)にごりごりロジックを書きまくる人。

クラス名や変数名に一貫性の無い人。

言語における「普通の」コーディング規約を知らない人。

インデントすら、まともに書けない人。

すべての処理をstaticメソッドで書き上げる人。

言語に標準で付いているライブラリを利用せずに、都度ロジックを自前で書いている人。

一度動いたら、自分の書いたソースコードの見直しをしない人。

意味を理解せずに、前の人と同じように書いているだけの人。

ソースコードのバージョン管理が出来ていない人。

ソフトウェアの技術動向に無頓着な人。

以前、SEとプログラマの対比をこのブログで書いたことがありました。私の持論としては、SEとプログラマの違いは職種の違いであって、上とか下とか関係ない、と思っているのですが、現状は違います。

その原因として、一般のプログラマのレベルがあまりにも低いことも原因のひとつではないかと感じます。

職業にするということは、プロフェッショナルなわけですよね。ところが日本のソフトウェア産業はプロフェッショナルを育てようという意識が希薄です。これではいつまでたっても日本のソフトウェア産業は世界に太刀打ちできないのではないでしょうか。