Table of Contents
はじめに
日本人的な感覚なのかわかりませんが、技術には四季があるなぁと思うわけです。
この四季が、なぜ専門家には寿命があるのか(「プログラマー35歳定年説」など)を説明してくれます。
私自身はプログラマー35歳定年説を最初聞いた時から好きではありませんでした。それは人を使い捨てにする考え方だ、と身構えさせるものがありました。確かにどのようなプログラマーにも冬は来るのかもしれません。しかし誰に、二度と春が来ないなどと宣言する権利があるのでしょうか?
この記事では、
- なぜ技術者は同じことをやっていてはダメなの?
- なぜ技術者は一生勉強しなければならないし、勉強しているだけでもダメなの?
- 本当に優秀な技術者って何?
といったことに光を当てていきます。
技術の螺旋
技術の螺旋とは
退屈→勉強→実戦→蓄積→退屈
のループであり、植物に例えれば、
種→根→花→実→種
という感じです。これを実体験で説明してみます。
季節の寓話 – NoSQLの寓話
かつてDBエンジニアに冬が来た。
DBエンジニアの給与はじわじわと下がっていき、退屈になった。そんなときに、新技術が現れた。
春が来て、NoSQLが盛り上がったのだ。
みんな狂ったように勉強して、各々選んだNoSQLに根を埋没していった。
夏が来た。みんな転職して給与が上がった。
みんなが忙しく、充実した戦いの日々を過ごした。
秋が来た。GoogleやAmazonによるNoSQL as a serviceが完成した。
もう中身を理解せず、生産的に稼ぐことが大事。
実戦で得た経験や戦いの記録を出版して有名になったり稼いだり、みんな収穫に余念がなかった。
また冬が来た。何も考えずBigQueryを叩く時代が到来した。
もうNoSQLは学生アルバイトでも出来るような簡単な仕事で、給与的にも特に旨味もなくなった。
NoSQLの実装とか知っていても1円にもならないのでどうでもよくなり、給与はじわじわと下がっていったので、次第に詳しい人たちも去っていった。
そこにはみんなが作った素晴らしい箱と、売られるのを待つ人月、それらを売るインテグレーターだけが残った。
箱+人月=SIer
螺旋が生じる理由の考察
こうして1つの季節が終わってしまいました。あ〜あ。僕がHadoop勉強した時間はもう2度と戻ってきません。
こうした現象を論理的に考察したいと思います。
技術者としてお金を稼ぐだけであれば枯れた技術を運用していけばいいわけです。
そりゃ簡単な仕事だから、みんながやりたがるので、ケインズの需給理論に従いじわじわと給与が下がっていきます。大変な仕事ではあるけど、まぁ報われません。
安くて簡単な仕事って退屈です。これが技術者の冬です。
退屈は技術者に「あがき」の衝動となって現れます。技術者は本当は大して興味がなくても、突破口を得たいがためになんでもかんでも勉強するわけです。知を得ると退屈をやわらげる効果があります。結果的に、勉強が進み、どんどん勉強が好きになっていくわけです。
また、勉強を効率的に行う鍵は内発的報酬なので、金銭的報酬が与えられないことも重要です(マシュマロ効果)。お金を稼ぐ場所がないから、pureに勉強が進んでいくのです。
これは、「知の大地に自らの根を張っていくような活動」と言えると思います。技術者はこうやって、知の大地の上にアイデンティティを確立していくのです。これが技術者の春です。
しかし幸か不幸か、根を張り終わるか終わらないかのうちに、技術は金=外発的報酬になります。
こうなると、もう技術者は生命の燃焼とばかりに実戦に明け暮れます。技術闘争です。血で知を洗う技術競争が起こり、次第にこれまでのブルーオーシャンからレッドオーシャンになっていきます。これが技術者の夏であります。
死屍累々の上に技術者は、得た技術をソースコードとして蓄積していきます。ソースコードにすると再利用可能になり、生産性が上がり、生存に有利だからです。技術者はソースコードを溜め込み、厳しい戦いを生き残ろうとします。技術者の秋です。
実はこれ、枯れていくプロセスでもあるのです。
なぜかというと、ほとんどがソースコードとして洗練されて、完全に動くようになってしまうと、大して仕事はなくなるからです。これは一見いいことです。
しかし、実は今まではオープンソースの中身や根底にある原理まで細かく理解していた高度な技術者も、必要なくなるのです。理解しなくてもソースは動くので、動かす人は誰でもいいのです。
これまで前線にいた技術者ほど暇で退屈になっていくというのが、技術者の冬なのです。
ゆえに燃え上がる夏と蓄積して記録していく秋は、忘却のプロセスでもあるのです。
使わない知識は、忘却され、重要な知識は、戸棚にしまわれて・・・戸棚にしまった人は、2度とその知識を使わないのかもしれません。
こうして技術者は退屈から外に”狩りに”出て、退屈な洞穴へと戻っていくのですが、洞穴ではりんごやら栗やら収穫されたものたちを商人がお金でやり取りしていて、狩猟者にとってはもはやどうでもいい風景が展開されているのでした。
技術の螺旋の意義
この四季の螺旋に巻き込まれている技術者の立場からは、世の中のトレンドに振り回されて無駄に勉強して消耗したように見えます。しかし厳密に同じところに戻ってくるわけではなく、ちょっとだけ世の中が進歩しているわけです。要は螺旋的上昇をしています。
当事者としては疲れます。螺旋を一周回すのに5年程度はかかるからです。ここで力尽きた技術者は、技術者としては終わりになります。
つまり技術者の技術者としての寿命とは、螺旋を何階まで上がれるかなのです。
- 1周目:WebとかiPhoneでした。億万長者になれると思っている学生アルバイトでした。
- 2周目:ビッグデータ。Data is new oil !(という欺瞞)
- 3周目:画像処理AI。これはまだ階段の途中にいます(2020年現在)
主観的には疲れましたが、そっと離れて螺旋の階段を見てみると、階の上昇が見られるような気もします。しかし私はこれらを全て理解しているのだろうか?という疑問も生まれます。
アンラーニング
ここで見落とされがちなのは、アンラーニングの意義です。アンラーニングこそが、螺旋を上がるのに必要な儀式であり資格なのです。
技術者は勉強だけにとらわれがちです。しかしながら、収穫の秋は忘れていく作業でもあります。ここでちゃんと忘れないと、人間としての記憶領域を超過し、螺旋階段の途中で身動きが取れなくなってしまうのです。
技術の螺旋は次のようにも捉えられます。
頭空っぽの状態→ラーニング→アンラーニング
技術者はラーニングは得意だがアンラーニングは苦手なのです。アンラーニングの仕方を解説します。
離脱する
転職したり勉強会から離脱します。友達関係は継続していいですが、その技術でイキったり、細かいところまで把握するというのをやめます。
時間が空いて不安になるかもしれませんが、もっとマクロなことを考える時期に来たのです。
転職を勧めているように読めてしまうかもしれませんが、転職すればいいというものでもありません。やっていることが変わらなければ、それは前職のストレスからの逃げであり、時間が空いてしまい感じる虚しさからの逃げに過ぎないからです。
アイデンティティーを保ったまま転職するよりも現在の職にとどまったままアイデンティティーを捨てる方が大事だ(結果的に非連続成長するのでそれも会社のため)、と言えます。
物理的要因の解体
家にあるサーバーをリストアしたり、クラウドサーバーを解約したり、本を売ったりします。ブックマークを消し、サブスクを解約します。
心理的脅迫観念の解体
「その技術を勉強しなければいけない」という気持ちを脅迫観念といいます。それは”敵”と戦う上では有用ですが、道具以上のものではありません。むしろ健全な生活を送る上では害でしょう。これを解体します。
その技術を勉強すべき「大前提」はなんだったのでしょうか?
技術の春から時間が経過して秋になった以上、その前提はもはや成り立たないのです。
例えば私がKafkaを勉強していた時、「Kafka as a serviceやKafka Streamsは存在しない」ということが大前提でした。そのために、Kafkaの実装まで追わないと活用はなかなか困難でした。しかし、その前提はすでに崩れています。
ゼロ・グラディエント・ベクトル
グラディエントとは勾配という意味の単語で、機械学習で次に向かうべき方向のことを意味します。
物理的にも心理的にも解体が完了した以上、いままで勉強していたトピックの本や論文を見ても、心は動かされなくなります。つまり、今までと同じ物体が、あなたの心に生じさせるベクトルに変化が生じるのです。
- Before: 次にいくべき方向の強い強度のベクトル
- After: 何も感じない。ゼロベクトル
これは、生物としての本能です。人間の左脳=ロジックは、論理を超えたスピードの現実を処理できないため、時にいくべきでない方向をさし示すことがあります。人間の右脳=直感は、その誤った情報を打ち消しゼロベクトルを生じさせることで、人間を守るのです。
だから、心が動かないことを勉強してはいけないのです。
技術者は、心が動くことを勉強するのは得意です。心が動かないことを勉強してはいけないというのは、意識しないと難しいことかもしれません。「自然は真空を嫌う」という言葉の通り、何か勉強していないと不安で仕方ないからです。この不安を、前述した通り強迫観念と呼びます。
ひとりになる
あなたの心が動かない以上、これまでの仲間とも離れ、あなたは一度ひとりになります。
この孤独と不安に耐えられるかが、螺旋を上がる試練となります。
無限螺旋上昇のテーゼ
では、死ぬまで螺旋を上昇し続けるにはどうしたら良いのか。3つの結論を述べます。
物事の”終わり”を理解する
技術者にとって冬の到来は必然的であり、しかし嘆くべきものではないと言うことを理解する必要があります。
冬が到来したと言うことは、無事にその技術にとっての1年が過ぎ、螺旋が上昇したと言うことでもあります。
つまりより良い未来に一歩前進したわけです。
それは技術の世界の大前提が塗り変わったことを意味します。今まで最先端だった技術はもう使えて当たり前のものなのです。あらゆる研究分野もいつか研究され尽くして終わります。前提を塗り替え、新しい思考法を生み出すのが、冬の時代の過ごし方なのです。
残念ながら多くのエンジニアは冬を嘆いて螺旋の階段を上がらずにいるか、何階も下の螺旋で留まっているままなので、そこに冬を迎えたエンジニアであるあなたにとっての勝機が生まれます。
螺旋を上がるには一度孤独にならなければいけませんが、みんなで冬を嘆いていれば、孤独を感じないで済んでラクなのです。
物事の”終わり”は、人生のあらゆる場面で現れます。そのときに人間はひとりで心理的崩壊を体験します。それを解説した心理学の本があります。
ミクロではなくマクロで理解する
螺旋的な技術変化を階数上昇で見る癖をつけましょう。
一世代の闘争の後残されたものは何か、そして多くの人が忘れてしまうのは、「闘争に入る前は何が無かったのか」ということです。
例えば、iPhoneの技術がひと段落した時に多くのソフトウェア技術者は落胆しましたが、その闘争以前には、個人がサブスクリプションで稼ぐ方法はほとんど存在しなかったことを思い出しましょう。
ということはすでに個人がサブスクリプションで稼ぐと言うのは単なる使うための道具に過ぎない、と言う前提で考えなければならないのです。
目に見えない”螺旋の振動”を理解する
螺旋をあなたがひとりで上昇していく時、その動きはあなたの周りの人たちに振動を与えています。その振動は人々や社会の中に永続的に共鳴して残ります。
より簡単に言うと、その時書いたブログ記事が10年以上読まれたり、その時書いたソフトウェアが10年後も使われていたりします。
それは金銭のような目に見えるものではないかもしれません。しかしその透明な振動は、確実に不可逆な変化を社会に与えています。
螺旋を上昇するように生き、見えない振動を感じることが、螺旋の途中で立ち止まりリタイアしないための道なのです。
結論 – 常に螺旋の上に立て
- 勉強したことは全部無駄になる(物事は”終わる”)
それでいいんだ。忘れるから勉強しないとかケチケチしたことをいうな。ただ、撤退基準は徹底すべきなんだ。
- レッド・オーシャン(秋)になったら収穫しつつ潔く撤退する
逆に、秋になった時に次の春になるタネを探すのが、マネージャーとしての腕の見せ所だと思う。これは次回”技術の二重螺旋”にて解説予定(笑)エンジニアとビジネス/マネージャーの螺旋は、半期ずれてDNAのような二重螺旋になっている。
- 技術は螺旋的に進化する
- 技術者は螺旋を何段階も上昇しつづけなければならない
螺旋の途中で立ち止まったり、螺旋を1階上がったところで立ち止まったりしていくと、35歳定年も濃厚になってしまうぞ。
立ち止まってしまうのは、疲れているからだ。うまくアンラーニングすることが、次の技術の螺旋に乗る助けになるだろう。
確かに、新技術は全て既存の技術の上に立脚する・・・そう、ディープラーニングがボルツマンマシンの上に立脚したように。でもボルツマンマシンはもう忘れよう。ボルツマンマシンからディープラーニングに螺旋上昇しそこねたエンジニアは、もう化石になっている。
- 社会は螺旋の周りに振動する
螺旋を登るのは孤独な道だ。虚しいかもしれないが、それは本当の意味のひとりじゃない。
みんなが螺旋の存在に気づいていない。あなたの使命は、螺旋の上に立って発信し、螺旋の存在を、上昇の振動によって知らせてあげることでもある。
- 螺旋の上端に居続けることがエンジニアとしてのハイキャリアを実現する
エンジニアに産まれた以上、常に螺旋の上に立ち、デカイことをやっていきたい。
ピンバック: スパイラル・エンジニアリングマネージメント ミュウツー育成編 | The Big Computing