2010年9月21日
ある程度の年齢を迎えたプログラマが抱える悩み
ある程度の年齢を迎えたプログラマが抱える悩みに、「若手のプログラマと比べて、どうやって価値を出していくか」という問題があります。これは言い換えれば「同じような生産性であれば、相対的に給料の低い若手のプログラマに置き換えられてしまうのではないか」という悩みです。
この問題のひとつの解決策は、プログラマ以外の仕事のポジション(たとえば管理職など)に移ることですが、他のポジションには向いていない、まだまだ現役でプログラマをやりたいという場合にどんな戦略があるか考えてみました。なお、後述するように、以下に挙げた戦略は相反するものではなく、組み合わせが可能です。
エキスパート戦略
この分野ではトップクラス、というレベルの専門性を身につけ、その分野に特化してキャリアを築くという戦略です。たとえば、ネットワークやセキュリティといった分野で一流と認められる専門性があれば、そう簡単に他の人に置き換えられることはなさそうです。
この戦略の問題点は、そういった仕事が常にあるとは限らないという点です。たとえば、コンパイラの専門家がコンパイラの仕事で活躍できる企業は限られているでしょうし、そういった会社の中でも、自分にとって最適なポジションにつくのは難しいかもしれません。また、分野によっては参入障壁が低すぎて簡単に追いつかれたり、そもそもその分野の市場価値がなくなってしまう可能性もあります。適切な専門分野で一流になり、よいポジションを確保し続けるのは簡単ではなさそうです。
ジェネラリスト戦略
幅広いスキルと柔軟性を身につけて、自分が活躍できるプロジェクトの幅を広げていくという戦略です。IT業界は時代に応じて、求められるスキルが変わります。また、ひとくちにプログラマといっても、さまざまな分野の仕事があり、必要とされるスキルは異なります。幅広いスキルと柔軟性があれば、その時々で最も必要とされているプロジェクトに加わり、経験を生かした活躍ができそうです。
この戦略の問題点は、差別化がしにくいという点です。エキスパートであれば、「この問題に取り組めるのは彼しかいない」という差別化が可能ですが、ジェネラリストだとそうはいきません。差別化がしづらい分、他の人に置き換えられる可能性は高いかもしれません。また、目下のプロジェクトに忙殺されていると、手持ちのスキルがいつのまにか時代遅れになってしまう危険性もあります。常にスキルを磨いて、生産的なジェネラリストであり続けるのは簡単ではなさそうです。
テクニカルリーダー戦略
技術に加えてリーダーシップのスキルを身につけて、テクニカルリーダーとしてのキャリアを築くという戦略です。複数人、あるいは複数のグループが関わる複雑なプロジェクトを遂行する上では、リーダーシップは不可欠です。適切な技術的判断ができる熟練のテクニカルリーダーは他の人に簡単に置き換えられることはなさそうです。
この戦略の問題点は、中途半端な立場になりやすいという点です。技術的な仕事を自分でもこなしつつ、チームを率いていくのは簡単な仕事ではありません。他のグループとの調整や議論、各種の会議への出席など、リーダーにふりかかる仕事は無数にあります。こうしたことに時間をとられすぎると、いつのまにか自分の時間がなくなり、手を動かすわけでもなければ、マネージャーでもないという、中途半端な状況に陥る危険性があります。その結果、自分の成果も中途半端なものに終わってしまうかもしれません。手を動かすこととリーダーシップを両立させるのは簡単ではなさそうです。
オーナー戦略
重要な製品や機能を手がけ、そのプロジェクトのオーナーとして君臨するという戦略です。たとえば、すべての自社製品で使われる共有のライブラリやシステムを開発して、その改良やメンテナンスを続けます。そのプロジェクトについてはオーナーが一番詳しいわけですから、他の人に簡単に置き換えられることはなさそうです。
この戦略の問題点は、長続きするプロジェクトはそれほど多くないという点です。長くヒットする製品はそれほど多くありませんし、ライブラリやシステムもある程度枯れてくると、やることがなくなってしまいます。設計の刷新など、大幅な変更を定期的に行わないと、すぐに飽きてしまうかもしれません。プロジェクトのオーナーとして君臨し続けるのは簡単ではなさそうです。
イノベーター戦略
よいアイディアをコンスタントに生み出し、プロジェクトを自分で立ち上げて実現していくという戦略です。自分で立ち上げたプロジェクトであれば、やる気もでますし、成功した暁には最高の評価が得られるでしょう。よいアイディアをコンスタントに思いつくのは、なかなか真似できませんから、そう簡単に他の人に置き換えられることはなさそうです。
この戦略の問題点は、アイディアが枯渇したら終わりという点です。次々とヒット作を生み出した作家でもスランプの時期はありますし、スランプから一生立ち直れない場合もありえます。時代に合わせて求められているものを見出し、アイディアを形にしていくには並々ならぬ才能と、日々の努力が必要そうです。イノベーターであり続けるのは簡単ではなさそうです。
セレブリティ戦略
この人はすごいというブランドを作り上げて、セレブリティ的な地位を確立するという戦略です。何かわかりやすい業績を持っている人は評価されやすいものです。そうした業績を積み重ねて組織の内外で一目置かれる存在となれば、何かと得をすることが多く、そう簡単に他の人に置き換えられることはなさそうです。
この戦略の問題は、評価と実態が必ずしも一致しないという点です。過大に評価されると、実態との落差が後から判明して失望させてしまうおそれがあります。また、調子に乗っていると無用に敵を作ってしまうかもしれません。とはいえ、特に組織の中では過小評価されるのは困りものですから、自分がやった仕事を正当にアピールしていくのは得策といえそうです。評価と実績をバランスさせて、うまくやっていくのは簡単ではなさそうです。
ハイブリッド戦略
以上に挙げた戦略は相反するものではなく、組み合わせが可能です。たとえば基本はある分野のエキスパートだけど、実は他の分野にも詳しいというジェネラリスト的な要素もあれば、ひとつの分野しか知らない人では真似できない仕事ができるかもしれません。いわば二刀流の戦略です。
まとめ
以上、思いついた戦略を挙げてみました。当然簡単な方法などなく、どれもなかなか難しそうです。他にもいろいろな戦略が考えられると思います。何か名案があったら教えていただければと思います。
以前に書いた記事で関係がありそうなもの:
- プログラマについて - 以前に生産的なプログラマについて考察しました。
- 年を取ると環境設定がどうでもよくなる現象 - いろいろ面倒になるものです。
- 研究と研究マネジメント - だいぶ昔に研究について何やら書いていました。
- 身近な人の偉大さは半減する - これも古い記事です。セレブリティ戦略を書いていて思い出しました。