エンジニアのマッチョはコスパがよい!?

エンジニアとしての姿勢といった話題は気になるもので、「全てのエンジニアに向けて「エンジニアとして生き残るために」…」や「エンジニアに独学を期待するのはもう時代遅れだと思う」はコメント含めとても興味深い内容でした。

こういうのって、自分自身のエンジニアとしての立ち位置やポリシーといった部分をモロ揺さぶってくるからってのもありますけど、エンジニア業界の将来についての危惧や期待といった側面も関係して、色々考えたくなっちゃうと思うんです。私もまぁまぁ前を走れてればいいなと思う立場として、シンキングタイムでございます。



姿勢と役割

マッチョ!!

とりあえず、自身の意思で日常的に独学や技術力向上を目指す姿勢や思考のことを『マッチョ』と呼称することにします。

おそらく筋トレが趣味な方々のストイックな姿勢とムキムキな見た目から、エンジニアにおけるストイック=マッチョになって界隈で使われるようになったんだと思います。

少々危うい感じもしますけど、短くて便利なのでそう呼んでおきます。

多様な姿勢

いつの時代も、ひたすら前を走る人もいれば、必要十分な収入を得ること以上は求めない人もいて、誰しもが適性や状況によってその程度が変化しつつ活動しているわけです。

マッチョであれば、それだけ収入や地位を上げる機会や可能性が多くなるわけですが、既マッチョがマッチョへの道を提示しても、あまり多くの割合に刺さらないどころか、必要性と想像する労力から嫌悪感になる場合もありそうです。

特に最近の傾向をそこらの記事で読むに、そこそこの労力でそこそこの収入を得て、平穏にプライベート重視で過ごせればよい思考が増えているとか。

私自身はマッチョというよりはゲーマー思考でエンジニアリングしていますが、一部マッチョである自覚もあるので、マッチョ意見にはわりと賛同することが多いです。

でも、マッチョ意見はあくまでも、マッチョ適性があるけど未マッチョな層に向けての発信だと思っています。既マッチョは放っておいても仕上がるし、適性のない人にはどう足掻いても響かないからです。

多様な姿勢を尊重しつつ、少しでも有望な層を掘り起こすような、そういう前提であると心がけていきたいところです。

多様な役割

同じように、業務には多様な役割があります。前を突っ走って新しいことを考えたり研究したりする人、ある目的を達成するために自走して奔走する人、想定通りに構築や運用を請け負う人、など様々です。

収入面で言えば、大多数にできないことをやれるほど高くなるし、指示による活動割合が多いほど低くなる傾向にあるでしょう。

能力や適性によって、それぞれの役割を担うという面がもちろん強いのですが、組織やシステムの運用においてはそれぞれの役割に人材を割り当てないと成立しないわけです。全員で好き勝手に研究しても何も提供できないし、全員が指示待ちになっても同様だし衰退もするでしょう。

なのでこれも全員がマッチョになる必要はないという話ではあるのですが、組織として停滞は衰退にもなり得るので、マッチョが全体を急激ではなく緩やかにでも引き上げる必要性は高く、マッチョに目覚めさせる活動もまた正である、という前提になると思います。


成長サイクル

早くもマッチョがゲシュタルト崩壊してきましたが、多様性は尊重しつつも、組織としてはマッチョを必要とするし、個々人としてもより上を目指すタイミングがあるでしょう、ということで、マッチョ成長の流れについて考えていきます。

マッチョ化への道

そもそもマッチョには適性があると思っていて、最も高い適性は『解決病』です。なぜそういう仕組みなのか、どうやって実現すべきなのか、より効率的にできないのか。なぜ・どうして・どうやって、が目の前にあるだけで楽しく生きていける人種です。

他には、取り組み続けていたらだんだん楽しくなってきた場合。『楽しい』は強力な原動力なので、そこからのマッチョ化はわりと容易でしょう。楽しく感じるということは、その業種や業務に適性があるということなので、周りがひと押しすればイチコロマッチョのいっちょ上がりです。

地位や収入のためにマッチョ化することもあるかもしれませんが、おそらく苦痛を伴う変化になるので、筋肉的にいえば柔軟で戦闘向きではない、見せかけだけのカチコチなマッチョになって伸びしろが少なくなりそうです。

エンジニアがマッチョになるとき、既にマッチョであることに気づいていない、のが理想形ではないでしょうか。

技術力向上の流れ

気分転換に雑な画像を作成してみました。

基本サイクル
そもそもマッチョ以前に、技術力ってどんな流れで向上していくかというと、基本的には INPUT・THINK・OUTPUT のサイクルによって仕上がっていきます。

このサイクルの速さと質が、そのまま成長速度になると考えてもよいでしょう。


INPUT INFO
なにはともあれ書籍やインターネットや研修・講習といったモノから知識を取り入れます。

興味が湧いたからか、仕事で必要だからか、理由は様々でしょうがこれがなくては何も始まりません。


THINK
そこに、目的や問題が登場し、達成したり解決するためにどうすればいいかを、INPUTから導き出します。

INPUTが幅広く深いほど、導き出す解は速く質が高いものになるでしょう。


OUTPUT
解が決まれば、開発やドキュメント化などでアウトプットとして成果とします。

業務関連だけのアウトプットを最低限とすると、その先どのくらいまで影響するアウトプットに手を出すかは、エンジニアとしての姿勢・適性に深く関わってくることになるでしょう。


INPUT EXP
せっかくのアウトプットをそのまま放り投げては勿体なく、成果がどこにどのようにどのくらい作用したのかを見届け考察すると、出来不出来や良し悪しを発見できるので、それは改善点となり経験となります。

THINKが強いほど、ここで得られる経験値も自然と多くなり、その経験はさらなるINPUTとされて循環します。知識と経験が弾けて混ざり、よりパワフルなTHINKへと繋がれば、あとはひたすらハムスターのように回転させるだけです。


技術力の差

既マッチョと非マッチョにおける明確な違いとしては、THINKの強さ、つまり解へたどり着く速さ・質・精度に差があり、それはOUTPUTの質とそれによる影響力にも差が出ることになります。

どの程度の差が出るかとかは野暮なので置いとくとして、業務や業務外活動におけるTHINKやOUTPUTに差が出る根本的要因は、大元となる圧倒的なINPUT量の差にあると考えます。

屁理屈こねれば、なんでも読んで覚えればいいってもんじゃないってなりますが、素直に考えれば当然、より多く読んで覚えた方が、より広く深く思考できるので結果につながるし、より多くの結果が出ればより多くの経験が得られるので、それもまたさらなるINPUTとなってどんどん差は広がっていくでしょう。

例えば私個人の経験と考えになりますが、多くのエンジニアは、1つ以上のプログラミング言語と1つ以上のデータベースにはほぼ関わっているはずです。では、その言語やデータベースのドキュメントを全て読みましたか?と問われれば、おそらく全てには目を通していないと大半が答えるでしょう。しかし私は関わったシステムのほぼ全てで目を通してきました。(この辺が多分マッチョで、ファミコンの説明書すら先に全部読んでから始める性格からきている)

それは、良いドキュメントには現在不要な情報はあっても、無意味な情報はないと認識しているからです。後のあらゆる可能性や見知らぬ穴を埋められると考えれば、多少の時間を使ってでも先読みしておくほうが結果的に効率的であることを、経験で理解しているためです。

これはあくまで一例ですが、ときに技術力の差=INPUTの差であると強く感じることがあります。それは、その場で解決してあげることのできない類の差です。もちろん、それは私自身の観測範囲でのことなので、よりマッチョが在籍する場所へ環境を変えれば、あっさり追う立場に変わることも理解しています。しかし、マッチョ下地があれば追いつき追い越すことは可能であろう自信も少なからずつくわけです。

環境が変わらなければマッチョである必要もないかもですが、もし大きな変化が訪れたときに安定した生活を保ちつつ適応することを考えれば、マッチョの片鱗くらいは携えるべしというのが変化の早いエンジニアという職種のあるべき姿な気もします。


時代間格差

成長サイクルにおける差の広がり以外にも、時代の違いによる格差、というか学びの流れに違いが濃くあると思っています。

ファミコン世代

古くはファミコンからゲームをしてきた世代は、ゲーム機やセーブデータと物理的に格闘し、魔界村やスペランカーといった高難易度ゲーを乗り越え、普通では得られない粘りと精密動作を獲得してきたわけです。

現代の若者はそういった苦行を経験していないため、似た粘りや技術はやはり持たないわけですが、現代のゲームをこなすためにそれらが必要かというと、別にそうでもなく、今には今に必要な分の努力をすればよいわけです。

しかし、混沌とした時代ならではの多くの経験をし、無駄な経験もあれば今につながる経験もあるわけです。その、意味のある経験は現在でも習得したほうがよいモノもあるのですが、別にわざわざ難しい初見は楽しくないゲームをやらなくとも楽しいことは他にいっぱいある、今の環境がそれを習得することを許さないような部分もあり、ベテランしか持たぬ技術になりつつあるのです。

(ウチのゲーマー息子も、Switchでくにおくんやプロレスなど名作を楽しむ素養はあっても、魔界村をクリアしてやろうなんて気概は起こらないわけで……)

エンジニアに当てはめると2000年頃から数年間は、今からみれば全てが未熟で全てが急成長してきた、まさにファミコンのような時代でした。KernelやFilesystemに深く潜ったり、ミドルウェアの細かいチューニングをしたり、ガラケーの闇を抱えたり。

──それら多くの技術は不要になっていきました。現在ではコンピューターリソースや利便性の強化を受けて、細かいチューニングや理解を必要としない── もしくは既にコード化していて考える必要がなくなっています。あれだけ苦労したHDMLは見る影もありません。

そうして多くの技術を捨て去ってきたものの、必要だからと学び・考え・形にした多くの経験は、思考の深さや瞬発力となりベテランを支えているわけです。若手が台頭するために、同じ道をたどる必要は全くないし、そもそも辿れないのですが、古くから習得されてきた知識と経験には重要なものがあるのも確かで。それらを必要に迫られて自然な流れで(強制的に?)学ぶことができないので、自らの意思で取捨選択することになるだろう部分は、今ならではになるのかなと。

なので、コンピューターリソースの基礎やコーディングの基本のような一部の中核技術をしっかり抑え、既に形になっていて重要そうなものから学んだりもしつつ、現在ならではの技術の経験を効率的に積むことにフォーカスを当てて取り組む必要はあるのかなと思います。

技術力の積み上げ

では過去10年20年と積み上げてきた老獪なエンジニアに、若い人が太刀打ちできないかというと、そうでもありません。現在必要な知識と技術に絞って磨き上げれば、通常業務の範囲で言えばそれほど差もなく十分戦えるでしょう。

なぜか。長く積み上げてきたエンジニアの技術力を数字遊びしてみました。これは、技術や目的が移り変わるのを2年毎として、2年毎に技術力を100ずつ積み上げた際の、総合技術力の推移です。(遊びなのでガチ突っ込みやめてケロ)



100ポイントずつ積んで20年後に2000万パワーズになるかと思いきや、過去の技術は必要性が劣化していくので、実質残ってるのは500以下だったりします。実際、1500くらい不要になったと考えれば、わりと現実味のある数値な気もします。

向上度合いを抜き出すとこんな感じ。



どんな事柄でも人間の伸び率は徐々に落ちるし、上限もあるので、長くやってりゃ凄いことになるかというとそこまででもない。なのでマッチョな人は環境を変えたりして、高みを目指したりするわけです。私はマッチョよりゲーマーよりなので、同じ環境縛りでいかに楽しく伸ばすかの方が好きっぽいので、面倒くさいし転職してませんけど。

技術の劣化と積り具合をカラフルにするとこんな感じ。(楽しい:-)



さすがに2~3年程度じゃベテランと勝負にならないかもだけど、5~6年すれば結構いいとこまでいくと思うんですね。なぜなら、ベテランが500もってても、その時その時必要とする技術量って200~300程度だったりするので、通常業務の遂行では肩を並べられそうです。

それでもベテランがベテランであるのは、ひたすら積んできたけど不要になった1500の技術は、不要であるけど無駄ではないということです。経験・勘・コツといったものがその分、備わっているので、同量の必要なINPUTをしたとしても、膨大なEXPの差によって、THINKの速さと質に違いが出ることでしょう。

こればかりは盗みつつも、やはり自身で積み上げるしか本物にはならないので、真の一人前になるまでに一定以上の年数を要することもまた、動かぬ現実であります。

盗賊の極意

若手がベテランから技術を盗むべきは当然ですが、ベテランが若手から盗むこともまた有用です。

ベテランはある程度思考が固まっていますが、若手は現在だけを見れば余計な道を辿らず、今ある新しい技術や思考の元に育っているからです。

また、エンジニアとしてはどうしても後追いな時代であるがゆえに、追いつくための効率的な学習や考え方を持つようにも見受けられます。

若手がベテランの経験を盗むことは難しめですが、ベテランは頭を柔らかくすれば若手の良いところを盗むことなど容易なはずです。互いの時代ごとの良いとこ取りをしつつ、ミックスアップできる関係性だという認識が健康的ではないでしょうか。


楽しく続けマッチョ

先行効率型マッチョ

成長サイクルや時代間格差の話を受けて、マッチョ化の話に戻します。否定されたとしても、あえて少しでもマッチョ化しておくことをなぜ勧めるのか。

言うまでもなく、基本的に実力ってやつは、かけた時間に比例して伸びます。プライベートを重視したいとかも良いですが、そのプライベートにエンジニアリングを含む同業者がいたら、差が開く一方なのは明白です。でも、そういう他人と比べる話じゃないんですね。

世の中には、結構な加齢の後に勉強して目的を達成したとか美談がありますが、現実的には歳を重ねてからよりも、若いうちにこなしたほうが圧倒的に効率が良いのはアタリマエです。20歳で完全前後開脚する労力より、40歳で取り組む方が10倍以上大変でしょう?大変なんです!なので歳をとってからでも~という話はどうでもよくて、肝心なのはどうせやるなら若いうちにマッチョ化すべしということです。

もし、数十年間エンジニアを継続するつもりがるならば、早いうちにある程度マッチョ化しておくと、絶対的にコスパがよいのは間違いありません。成長サイクル的に、INPUTが多いほど返ってくるEXP INPUTも多くなるので、早く積むほうが断然お得です。また、若いウチのほうが楽だし、一度身についた技術マッチョは筋肉と違って、歳をとっても衰えづらいので、苦痛なく自然と時代の流れについていくことができるでしょう。

世代交代

また、若手に台頭してもらいたいという願いがベテランにあるのも事実です。

これから10年20年が経過したとき、エンジニアの引退が増加した際に、スムーズに世代交代ができているのかというと……誰にもわかりません。凄い人材ばかりになっていたり、逆にマッチョ皆無でも成り立っているかもしれないという期待や、人材の流入が少なくて企業の生き残りをかけた獲得戦争になっているかもしれない危惧とか、そういうのも含めて成長を促したくなる、いわば老婆心ってやつでもあります。

エンジニア人口は増やしたい。マッチョ人口もそれなりに増やしたい。「両方」やらなくっちゃあならないってのが(ry

──少なくとも、まともな環境に身をおいて、真剣に費やした時間や努力は、ほぼほぼそれに値する評価となって十分な量で返る職種でもあるので(そうだよね!?そうであるようにしていこう!!)、なにより楽しいですしオススメしていきたいところです。

矛盾

そもそも、そこそこの仕事と収入でプライベート重視したいって若年層が、世の中全体ならまだしも、エンジニアに限って言えばそんなに割合が多くないと思うんですよね。いや、もちろんダメっぽいエンジニアを見たこともあるし、環境によるんでしょうけども。

ずっと低労力低収入でプライベート含めて安定してればいいって考え、エンジニア業界だと物凄く矛盾してると思うんですよね。業種によるとはいえ、基本的にエンジニアって職種は、業界や企業がいつどうなってもおかしくないって心の片隅で考えるくらいが健全だと思うからです。

業界の不安定さと技術力の低さが合わされば、誰でも不安定なことは理解できるでしょうから、わざわざエンジニアになってもなお、低労力だのプライベートだの言わないと思うんです。

そんな状態を続けるくらいなら、『早期に』『多くのINPUT癖』をつけた方が、収入が増えてプライベートに使えるし、速く仕事を片付けられてよりプライベートに時間を割り当てられるし、圧倒的にコスパが良いはずなんです。

ガチマッチョらなくても、自分の業務に関係のある技術を軸に、時間と精神が許す範囲でじわじわと広げていくクセをつけるだけで、数年後には立派になってますよ多分。技術的INPUTといっても、Wikipediaのリンクをひたすらたどって読み続けるのと大差なくて、大切なのは少しずつでも継続するってことです。目安としては転職してやっていける自信がつくまでは多めに気合い入れて、あとはその時の流れでって気持ちでよいかなと。

プライベートも全然削る必要なんてないし、むしろ大切なくらいで。長く続けてきた私のコツなんですけど、自分の中で3つ4つほど仕事関連カテゴリを区切って、チカラを入れるカテゴリを循環させると飽きづらくなるんですよ。私の場合、勉強・インフラ設計構築・コーディング・SREで、プライベートにゲームと運動、中間にブログみたいな。

1つのことばっかチカラを入れ続けても絶対飽きるんで、循環させつつ、業務の気分じゃなくなったらこーゆーブログ書いたり、ゲームとか運動に気持ちを寄せてたら、また仕事カテゴリのどれかをやりたくなるんで、セルフコントロール大事です。それを上司やマネージャなど他人に委ねるよりは、ちゃんと自分の意思でコントロールする方が、長期的にみると安定すると思います。



ひたすら技術マッチョできる人はそれでいいと思いますけど、飽きずに無理なく、ってのは現在の若者に限らず、ほとんどの人に当てはまるベタースタンスだと思うので、

ちょっと自分が足りないなとか、伸ばしたいなとか思ってる人がいたら、そんな感じで



いつマッチョになるの!?



今ッチョ!!



(おあとがよろしいようで:-)