日経ソフトウェアの大森敏行氏の記事中の注釈に、
プログラマが「プログラミングに特別な能力が必要であること」を 強調したがるのには理由がある。 現在の日本のソフトウエア業界には 「プログラミングをしない人のほうが立場が上である」というケースが 往々にして見られ, そのせいでプログラムの質が上がらないという構造的な問題があるからだ。」
というくだりがある。
確かに一理あるし、 優秀なプログラマがエキスパートとして尊敬される土壌づくりは、 優れたソフトウェアを開発するために必須の条件であろう。 しかしながら、 「プログラミングをしない人のほうが立場が上」というのは 一面的な見方ではないのか。 プログラマ兼 CTO である私としては一言いいたくなる。;-)
「プログラミングをしない人」⇒「立場が上」
なのではなくて、
「プログラミングをする人」⇒「視野が狭い人が多い」
「視野が狭い」⇒「立場が下」
に (ムリヤリな) 三段論法を適用しているだけなのではないのだろうか。 自身の視野の狭さを棚に上げておいて、 「プログラマだから立場が低い」と嘆くのはいかがなものかと思う。 もちろん、 「プログラミングに特別な能力が必要」なのではなくて、 「優れたプログラムを書くには特別な能力が必要」が正しい。 「下っ端プログラマ」と「優秀なプログラマ」を同列に扱ってはいけない。
前述した大森氏の注釈は、次のように続く:
この問題に関しては「Life is beautiful」というブログの 「ソフトウェアの仕様書は料理のレシピに似ている」というエントリが参考になる。
さっそくこの中島聡氏のブログを 読んでみた。
ソフトウェアのアーキテクトが自らプログラムを書いたり、 下っ端のエンジニアの書いたコードをレビューするのは、 レストランのシェフが自ら料理をしたり、 下っ端の料理人の作ったスープの味見をするとの同じである。
とても適切な喩えのように思える。 しかしこの伝で行けば、
下っ端のプログラマ(料理人)がアーキテクト(シェフ)になれるかは 才能に依存するところが多分にあり、 適性がない人は、いくら努力しても永久に下っ端のまま、 一人月 30万円レベルから抜け出せない。 そういう人はさっさとプログラミング(料理)をあきらめて、 マネジメントをやったほうがいい。 マネジメントなら才能が無くても経験次第でそれなりのレベルにはなる。
というとても残酷ではあるが、 とても実状に近い類推が出てきてしまうのだが...
ちなみに中島氏のブログには
優秀なエンジニアとそうでないエンジニアの生産性は(誇張抜きで) 20対1ぐらいである。
という話が出てくるのだが、私はもっと差があると感じている。 超優秀なプログラマと、下っ端プログラマとでは、 生産性が(誇張抜きで) 3桁違う、 というのが私の主張。 トッププログラマの 1000分の1の生産性しかない、 そもそもプログラミングに適性がない人が 無理矢理プログラマを目指そうとするから、不幸が始まる。 しかも、プログラミングは適性のない人でも時間さえかければ (かろうじて)動くプログラムが作れてしまったりするから余計タチが悪い。
これが料理であれば適性のない人は何日かけたって美味しい料理は作れないわけで、 早い段階で才能の無さを自覚して他の職を探すものだと思うが、 下っ端プログラマにはその自覚がない。 自覚が無いからプログラマへの道をあきらめめようとしない。 仕方ないので 35歳くらいで周囲が引導を渡すわけで、 これが「プログラマ35歳定年説」の正体。
ここまでの話と全然関係ないが、大森氏の記事に
BASICというプログラミング言語の文法を知ったのは確か中学生のときだし, 高校生のときにはシャープの「MZ-80K2E」というマイコンで 簡単なゲームのプログラムくらいは書いていた。
と書いてあったのが、 実はこの記事を引用しようと思った真の理由だったりする (^^;)。 私も中学一年の終わり頃 BASIC を知り、 高校生のとき MZ-80K2E でゲームを作ったりして遊んでいた。
life is beautifulの中島です。つい、本題で無い方に反応してしまいますが、MZ派とは、懐かしいですね。私はもっぱらNECだったので、TK-80→TK-80BS→PC-8001という流れです。まずはアセンブラから入り、Game80、Basic、C、という感じでした。ただ、最初にプログラミングをしたのは高校生のときです。中学生の時はパソコンのパの字もなかったですから、もっぱら学研の電子ブロックで遊んでいました^^。
Comment by satoshi — 2006年4月5日 @ 07:01
コメントありがとうございます。とても早いコメントで驚きました。Game80 は雑誌で見た記憶があります。
私が中学のとき使ってたパソコンは、今はなき Commodore の PET2001 でした。あのマトリックスキーボードを一生懸命打って BASIC のプログラムを作ったり、ハンドアセンブルして作った 6502 のコードを走らせたりして遊んでました。
電子ブロックでも遊びました。懐かしいですね。
Comment by 仙石浩明 — 2006年4月5日 @ 07:15
「プログラミングをしない人のほうが立場が上である」
というのは金銭面でいうと当たっている事が多いですね。
プログラマよりSE、SEより何とかマネージャと名のつく人たちのほうが
単価が高いのが普通ですし。
Comment by - — 2007年6月13日 @ 17:32
優れたマネジメントをするのも特別な能力が必要で、3桁かどうかは知りませんが、かなり差があると思います。
ですから「マネジメントなら才能が無くても経験次第でそれなりのレベル」という見方は、マネジメントが
「プログラマなら才能がなくても経験次第でそれなりのレベル」と考えるのと似ています。
Comment by ま@労働党 — 2008年11月8日 @ 04:14