以前、noteに書いたものです。
先日、とあるツイートをした。
何ヶ月か前にも言ったんだけど、生涯プログラマーでいようとしている人たちが50,60歳頃のキャリアプランをどう考えてるのか聞いてみたい。報酬、立場、やる内容。正直、僕はここに答えがなくて考え続けたけど未だに答えがない
— Keisuke Nishitani (@Keisuke69) 2020年3月5日
かつてよく言われた『プログラマー35歳定年説』なんてのは最近だともう言われることもなくなった。事実、自分の周りも含めて35歳以上のプログラマーは全然いる。
もともと、この『プログラマー35歳定年説』ってのはかつては技術というものは進歩が早く、常に新しい技術にキャッチアップし続けるバイタリティやモチベーションが必要だけどそれが一定の年齢になると保てなくなると考えられてたり、年功序列の日本企業においては年齢を重ねることで高年齢のプログラマーはコストが高くつくと考えられたりしたからだろう。さらに、多くの日本企業ではエンジニアのキャリアパスの線上にマネージャがありマネージャにならないと給料があがらないという事情もあったと思われる。35歳くらいというのはそのあたりの境目の年齢なんだろう。
今となってはそんなことはなく経験のあるプログラマーも多いし、必要ともされているし、かつてよりキャリアパスの選択肢も増えた。だが、そうだとしても生涯現役プログラマー、最後までプロダクションコードを書き続けているっていうモデルケースも周りにはあまりいないので、みんながどういう感じを目指しているのか、どういう感じになっていくのだろうかとふと思ったのがこの話しのきっかけだ。
まず、ここで自分自身の今について簡単に話しておくと僕はアプリケーション開発とミドルウェア以上のインフラをキャリアのバックグラウンドに持っているが現在はマネージャをやっている42歳だ。つまり、現在は一線でバリバリコードを書き続けたりしているわけではそもそもない。
今の僕の仕事は基本的にはチームのメンバーに対するディレクションがメインだ。とある戦略や施策をたててそれをより上位の人や社外や他組織などのステークホルダーと握りつつ、その方向性をチームのメンバーに落としつつ成果を出すようにチームを導くことが僕の主な仕事だ。と言いつつも、僕のチームはお客様と一緒にプロトタイプ開発をするチームなのでメンバーは全員アプリケーションエンジニアだったりして技術的な会話をする頻度も高い。
このように、僕自身が現在は業務でコードを書いたりするってことはほぼないものの、今後のキャリアを漠然と考えたときに冒頭のような疑問が生まれたのだ。きっと40歳を超えて、今の会社にもすでに5年以上いることもあってかこの先どうしようか考えることが増えてきたってのもあるのだろう。
僕はもともと縁あってAmazon Web Services Japanを受ける・受けないって話しになったとき、ソリューションアーキテクト(SA)というポジションがプロダクトを直接的に開発する仕事ではないこともあって少なからず悩んだのは事実だ。一方で当時はエンジニアとしての自分に悩み、というか限界を感じつつもあった。
簡単に言うと自分で作ることは楽しいものの、経験の範囲が自分の作ったものしか知らないこと、そこに閉じられてしまうことに漠然とした不安を感じていた。これは当たり前の話しではある。
SAという仕事はいろんな業種、ワークロード、それこそありとあらゆるアーキテクチャを見聞きするし、関与することが仕事だ。そこで自分のエンジニアとしての幅を広げるために一度そういう仕事を経験しようと思ったのだ。そしてこれは間違っていなかったと今振り返っても思える。
といいつつも、もともとは長くても4年くらいAWSで働いたら辞めてまた自分がプロダクトを開発する仕事に就こうと考えていた。だが、途中でロールが変わったりした結果、今ではその選択はあまり考えていない。正確には自分自身が一開発メンバーとしてプロダクト開発に関わることにはそれほどこだわりがなくなった。というかそれだけでは満足できなくなったというのが正しいかもしれない。
決して僕はプログラミングそのものが大好きで仕方ないというタイプの人間ではない。だが、将来もしかして起業をするかもしれないのでそのときのプロトタイプは自分で開発することになると思っている。そのためにもトレンドをキャッチアップし続けたり、知識のアップデートをし続ける必要があってそういう努力は多少している。今は現場でコードを書くことがなく、プログラマーとしての職に戻るつもりがなくとも、将来のためには多少の素振りをし続けておく必要があるのだ。だが、このあたりの話しはまた別の機会で。
話しを戻そう。プログラマーのキャリアの話しだ。プログラマーとは言っているが実は別にプログラマーに限らないのかもしれない。インフラエンジニアとかいろんなエンジニア全部に当てはまるかもしれない。が、ここでは便宜的に、かつ自分の知っている範囲ということもありプログラマーの話しとする。
昨今のプログラミングブームもあってかプログラマー自体はとても増えたと思う。マネージャなんかにはならずに一生プログラマー、ソフトウェアエンジニアでいたいと思っていたり公言している人も多い。それに対して反論も否定もするつもりは全くない。だが、周りを見渡してみると実際に60歳くらいでプログラマーと言える人はそう多くはないのではないか。少なくとも僕の周りにはその心根はともかく、その年でも現場でプロダクションコードをバリバリ書いているような人はいないのだ。実際に今年の1月まで僕のチームには今年60歳になる同僚がいた。彼もこれまで経験や気質としては完全にプログラマーではあるのだが、今現在バリバリのプロダクションコードを書く仕事をしているわけではない。
IT先進国とも言えるUSだとたまに50歳以上、60歳を超えているプログラマーも見聞きするし、実際にAWSのUS開発メンバーにもそういう人はいる。USの別会社の知り合いにも聞いてみるともちろんそういう人はいるそうだ。でも数自体は決して多くはない印象がある。USでも年齢を重ねるとDev Managerとかになっていて直接的にコードを書くポジションからは離れてる人が多い気がしている。あくまでも感覚だが。さらに言うとそれ自体は悪いことでも恥ずべきことでもない。
では多くのプログラマーはその年令になったときにどういうキャリアを歩んでいるのだろうか。また、生涯プログラマーでいたいと考えている人たちはどのようにキャリアを描いているのだろうか。昔は転職することもなくなんとなく、35歳くらいでマネージャに転身して40歳後半から50歳くらいには部長になって、人によってはその先本部長とかさらにその上でとぼんやりあったんだろう。
実は前にもほぼ同様のツイートをしたことがあったのだが、何人かの人にリプはもらったもののそう大きな反応は得られなかった。なので改めて聞いてみたい。そんなこと聞いてどうするんだと言われても聞いてみたいのだ。
きっと60歳でもプログラマーをやり続けること自体は可能だろうし難しい話しではないのだろう。仕事ではなく趣味であったりオープンソースソフトウェアの開発だったりというのも選択肢としてはある。だが、仕事としてやり続ける場合どういう形が成功と言えるのだろうか。
『成功』という言葉に人それぞれの定義があるのは十分承知している。なのでここではプロダクションコードをバリバリ書くプログラマーという仕事をしつつ、一定以上の報酬、同業種だけでなく異業種の同年代と比べても遜色のない報酬を得られる状態にあることを成功と定義しよう。
実際のところ、それなりの年齢でも給料激安、主体性のないコーディングに従事することが嫌じゃない、もしくは許容できるのであれば仕事としてプログラマーで居続けることも簡単なのかもしれない。
でも果たしてそれはプログラマー、ソフトウェア開発者と言えるのか。プログラマーって本来はクリエイティブワークであるはずなのだ。少なくとも僕はプログラミングをそういうものだと考えている。
そういう意味では職人に近いプログラマーはいるかも知れない。みんなそういうプログラマーを目指しているのだろうか。また、職人のようなタイプは技術と報酬のバランスが難しそうという印象もある。これはITの世界だけでなく、だ。技術が売上という形でわかりやすく成果が出る場合はいいだろうが、往々にしてそうではないことが多いと思う。一般論としてそういった場合に十分な報酬として還元されるケースは少ないと思っている。
生涯プログラマーというのを実践できた層がまだ少ないというのもあるだろうし、事実だろう。日本の会社だと定年があるからってのも少なからず影響しているかもしれない。だからこそ、あまりロールモデルもいないのではないだろうか。そういったロールモデルが少ないなかで今プログラマーで将来もプログラマーとして食っていこうと考えている人たちがどう考えてるのか、その意見を聞いてみたい。きっと置かれている年代によってもかなり変わってくるだろう。
個人的には先の定義における成功を得るにはプログラマーであったとしてもプログラミング能力だけでなく、別の何かにも秀でている人である必要があるのではないかと考えている。この『何か』こそが人によっては異なるだろうし、万人にあてはまることのない、いわば形式的な答えのないキャリア戦略になるのではないだろうか。そして、この『何か』は悲しいかな、ビジネスつまりは金に直結する何らかの能力なんだと思う。
結論として、個人的かつあくまでも現時点における考えとしては、成功する、つまり上に行くには『プログラマー』ってだけでは能力として不足する、と思っている。上に行けば行くほど、どちらかというとビジネスとか組織への貢献に比重が置かれていくことになると思うので『プログラマー+α』のαの部分を個々で見つけて成功しているロールモデルが増えていくといいなと思っている。
といいつつも、20代、30代前半の頃はこんなこと考えもしなかったしそんなこと考えながら仕事している人も少ないだろう。みんな目の前のコードをいかに美しく書くか、バグを取り除くかに必死だろうしそうあって欲しい。
結局、何を言いたいかわからない文章になってしまったが、僕は僕でこれからの20年間をどう過ごすか考えようと思う。プログラマーに戻ることも含めて。