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

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

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

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

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

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

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

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