量産型プログラマの何がいけないのか分からない
完全に乗り遅れましたが、ソニックガーデンの倉貫さんが書いた以下のエントリが話題になっています。
よく聞く主張です。いろんな人から、多分100回以上聞いてます(だから、今更わざわざ倉貫さんが言わなくてもいいんじゃないかとも思いますが)。
で、私の主張ですが、私はSIという文脈において、アプリプログラマは量産型でいいと思っていますし、量産型プログラマの存在の何がいけないのかよく分かりません。というか、むしろ量産型の皆さんには感謝してるくらいです。
私のお客さんは量産型プログラマ
私は主に大規模SI案件に参画して、「フレームワークチーム」や「アプリ基盤チーム」などと言われるプロジェクト全体の技術支援を行う部署に参画することが多いです。
大規模案件のアプリプログラマは、頭数でそろえられている人たちですので、基本的に技術的にそれほど優秀ではありません。要は量産型プログラマです。
彼らがどうすれば滞りなく実装作業を進めることができるのか、ということを考えるのが私の仕事です。アプリの負担を出来るだけ軽くするアーキテクチャを構築したり、分かりやすーいドキュメントを作ってアーキテクチャを説明したり、初歩的な技術の質問に優しく応えてあげたり、時にはメモリリークを解決してあげたり。
つまり、私は量産型プログラマをおもてなしすることによって、お金をもらっているのです。
ですので、量産型プログラマのみなさんがいなくなってしまうと、私はご飯が食べれなくなってしまうのです。撲滅するなんてとんでもないです。
そもそもSIは量産型プログラマを前提としている
いいんですよ。皆が優秀なプログラマだったら。フレームワークを作る必要もないですし、分かりやすーいガイドラインを書く必要もありません。
個々のプログラマが勝手にやって、ちゃんと動いて、セキュリティ的にも問題なくて、性能要件を満たすシステムを作ってくれるんだったら、それでいいんです。
でも、現実はそうじゃないんです。
馬鹿でかいシステムを数百人、数千人という人員を集めて作っていかなくてはいけない。優秀なプログラマなんてそうそういないですから、量産型を大量に投入するしかない。
そうなると、アーキテクチャやプロセスをきっちりと作って、品質にムラができないようにしなければならないのです。
逆に言えば、優れたアーキテクチャやプロセスで、誰でもある程度のものが作れるようになれば、わざわざ高い単価で優秀な人を入れる必要もないんです。
今のSIはこういうビジネスモデルを目指しているんじゃないですかね。だとすると、量産型を撲滅ってのは、ちょっとピントがずれているような気がします。
まぁ、そのビジネスモデル自体が気に食わないというならば、どうしようもないですがw
まとめ
量産型プログラマがプログラムを量産できるようにするのが、ソフトウェアエンジニアリングです。量産型プログラマが活躍しやすいプロセスとアーキテクチャを構築しよう、という方向で進んだ方が建設的じゃないかと思いますね。
あと、別にSI業界は、プログラミングを舐めてはいないと思いますよ。ただし、アプリプログラマは量産型であると認識されていますし、技術力は期待されていないと思いますけど。
ちなみに、プログラマをちゃんと教育したほうがいいという主張には賛成です。