生産量に関する誤解

行数はコストの指標

作業環境を改善せよ さもなくば日本のエンジニアは壊滅する!」という記事。スラッシュドットジャパンでも、「日本のソフトウェア開発者の作業スペースや待遇は劣悪?」として取り上げられており、付け加えることは少ないのだが、一箇所気になる箇所がある。

これを100万行のコードから成るソフトウェアの開発で例えてみる。

この仮定そのものが適切でない。生産性の高いプログラマが100万行で済ませるところを生産性の低いプログラマは200万行、300万行かけてしまう。行数というのは、工数と同様コストをあらわす指標であって、真の意味の生産量をあらわすものではない。

製造業に関する古い常識

ソフトウェア開発者は製造業のことを知った方がよい」というのは全くそのとおり。

我々の作るものには物理的制約がないこと、ソフトウェアは製造するものではなく設計するものであること、などから彼ら(製造業経験者)の使うメタファーは間違ってる(よく言って不適切である)ことが多いからだ。

全くそのとおりだが、ソフトウェア開発者の製造業に関する認識も全く時代遅れのものであることが多い。T型フォードの時代の「大量に作る」という、もはや製造業では否定された考え方がソフトウェア開発では適用されることが多い。トヨタなどの現代の製造業では「売れる分だけ作る」という考え方である。売れないもの、役に立たないものを作っても見かけの生産量が増えるだけで真の生産量は増えない、と現代の製造業では認識されている。売れないもの、役に立たないものを作るのは不良在庫を増やすことであり、見かけの生産性向上、と現代の製造業では忌むべきものとして認識されている。
こうした現代の製造業での常識を理解すれば、行数で生産量をあらわしたりすることがいかに不適切かわかると思う。