ソフトウェア開発は

ソフトウェア開発は、よく製造業や建築と比較される。僕は、製造業(tailorismであれ、leanであれ)の製造工程と比較するのが間違いだと思っている。ソフトウェア開発は製品開発みたいなもんで、製造じゃない。安定した技術を使い、安定したビジネスを対象とする場合は、カスタム品を作る製造工程とみなしてもいいのかもしれないが、僕は経験がないので、想像の域を出ない。
Paul Grahamは、ハッカーと画家の中でソフトウェア開発を映画の製作と比較している。これは僕の感覚に近いんだと思う。しかし、全ての場合にこのような比較が意味を持つわけではないんだろうとも思う。
例えば、大規模なビジネス系システムを作るSIのプロジェクトを考えてみる。ソフトウェアを作ることが、映画を作るのと同じようにクリエイティブな仕事であると感じることのできる開発者がどれだけいるのだろうか。おそらく、アーキテクト、モデラー、インフラやフレームワークの開発者ぐらいじゃないんだろうか。大規模なプロジェクトでは、アプリケーション開発者の自由度を減らすことにより、品質のばらつきを避けるという戦略をとる。こういう環境では、アプリケーション開発者にはものを作る楽しみはない。
小規模なSIだと話は違う。誰もがアーキテクチャを考え、フレームワークからアプリケーションまで作ることができる。
パッケージソフトの開発ではどうだろう。僕が作ったことのあるパッケージソフトは小規模なものだけだ。だから、それほど経験がなくても良さげな機能を提案して追加していくことができたし、自分で決めることのできる範囲も広かったから楽しかった。大規模だと、また話が違うのだろう。