インドと日本におけるプログラマーの社会的地位の違い

会社でアジャイル開発を使ったオフショアの会社を経営しているインド人の方の話を聞く機会がありました。私はこうした事情に疎かったので、今までオフショア開発は大規模なウォーターフォール型の開発で、手だけ動かす単価の安いプログラマーを大量に安く雇うための手法だと信じていました。工場を海外に移転して安い労働力で製品を作るというのと同じ発想です。無意味な程細かい詳細設計書を日本で用意して、現地でコードを書かせるだけと考えている人が多いのではないでしょうか?それで、インドのオフショア開発などはアジャイル開発のようなプログラマーの自主性が尊重される世界とはまったく無縁で、それこそ奴隷のように働かされるに違いないとこれまでなんとなく信じていたのですが、実情はまったく異なるようですね。特に現在はヨーロッパから請け負う案件のほとんどがアジャイルで開発されているそうです。日本はオフショアにおいても遅れをとっているようなので割合からは1割にもならず、大半がアメリカやヨーロッパからの案件であるという事実を考えると、アジャイルはインドのオフショア開発において意外にも主流なのかもしれません。
一般的には4人から5人のユニットに一人のチーフプログラマーが配置され、世界中に分散した拠点でコードを共有して開発するようです。労働時間はXPで言うように本当に一日8時間程度に調整されるようです。ペアプログラミングについてはフレーワークなど技術リスクが高い領域については採用し、一般的な業務ロジックの開発には採用しないなど、ケースに応じて使い分けているそうです。そういう世界もあるのだなと正直びっくりしました。
日本の開発現場だと、(私自身の経験からですが)PCも5年以上前の明らかに性能の悪い古い機種を与えられ、おまけに過剰にファイルのウイルスチェックがかけられていて、eclipseの起動も5分以上待つなどどという状況が当たり前のようにあります。しかも、金融系のお客様では、セキュリティの制約からインターネット接続も禁止されているということが普通にあります。プログラマーの自主性などというものはほとんど許されませんし、長時間狭い部屋で労働させられるのが一般的といえるのではないでしょうか。(私自身、最近はいわゆるPGとしてではなくて単価の高めなSEとかアーキテクトという役割で客先で作業することも多いのですが、それでも下請け会社の社員という立場からインターネット接続させてもらえず、ツールの検証やMavenを使ったライブラリのダウンロードが思うようにできず開発環境の構築などで非常に面倒な作業を強いられることが多いです。これは自分の趣味でもあるからいいのですが、そういう事情もありOSSの検証などは多くの場合自宅で行っています。)
だから、インドの開発環境は当然それ以下だろうと信じていたのですが、インドにおける開発環境のクオリティーについて質問したところ、ちょっとあきれたような顔で「インドではプログラマーの社会的地位は医者以上ですよ」とそのインド人にあっさりと言われてしまいました。当然高性能なPCを使ってサクサク開発し、インターネットを使って情報を調べるなどということは当たり前ということでしょうか?多重下請け構造とか終身雇用とかいろいろな理由があるのでしょうが、日本とインドでは土壌がまったく違うのですね。日本ではプログラマーは(少なくともIT業界の人間からは)最下層の職業の一つ、ワーキングプアの代表的な職業として認識されているのに対して、インドでは皆があこがれるエリートの職業なので、一流大学で専門教育を受けた優秀な人がプログラマーをやっているとも聞きます。実際、そのような優秀な人々に無意味な詳細設計書を渡して、規約通りにコードを書けと命令してもよい仕事はできないでしょうし、馬鹿にするなと思われて真面目に仕事してもらえないかもしれません。インドのオフショアをアジャイルで行うということはこのような事情を考えればむしろ理にかなっていると思います。
伝統的に厳格なカースト制度のあったインドでも例外的にIT業界では優秀な人がカーストに関係なく出世できるチャンスがあるということですが、逆に日本の場合どの会社で働いているかで年収や発言権が決まる厳格なカーストが存在します。優秀な人だけが出世して仕事のできない人はすぐにクビになるというインドやアメリカのような極端な競争社会も大変でしょうし、日本の伝統的な制度にもよいところがあるのでしょうが、プログラマーが最低限プログラミングのプロとしてもっと誇りをもって仕事のできる職場環境で働けるようになったらと思いました。PCのメモリー増設などは本来安い投資なはずなのですが、どうしていつも一般的な事務用のPCかそれ以下の環境しか与えられないのでしょうかね。
以前にも書いたのですが(Seamとプログラマーのスキル?)、最近のOSSライブラリーを使いこなすためには専門知識が必要で、実際に労働集約的な手法では使いこなすことが困難です。私自身はJPAJSFの知識を生かして技術支援するような仕事が最近増えてきていますし、(今のところ自分の収入にはあまり無関係のようですが)生産性向上などの面で、お客様からも技術の重要性を再認識していただけるようになってきていると感じます。わが国でも技術軽視、下流工程軽視の傾向が見直され、近い将来プログラマーの専門スキルや知識がもっと正当に評価される時代が来ると私は信じたいと思います。