2011年9月29日木曜日

プログラマ70歳定年説

最近またプログラマ35歳定年説をよく目にするようになりました。
「日本の典型的なSIerの世界では」という前提であれば、35歳定年説はあながち間違ってないのかもしれません。でもその前提となっているSIerの体制自体には大きな疑問を感じます。いったい何が問題で、どうすれば生涯プログラマとして生きていけるのでしょう?

日本のSIerの不自然なカースト制度

プログラマ35歳定年説はPM・SE・PGといった日本のSIerの不自然な職種分離が最大の原因です。
PM/SE/PGは別のスキルが必要なのに、年齢とともにジョブチェンジしていかなくてはならないプレッシャーがあります。大手SIerではろくにプログラマを経ることなくいきなりSEとしてデビューしたりもします。

こんな変な仕組みが出来た原因はソフトウェア開発の本質があまりわかってないときに製造業モデルを無理やり当てはめたからではないでしょうか。

このモデルではPGは部品組立の「ルーチンワーカー」みたいなものです。プログラムのわからないSEの設計を元にプログラミングしなければならず、フラストレーションがたまります。

SEになれば、プログラムも組ませてもらえず、顧客の御用聞きのような要件定義もどきや、テンプレート通りの設計、プログラマの管理や指示が仕事になります。そして技術にも疎くなっていきます。

PMになれば、もう完全に技術者とは別スキルが必要になって、技術分野だけで活躍してきた人には、うまく実力が発揮できなかったりします。

終身雇用では、昇給もするので、いつまでも下っ端の仕事をやってないで、管理をやれという話になります。そして優秀なゼネラリストタイプの人間以外は、出世の過程でピーターの法則によって無能力化されていきます。それと似たようなことがこのPM/SE/PG階層でも起きてしまいます。

35歳定年説の大きな要因ー自分より年齢が上の人を使いたくない

PMやSEのサブリーダーなどは自分より年齢が上の人を使いたくないですから、採用しなくなります。PMやリーダーSEにならない限り、必然的にリーダーでないSEやPGは年齢が高くなると採用されないという結果になり仕事がなくなります。

社内で「できる人」だと、なんとかなる?

社内で結構「できる人」扱いになっていても、果たして会社の外に出たときにすんなり受け入れられると思いますか?
よほど貴重な専門スキルを持っていない限り、社外に放り出されたら「その他大勢」として見られます。会社に所属していると安心してしまい、年齢が高くなれば雇ってさえもらえないということに自覚がない人も多いのではないでしょうか。実力を見せる機会もなく、門前払いになってしまうことも覚悟しておくべきでしょう。
いっくら技術があると自負していても、一緒に仕事でもしなければ、なかなか伝わりませんから。
それにグローバル化でこれからの日本の状況は厳しくなることは避けれません。所属する会社だっていつまで存続するかわかりません。

要件のヒアリングから開発・テストまで行う「プログラマ」

もうずっと言われていることですが、SEとPGの区分けではなくて、要件からアプリケーションの開発・テストまでを一つの職種にすることは必須ですね。新しい考え方の会社だとあたりまえなのかな。そういう人は「本当の」という意味を含めて「プログラマ」と呼ばれることが多いですね。

PMにしろプログラマにしろ、ジョブチェンジせずに、それぞれの専門性を磨いて職種の中でランクアップしていくという形が好ましいでしょう。実際にアメリカなどではそうだと聞きます。

生き残る可能性のあるプログラマ

プログラマには「サラリーマン志向タイプ」と「プロフェッショナル志向タイプ」に大きく分けれます。イメージとしてはざっとこんな感じです。

サラリーマン志向タイププロフェッショナル志向タイプ
ノルマをこなせばそれでいい
言われなかったらやらない
ルールのおかしい点に気づかない
コピペでも早く終わらせりゃいい
プログラムのネーミングはどうでもいい
コードが汚くても気にならない
給料がもらえればそれでいい
・・・
アンテナをはって新しい技術を取り入れる
自分から提案する
ルールのおかしい点の改善を試みる
将来のメンテナンス性も考慮する
プログラムのネーミングを重視する
美しいコードに感動する
いいものを提供したい
・・・

「プロフェッショナル志向タイプ」だったら社外に放り出されても、生き残れる可能性はありますが、「サラリーマン志向タイプ」のままでは生き残りは難しいでしょう。人月計算の世界では理解されづらいことですが、これらの2つのタイプは決定的な差があることは分かる人には分かると思います。

プログラマの生き残り問題を考えると、どうしてもこれから確実に訪れる格差社会と切り離して考えるわけにはいきません。グローバル化でルーチンワーカーは間違いなく仕事がなくなり厳しい状況になります。プログラマにも確実にその波は訪れるでしょう。実現が難しいとはいえ、「ベーシックインカム」みたいな仕組みが、これからの日本には必要なのかもしれません。この問題は話がそれすぎるので、またいつか。

ベテランのメリット

ベテランは若くて使いやすいというメリットを上回る価値が提供できればなりません。プロフェッショナル志向のベテランの技術者のメリットはどういうものがあるでしょうか。個人差があると思いますが下記の点が経験の長さで得られる傾向があるかと思います。
  • 豊富な知識/ノウハウ
  • マクロの視点/ビジネスの視点
  • チーム全体のことを考える(「俺が俺が」でなく)
プログラマはルーチンワーカーではなく知識労働者です。やり方次第であり、生産性や品質に10倍以上の個人差が出てくるということは、プログラマなら感覚的に分かると思います。
そのような生産性のあるベテランの労働力を生かさない手はありません。

プログラミング能力的には70歳でも現役可能

常に変化を受け入れ、向上を続けていけば、能力的な面だけでは70歳までプログラマを続けることも全然可能だと思います。記憶力が低下しても、コンピュータが補完してくれます。タイピングのスピードが落ちても補完機能が進化しているので大した問題ではありません。
蓄積された経験とカンでカバーできる部分も多いでしょう。
現状に満足して新しいものを取り入れることをやめ、既得権を守ることだけに力を注ぐようになったときに、定年へのカウントダウンが始まるのだと思います。

今のままの日本のやり方ではプログラマの寿命は短い

これからは終身雇用がなくなり、経済の厳しさから同じ会社に居続けるという可能性は低いと考えていた方がよいでしょう。
所属する会社から出た場合仕事先を探さなければなりませんが、雇用者側は高い年齢のプログラマを正社員として同じ職場で雇用することは抵抗がある場合が多いと思います。アメリカのように年齢で採用を決めることがない文化になればいいですが、そう簡単に人々の意識は変わりません。
ですから今のままでは、若いうちしかプログラマとして生きていくのは難しいでしょう。

そうだ「プログラマ70歳定年」の実現を、これからのテーマの一つにしよう!

残念ながら今のままの業界では一生プログラマでいれるのは、特別な能力のあるほんの一握りの人しかいないと思います。

考えなければならないことは、雇用側の心理的な抵抗をなくす新しい雇用形態とネットを使った新しい仕事のスタイルです。雇用側にもプログラマにもどちらにもメリットがなきゃいけません。ちょっと考えがありますが、長くなるので、また次回にしたいと思います。

http://d.hatena.ne.jp/gothedistance/20110927/1317112120
http://blog.livedoor.jp/lalha/archives/50067277.html

2011年9月13日火曜日

自前サーバを捨ててクラウドへ向かえ!PaaSとSaaSでオールOKだよね?

ほとんどの企業のシステムは自前サーバで、クラウドは様子見のところがまだ多いようです。企業のシステムを提案するSIerはハードウェアごと売れないと死活問題になります。だから広めようとしないこともクラウドが普及しない大きな理由でしょう。でも自前サーバは構築や運用に莫大な時間と労力と費用がかかりますし、クラウドにないリスクもあります。本当はほとんどのシステムはクラウド化した方が圧倒的にメリットがあるのです。クラウド化のメリットとリスクの正しい認識が早く浸透して欲しいと願ってます。