2010年5月30日日曜日

日本におけるプログラマの地位向上は可能なのか?

正直なところ、プログラマを下に見る輩が多すぎうんざりする。

会計の知識、物流の知識、ERP パッケージの知識・・・、 ひっくるめて "業務知識" と呼びましょうか。この "業務知識" を知っていることこそが偉くて、プログラミング作業は現場のドカタ作業であって、そんなもの誰でもできるから全然エラくない。こういう姿勢で話を始める人が多くて困る。

一人や二人の話ではない。「プログラマと付き合いがあるんだけど、自分ではあまりコードが書けない人」っていうのが、そういう姿勢でこちらにかかってくることが多いようだ。いや、本人はコードを書けるとすら思っている人が多いから余計にたちが悪い。

そりゃ、プログラミングは簡単なものは簡単だ。

例えば、統合開発環境なら開発用のプログラムを立ち上げ、フォームを開いて、ボタンをそのフォームに落とす。そのボタンをダブルクリックすると、そのボタンを押した時にやることを書く場所にくるから、そこにコードをちょこちょこっと書いて終わり・・・、といえば終わり。

データベースだってそう。 どう使ってもいい、と信じればデータベースは簡単なものだ。

僕の知っている人は、「データベースはただの箱だ」 と豪語している。その人は 「varchar なら何でも入るから一番柔軟で優れている」 といわんばかりに、大き目の varchar のフィールドを作りたがる。

僕がお客さんからもらったデータの定義書にデータ長 10 とあったので、長さ 10 でフィールドを取ろうとしたときなど 「なぜ長さを 10 にするんだ! 100 にしておけばデータ長が 10 以上のときにも対応できるだろう!それが柔軟な設計というものだ」 と厳しく "アドバイス" されたものだ。

もちろん僕はそんなアドバイスが正しいとは思わない。僕なら想定していないデータが来たときには、速やかにエラーとしてはじいて、その問題点が正しく突き止められるようなコードを書く・・・。

こんなテキトーなやり方しかしらず、また、コードを書くといえば、フォームをペタペタいじるくらいのことしか知らない人が、「プログラミングなんて簡単だよね。だから、『業務知識』 を勉強したらいいよ」 なんて言ってくるのだ。そんなことを言われて、「確かにプログラミングは簡単です。そうか、わかった 『業務知識』 を勉強しよう」 と言うはずが無いではないか。

こちらは、「いや、プログラミングはちゃんとやろうとすれば難しい。確かに簡単に終わってしまうのもあるけれど・・・」 と言い返す準備はいくらでもある。何しろこっちが20年近くかけて頑張って勉強しているものを、それを詳しく知りもしない人間に「そんなの簡単だろ」という姿勢でかかってこられるのだから、言い返したい気持ちでいっぱいになる。

そもそもどうしてそんなことを言うのか理解に苦しむのだ。

例えば、カレー屋の料理人に、

「カレーなんて簡単だよ。誰でもできるし。包丁で野菜を切って、炒めて、煮込んで、ルーを入れて終わり。あなたは凝ったものを作るかもしれないけど、こっちだってそこそこうまいし、みんな満足するからこっちを作ったらいい。」

と、あなたは言えますか?

きっと、カレー屋のノウハウはあるだろう。難しい点はあるだろう。きっと、安っぽいカレールーなんて使っていないんだろう、といろいろ想像できるので、あなたが少々できることがあってもカレー屋の人にそんな失礼なことは言わないはずだ。

素人のインスタント・カレーを作っている人ばかりみすぎて、プロフェッショナルな仕事をわからない人、本物を知らない人が軽々しく職を否定するのだ。

プログラミングも同じだ。

上手にやろうとすれば難しいし、非常に多くのことを勉強して、そしてそれを限られた時間内で上手にプロジェクトをコントロールしながら実装していくのだ。そんなに簡単なことじゃない。

アメリカと日本でこの傾向はどうかといえば、特に日本で、この下に見る傾向が強いと思う。僕が最初に入社したときに世話になった先輩が、「おれも、やっとプログラマを "卒業" して SE だ」 なんて言っていたが、僕はそれをみて、「コードを書かなくなってしまうくらいだったら、おれは上に行かなくてもいいや」 と思ったものだ。

日本では確かにプログラマーというと、新卒、下っ端の仕事という見方が、その本人も含めて蔓延している。

アメリカでは一般的には違う。プログラマーの地位は日本よりずっと高い。何十年も技術を極めてきているひとが素晴しい仕事をしている場面に、何度も立ち会ったことがある。例えばマイクロソフトにいたころ、レドモンドでいい仕事をしている、自分よりずっと年上の人にあって感動したこともある。僕は 「こんな人になりたい」 と思ったのだ。

それでは、事実はそんなに下っ端に思われなくても良い、誇っても良い仕事であるプログラマーという職業。これをどうしたらもっと地位が向上するのだろうか。

ここまで引っ張って申し訳ない。全く僕にはそれへの対策が思いつかないのだ・・・。

とりあえず、僕と同じ思いの人はアメリカに引っ越して、アメリカ企業に勤めてみてはいかがだろうか。良い地位を与えられる可能性は、日本にいるよりずっと高いはずだ。