emahiro/b.log

Drastically Repeat Yourself !!!!

僕の価値観 ~ 2021 年 ver ~

あけましておめでとうございます。 2021年一発目のブログが記念すべき 250 投稿目です。

自分でもよく続いてるなと思います。

2021年1発目に何を書こうか迷ってたんですが、現時点の自分の価値観をエンジニアリングに関するところと、キャリア全般に関するところでまとめてみました。

あまりまとまっていませんが現時点の思考の dump として置いておこうと思います。

エンジニアリングについて

コードを書けることはスキルの1つであること

コードを書けることは素晴らしいことです。僕もコードを書くことは大好きだし、やって飽きないです。 おそらくソフトウェアエンジニアとして仕事をするにあたって、「コードを書ける」ことは基礎的な素養の1つに分類されると思います。

僕がここで言いたいのは、コードを書くこともハードスキルの1つに過ぎないってことです。

昨今、「コードを書ける」ことがなんというか、注目され過ぎてる(嫌な言い方をすれば、変に神聖化されている)と思っています。コードを書けることそれ自体は「英語が話せる」とか「数字が読める」と変わらないスキルセットの1つに過ぎません。

基礎的な社会人スキルがないのにコードを書けることばかりが持て囃されて、他のことは人並み以下でいいはずがないです。  趣味でコードを書く場合には、好きにしてくださいと思いますが、仕事としてやる以上、コード以外にも人並みのスキルがあってこそコードを書けることに価値が生まれます。

過度に神聖化せずに、スキルセットの1つと捉えることで見えてくることもあります。

コードを書けるだけだと、多分行き詰まる。

ソフトウェアエンジニアとしてコードを書くことができる、というのは大前提ですが、単純にコードを書くことにプライオリティを置きすぎると、おそらくどこかである一定以上の業務を任されなくなり、行き詰まります。 そこから這い上がる覚悟があるなら、コードを書くことにフォーカスしてもいいかもしれませんが、僕はそうではありません。

前述しましたが、コードを書くのは楽しい作業ですが、実際それだけで勝負できるかというと自分よりコードが書けるやつなんてこの業界めちゃくちゃいます。そして若くて優秀な人もたくさん入ってきます。優秀なエンジニアの生産性はそうじゃないエンジニアのX倍なんて言われたりします。

僕の尊敬するエンジニアの皆さんはコードも一流、コード以外も一流、な人が多いです。

そういう人たちと勝負する世界にいる、という危機感は持っておいた方がいいと思います。

プログラミングは面白い

そうは言ってもプログラミングは面白いです。やって飽きないですね。

コードは書くより消す方が難しい

ある程度エンジニアとして仕事をしてると、コードを書くことよりもコードを消す方が難しいことがわかってきます。 僕もこれまでにいくつかコードを削除する変更を出して来ましたが、影響範囲を取り違えてよくプロダクトを壊していました。

結局影響範囲の調査が不十分だった、ってことになるんですが、実装がどこからどう依存してるのか?などはやはり歴史を知らないと全てを把握することは難しいと思います。影響範囲を抜け漏れなく調査し、プロダクトに影響することなく、影響がある場合には段取りをした上でコードを削除する(機能を落とす)作業は実はコードを書く作業よりも、総合力が求められるので難しいんです。

手段が目的化してもいい

技術は課題解決のための手段、という考え方があります。僕も基本的にはその考え方に寄っています。

ただ、一方で「課題は技術を使うためのネタ」という考え方も好きです。要は課題なんかなんでもいいけど、その解決のための手段に興味があってもいいと思います。事業側からしたら何言ってんだ!みたいに思われる内容ですが、エンジニアなんだから好奇心にそって新しいツールや自分の好きな技術スタックでチャレンジしたくなるのはいいことです。

そのネタとして事業のロードマップを利用してやる、くらいの気概を持ってるとスキルも錆つかずに常にモダンな技術アセットをキャッチアップし続けることができるんではないでしょうか?

基礎的なスキルや知識は陳腐化しない

よく言われる話ですね。特に詳しくは述べませんが、HTTPの仕様だったり、SQLだったり、コードを書くための技術であったり、この辺で一度身につけた知識や技術はあんまり陳腐化しないで汎用的に使いまわせるな、と言うのは最近になって実感してます。

それを知らない頃は全然わからなかったんですが、こう言うのはある程度キャリアを重ねるとわかってくるものなんだなぁと思います。 経験がものをいう世界でもあると思います。

先達の小言はわりと聞いてるといいことありますね。老害と言って切り捨ててたりしたら勿体無いことなんで全力でその知見を吸収していきたいですね。

キャリアについて

キャリアに再現性はないが、ロールモデルは複数持っておくといい

現職では「キャリアなんてあってないようなもの」という表現がされており、僕もこれにはかなり同意しています。キャリアにおいてさまざまタイミングで必要とされる役割を100%こなし、期待に応えていくのが大事だと思っています。

ただ、そうは言っても自分が新卒~社会人3年目くらいまでの時に、目標とする人が当時の上司(新卒で入った会社の CTO )しかおらず、当時新人のペーペーだった自分からはあまりに高すぎる目標だったのと、あまりに目の前の仕事に熱中しすぎて、将来どうしたい?みたいなことをさっぱり考えていなかったために、行き当たりばったりの人生をすごしていたな、という反省があります。

別に行き当たりばったりこそ、人生の本質!みたいな価値観で若干生きてるところがあるのでそれ自体は僕としてはいいんですが、無駄なことも結構多く、しかも身近に同じような境遇の人がいれば話を聞いて、知識として持っておくだけで、解決できたかも知れない課題や回避できたかも知れない障害があったので、そういうのを避けるために自分の+5歳くらいの年齢の人が、キャリアにおいてどういう仕事をしてるのか?どういう役割をやっているのか?さらに言えば、そういう仕事の仕方をしてるのか?どういう調べ方をしてるのか?と言った具体的な仕事の内容まで含めたロールモデル的な人を数人見つけて、参考値として持っておくと、実は結構チートでキャリアを進めるんじゃ無いかなと思います。

自分の人生は自分で切り開くものだと思いますが、一方でチートで進めるところはある程度楽して先に進んで、次のもっと大きな課題にさっさと取り組んで言った方が、キャリアのレバレッジは効くと思うので、そういう観点も持ってるといいんじゃ無いかなと思いました。

チャンスの数は平等だが、チャンスを掴み取れるか、には差がある

「やり切ることができる力」を軽視してはいけない

チャンスを掴み取れるか?という一点において僕が伝えたいのはほぼこれなんですが、何か問題がある、課題がある、イケテナイことがある、というのを見つけたら改善するまでやり切ってください。

このやり切る力は単純に技術力があるとか、そういう話に止まりません。コードを書けるてもコミュニケーションが取れなければ、結局を何かを「遂行し、完遂すること」は難しいでしょう。

仕事を進めていくには、実装力に限らない、総合力が求められます。 僕はこの総合力のことこそを「技術力」と呼んでいます。

ビジネスオーナーから何か依頼が来たときに、できない理由を並べることは簡単ですが、それがどうしてできないのか?どうしたらできるのか?実際にやり切るにはどうすればいいのか?までを考えて伝えたり、さっとプロトタイプを実装して PoC できたり、なんというか総合力みたいなものが仕事では実は大事です。このリモートワーク環境下では文章にして伝えることができる力も必要になるかもしれません。

ありとあらゆるスキルが一定以上あって、何かチャンスが来た時にそれら全てを用いて「やり切る」ことができ、そしてその積み重ねが信頼となって、さらに色んなチャンスが舞い込んでくるようになると思います。

この「やり切る力」決して軽視してはいけないと思います。

打席でボールを待たない。ボールを引き出しチャンスを決め切る力が大事。

これは比喩を使って説明します。

よく若い時は打席に立て、という表現を聞いたことがあると思います。これはあながち間違いではないと思いますし、おそらく経験を積むべし!っていう比喩としては妥当なんだと思いますが、そもそも打席に立っててもそもそもボールって投げてもらえるんですかね? 僕は野球も好きなので、この例えが間違ってるとは一切思いませんが、とはいえ実態とはズレが生じて来てる例えなんじゃないかな?と思っています。

このズレを解消する例えでサッカーのオフザボールという概念を持ち出したいと思います。
(僕はサッカーが大好きなので、なんでもサッカーで例えがちなんですが、、、笑)

サッカーのボールがくることをチャンスと捉えると、

  • 走った先にスペース(=チャンス)があるのか?
  • そもそもスペース(=チャンスのあるところ)に向かって走ってるのか?
  • パスが来たときに決めれるだけの決定力(= 技術力やり実行力を合算した総合力)を持っているか?
  • 味方を生かすためにデコイ(囮)になることを厭わないか?

サッカーわからない人にはわからない例えかもしれませんが、チャンスを見つける嗅覚と見つけた時にいち早くアプローチして決め切る決定力があって初めて信頼され、仕事を任せてもらえるということを言いたかったんです笑

また仕事はチームでするものなので、「俺が俺が」じゃなくて時には誰かを生かすために自分が囮(犠牲)になることも大事です。

事業環境は日々変化してるし、自身の役割も日々変化し続けるものだと思うので、その都度最適なポジショニングをしながらチームとして勝ちに行ける哲学を共有するのが大事なんじゃないかな?と思っています。

苦労はしておいた方がいい

じじくさいことを言ってますが、これも生存バイアスの一つだと思ってください。 この苦労についてですが、そもそもの前提として心理的に追い詰められたり、人格を否定されるような苦労は絶対にしては行けませんし、そんな人がいる環境はさっさと逃げた方が良い、ということは先に述べておきます。

あくまでスタンスの話でもあるんですが、仕事、特に業務遂行において現れるさまざまな苦労はしておいた方がいいです。ことあるごとにぐちぐち文句言ってるだけは何も変わらないので、それを改善するためにあれこれ動いてみるといいと思いますし、その過程で発生する苦労を克服したことがそのまま自信に繋がります。

勝ち癖が大事

仕事に勝ち負けの概念を持ち出すこと自体を嫌う人は一定いるかもしれません。また何を持って「勝ち負け」なのか?は人によって解釈は様々なので、何を持って勝ちとするか、から定義する必要があることも理解はしています。

ここでいう「勝ち癖」というのは、「自分の中で成功経験・やり切った経験」と言い換えます。これを僕は「勝ち癖」と表現します。

これを明確に意識したのは去年のことで以下のまとめにあった内容がそのまま僕の考えに一致したのでこの項目を設けることにしました。

togetter.com

勝ち癖をつけるっていうのは自分の中で成功体験を作り続ける(成果を出す)癖をつけるってことです。

割と失敗を賞賛する文化があると思いますが、僕は失敗自体はただの失敗だと思っていて、価値があるのは失敗から学んで成功することだと思っているんですよね。あくまで成功する(成果をあげる)ことが前提で、それを目標としない失敗は、なんの学びもない単なる失敗で自己肯定感が下がるだけのものだと思っています。

常に成果を出していたり、一定のメンタルの元に仕事を進めることができる人っていうのは自分なりの成果を出すパターンをいくつか持ってるし、過去何度も定期的に結果を出してきた人だと思っていて、こうすればXXXできる!っていう自信を元に仕事をしてる気がするんですよね。

そういう人を見てきてるからこそあえて自分なりの「勝ち癖」をつける、っていうのは仕事を進める上でもメンタリティーの面でも大事なことだと思います。

仕事は「チームでするもの」である

これまでに何度か話に出していますが、趣味と仕事の違いは一番はこれだと思っています。

結局個人で好き勝手してるだけでは出会うことなかった課題がチームで仕事をしてると頻出します。それを一つ一つ解決していきながら、課題を解決していくプロセスそのものに面白みを感じることができるか?、仕事とは個人ではなくチームですることだという前提に立つことができるか?というのが、大事です。

キャリアについての余談

キャリアについて語ってる人はそのほとんどがポジショントークで生存者バイアスがかかっている

ほんっと余談なんで軽く聞き流して欲しいのですが、割とキャリアについてあれこれ語ってる人(このエントリについての僕含め)の「hogehogeするべし!」とか「fugafugaしないなんて〜」みたいな言説の出どころは大体個人の経験に依存してるので行ってしまえば N=1 のポジショントークなんですよね。

キャリアはあってないようなものだし、基本的にはその人と同じことをしたとして、同じ道を歩けるわけではなく再現性はないので、生存者バイアスのかかったポジショントークだと思って、全てを取り入れうのでなく、自分にあったところをエッセンスとして一部取り込んだりう参考にするくらいにしておくほうが、他者と比較しないで楽しく過ごしていけると思います。