プログラマ35歳定年説

そろそろ今年の就職活動も終盤かな? 来年、プログラマとして新社会人生活の第一歩を踏み出す人も多いだろう。 私もかつてはその一人だった。
掲題の説は、その頃から(いやいや、実はもっと前から)繰り返し唱えられてきたものだ。 定年とされる年齢には若干の幅があるが。
若い頃は「オレは例外」なんて一笑に付していたものだが、この業界でそれなりに経験を積んできて、一面の真理を言い当てていると思うようになった。
そろそろ文章に纏めようと思っていたところ、折り良く他のブログでもこのテーマを取り上げていたので、それらの意見とも絡めて考えてみたい。


まず初めに「プログラマ」の定義を明確にしておこう。
私個人は、「プログラマ」とは上流〜下流の全ての工程に関わる者だと思ってる。 元々embeded志向だった私は、(一個人でシステム全体を掌握できる規模のものが多いため)それが出来て当たり前、出来なきゃプログラマを名乗る資格はないとさえ考えている。 そういう意味では巷間言われるSE像と一致するのだが、これは私見
一般的には、顧客折衝なども含めた上流工程がSEのテリトリーで、中流以降がプログラマの守備範囲、というのが通り相場だろう。
定年説もこれを前提としているだろうから、このエントリではその前提で話を進める。


最初にこの説を耳にした時、「技術のキャッチアップが出来なくなる」ことがプログラマの定年(寿命)なんだと理解した。
当時の私はまだ若く、いろんな知識を吸収できる自負があったし、技術に対する興味を失うなんて実感が湧かなかった。 だから一笑に付したわけだが、今はどうか?
残念ながら、物覚えが悪くなったことは否めない。
それより何より、技術に対する興味が減退したことは我ながらショックだった。 正確には「興味の対象に広がりがなくなった」と言うべきか。
今でもOSやコンパイラなどのシステムプログラミング、ハードウェア制御やリアルタイム処理といった組み込み系技術、それに音声・動画・3Dモデリング/レンダリングなどには興味を持ち続けている。 問題は、それ以外のものに対する興味が萎えてしまったこと。 メシの種であるWeb系技術(AjaxとかRuby On Railsとか)は、一応軽く押さえてはいるものの、正直あまり面白いと思えないから困る。
ただね、だからと言って「自分は終わった」とは思っていないんだ。 MINIXLinuxのように情熱を注げる対象がまた出てきたら、きっとそれにハマると思う。
それに、記憶力とか技術的興味の減退というものは多分に個人差があるから、定年説の論拠としては少々説得力に欠けるだろう。


では、何が私に「一面の真理を言い当てている」と思わせるのか。 それは「組織の圧力」が働くからに他ならない。
プログラミングは特殊な技能ではあるけれど、理系なら少々は出来て当たり前、という世の中になった。 プログラミングが出来ないのにプログラマを選択する人は、今では殆どいないのではないか。 一方で顧客折衝とか工程管理といった業務は、少なからず経験を要するものである。
かくして「誰でも出来る」プログラミングは若手の仕事となり、トウの立ったプログラマには業務経験を積まねば出来ない仕事が回される、という仕組みが出来上がるわけだ。
ここで「(一生涯)ずっとコードを書き続けたい」と言ったらどうなるか? それには、こんな現実が待っている。(いずれもほぼ実体験)

お前の単価じゃ見合わない

主に上長から発せられる言葉。
業界には「SE単価」と「プログラマ単価」というものが厳然と存在していて、SE単価の方が3〜5割ほど高い。 そしてプログラマだと名乗ったとたん、取引先のプログラマ単価が適用されることになる。
年功序列型賃金制度は崩壊したと言われるが、現実は加齢と共に給料が上がる仕組みはまだ残っていて、それと見合わなくなってしまうのだ。

(それなりの給料貰ってるんだから)ちゃんとマネージメントして下さい

コードばかり書いていて工程管理やメンバへの指示・指導をしないと、部下からこう言われて突き上げられる。 これは辛いでっせ。
そうならないよう常日頃から部下の指導を行うことが肝要だが、これは得てして上手くいかないものなのだ。

コードを書いても構わないが、マネージメントもよろしくな

これも上長から発せられる言葉。 会社組織としては、マネージメントもこなした上でコードまで書いてくれるなら願ったりかなったりだろう。
これらを器用にこなす人もいるが、大抵の場合、両立は難しい。 何故なら、プログラミングは集中力を必要とする作業だが、管理業務は広く全体を見渡す気配りが必要だからだ。 背反する性質の業務を上手くこなすには、頭の切り替えを素早く行わなければならないが、このコンテキストスイッチングを少ないオーバーヘッドで行える人は、そう多くはいないと思う。


斯様に、本人はコードを書く気満々でも、35歳くらいを境にして上記のような力学が働き、生涯現役プログラマの夢は打ち砕かれることとなる。
かく言う私も、開発現場から離れて久しい。 現在は開発体制の整備とか、社内教育などの任にあたっている。
自ら望んだわけではないが、これはこれで少しは面白味を感じているし、本当にコードが書きたければサンデープログラマになればいい。 今はそう思っている。


さて、ここからは同じテーマを扱っているブログについて言及しようか。

本来なら、有能なプログラマこそ、純粋にプログラマとして働いてもらうべきだろう。そして、それを実現するためには、人事や組織、キャリアプランのあり方といったことを見直していく必要があるのではないだろうか。

同感。 しかし「SE単価」と「プログラマ単価」の違いは一企業内で閉じる話ではなく、業界全体でコンセンサスを形成しなければならない問題。
現実には限りなく不可能に近いように思える。

業界自体の歴史が浅いため、こうした問題は、重大視されてこなかったのかもしれない。しかし、本来なら、有能なプログラマこそ、純粋にプログラマとして働いてもらうべきだろう。

というのは非常に視野が狭い考えかただ。「プログラマー」という肩書きに拘泥したいならとにかく、「SE」だろうが「プロジェクト・リーダー」だろうが、プログラム出来ればいいではないか。

適材適所を是とするなら、本人の希望と適性を勘案してプログラム専任者とする道もあっていいと思う。
私はプログラマ志向ではあるがSE経験もあって、それなりに面白味も感じてはいた。 顧客の無茶な要求に対し、その問題点を筋道立てて説明し、予め用意した代案に納得してもらった時などは醍醐味を感じる。
しかしSEだった数年間、コードを殆ど書かなかったことで勘が鈍り、強い焦燥感を覚えたことも事実。

プログラミングスキルはプログラム以外の仕事をすればするほど上がって行ったことを実感できている。コードばかり眺めていても、いいプログラマーには絶対なれない。

確かに「業務や理論を熟知しなければ良い実装が出来ない」仕事は存在するだろうから、後半部には同感。
しかし「プログラミングスキルの上がる、プログラム以外の仕事」とは、具体的にはどんなものだろうか? ちょっとピンと来ない。 「プログラミングスキル」を広義に捉えれば、分からなくもないのだが・・・。