GeekFactory

int128.hatenablog.com

ソフトウェア工業化と職人化が待ち受ける世界

生産性が 30 倍違うのであれば、バカプログラマー 30 人を雇うより、スーパープログラマー 1 人にサポートスタッフ 5 人つけたほうが安くていいものができるだろう。Ruby の開発でいえば、まつもとさんやささだ先生にサポートスタッフ (あるいは秘書とか内弟子とか) をつけて、極力彼らが雑用をせずに Ruby 開発に専念できるような環境を整えるべきではなかったか。

http://d.hatena.ne.jp/kwatch/20090204/1233769288

基本に立ち返って、ソフトウェア工学の目的とはなんだろう。それは「ソフトウェア開発が産業として安定成立する事」だろう。そこでこれを、大目的とする。

では、さらに考えて「産業として安定成立」するにはどうしたらいいだろうか。

大目的を成立させる為の、最低限の条件として考えられるのが、

・条件1:成果物の品質安定

・条件2:関連人材の安定供給

・条件3:産業内で流通するマネーの明確化

の3つ。

http://d.hatena.ne.jp/milogic/20090210

両方とも正しいと思う。

生産性の違いを生かしてスーパープログラマを活用すべき産業もあれば、生産性の違いを安定化させてバカプログラマーを活用すべき産業もある。前者が職人化とすれば、後者は工業化と言えるだろう。ソフトウェア工学の定義は極めて曖昧だ。イデオロギーの違いにすぎない。

私が疑問に思うことは3つある。

ソフトウェアを開発して提供する仕事が産業として成立するには工業化が必要だ。そこで大規模なソフトウェアを作れば、本当に規模の経済性は生きるのだろうか?現在のSIビジネスモデルでは、大量の委託先を仕入れて*1ソフトウェアを大量生産できる大手が有利になっているとも説明できる。

ある種のサービスでは、需要に応じてソフトウェアを変化させていくためのアプローチが必要になる。一般に、工業化が進むと設計の変更は困難になる。工場で作るモノを変えようとしたら、研究開発をやり直して機械やフローも変えなければならないのと同じ。そのような場合に工業化は必要なのだろうか?

上記2つの根本となるのは、プログラミングは設計であって製造ではないことだ。設計を工業化することは、かのトヨタですら手探りである。本当に可能なのだろうか?

良いプログラムは価値がある。元の山本さんの話にも出てくるけど、きちんとしたプログラムによって、システムは、サクサク動くようになり、業務上の使い道が大きく広がるのです。

価値のあるものからは、対価(金)を得なくてはならない。

http://d.hatena.ne.jp/higayasuo/20090212/1234443070

工業化により品質が平準化されたとしても、特に高い品質に対する需要は残るだろう。これはオーダーメイドのSIが残る限りはなくならないし、一般論としても義理チョコと本命チョコの差を考えれば自明だ。義理チョコと本命チョコの設計者になるとしたらどちらがよいだろうか。

もし工業化が進んだときにどこにいれば幸せになれるか、今のうちから考えておくのはよいことかもしれない。

ところで、ソフトウェア工学の目的は「正当な対価をもって、高品質なソフトウェアを低コストで提供すること」だと思ってたけど違うのかな。

*1:言い方が悪くてごめんなさい。