転職に際して考えてたことなど整理

前回のエントリーが退職についてのエントリーだったので、こっちは「転職について」です。
自分向けにメモ

新しい環境に求める事

会社やその中の人に馴染んでしまう前に、「自分は何を求めているか」を明確にしておこうかな、と思う。
また、これらの軸を「不退転」とするために、ここに晒す。

退職を決めた時の感情や、転職活動中に助言を頂いたり自身の経験したことを通じて、「自分が何をしたいのか?」「何となくで生きている部分が、ともすれば自身の曖昧な部分を招いているのかも知れない」と漠然とした不安や絶望に気づいた。
それを嫌うために、自分自身で常に「何がしたいんだっけ」という問いに答えられるような状態にしておくのは、少しでも生き方に意義を与えるのに効果があるように感じる。

もちろん、今考えているよりも遥かに面白い事柄が出てくる可能性はあるし、動きの中で今は予想していない領域に興味を持つ可能性は大いにある。
そうは思いつつも、ある種の「なりたい自分」や「現状で物足りない事」があるからこそ、わざわざ環境を変えたわけで。そこが無かったら他の選択肢もあったし、そこが違えば別の転職先もあった。

ということで、私自身が希求している事を改めて明確にしておく。
逆に言えば、この「最低限」が満たされない、もしくは「違った」となれば、撤退もあり得るんだろうな〜というリストにもなり得るはず。

内容についてはアップデートして行き続けられると良い。

1. 一緒に働くメンバーや社内にいる人から技術的な刺激を得られる事

日常的な業務や会話の中で、同僚やチームメンバーからの刺激が得られること。「俺より強い奴に会いに行く」ってやつですね。
どうしても1日は上限24時間しかない中で、「会社にいて、仕事をしている時間」というのは比率が大きくなると思うので。それに対して、「プログラミング楽しいな〜もっと学びたいな!!」という需要があるのに関わらず、圧倒的に時間が足りない。

であれば、最も効率を高めることを考えた際に「通常業務の中で接する相手が、自身の成長の源泉になる」というのは解の1つたり得るのではないか*1
自分より遙か先を行く人と共に過ごせれば、慢心せずにいられるとも思うので。日常的な動作の中で「経験値が貯まる」状態をbuilt-inできるのはチートのようなもの。得られるものが多い会話が目の前で繰り広げられているのは、「がくしゅうそうち」を使っている状態だ。
そうやって成長・向上のベースラインを引き上げたい。

ということで、「自分より強い人(達)がいるか」。

2. プログラミングやエンジニアリングについての向上心があり、それをプロダクトに反映できる事

1点目と被るが、結局は「インプットを反映させる先」がないと腕は鈍ると思っている。
なので、それも兼ね備えている環境が良い。

だからといって、別に業務上の内容に限るという必要はないが、やはり、ヒト・カネ・ジカンそして責任感が最も大きく投下されるのは、(一般的には)業務だろう。それはつまり、「何かをやろうとした時にハードルが高い、ちゃんとしないといけない」状態を意味するはず。 この「難題」をやり遂げるために、出来ることを探し、吸収することが出来ている環境というのは「ハイレベル」になるんだろうな、という仮説。

役割が人を作るとは言うが、結局の所「必要性」から生じてくるアウトプットというのは、スピードもクオリティも求められた上での結果となるはず。
チャレンジしていない環境、もしくはリソース不足等の要因で「自転車操業」的な要因から「今やれていることの延長でしか判断できない」環境というのは、あまり好ましくない*2

ということで、「ちゃんと自分たちの実力・地力を余すとこなく活かして、業務に取り組める環境であるか」。

3. 「空気」よりも本質的な議論や意見交換に集中できること

「間違った意味での心理的安全性」みたいなのはTwitterなどでも定期的に上がる話題だと思うが。
なぜ「間違った方に行く」のか?というと、これを生み出す要因というのは色々とあると思う。そして、歪な形でのそれが蔓延こった場合、急に「誰でも悪者になる可能性がある」というリスクを感じる。仮初の平和、表面上のクリーンさ、その実「コミュニケーションが非常にストレス」であり、あらゆる議論が停滞してクリティカルネスから遠ざかる・・・・みたいな。
その結果、遅っいビジネスや開発が展開される。果たしてそこにワクワク感や刺激はあるのか?と思う。

漠然とした謂いを用いれば、「互いに対する敬意が欠如している」のが、心理的安全性への脅威なんだろうなと思うが。受け取る側も投げかける側も。
何が人格攻撃で何が違うか、は受け手の感じ方次第でしょと思う面がある。もしくは、人格攻撃でなくても「心が折れる」という状態が生じる。一生懸命やったはずが、自分なりの「誠実さ」が通じなくなってくるのは何よりも辛い。

そういうのまで気にし続けながら働くというのは、自分にとっては難しそうだなーと思う。
「あくまでサービスやソフトウェアを良くするため」という価値観が揃っている環境が望ましい。メンバーの各々が「私はもっとやれる」という自信に満ち溢れている必要があるし、「あの人は凄いから正しい議論ができる」と信じている必要がある。

ということで、「コトに集中して、理性的に互いへ向き合える環境であるか」。

4. 自分がちゃんと本気を出しながら仕事に取り組める事

これは3とも通ずる点。

「本質的な仕事とはなにか」というのは、「何に取り組みたいか」次第なのだが。視座やレイヤーが変われば「本質的でない仕事」なんてないはずだ、というのは持論。ルーティンワークだってピープルマネジメントだって社内のメンバーのサポートだって、ちゃんと「エンジニア職」の責務のはず*3
ここで敢えて、視座を「低く」して、「webエンジニアリング」「サービスの(狭い意味での)開発」が自分の職務だとした場合、「やりたい事ややるべき事を見据えて、決めた目標に対して完遂まで取り組み、開発においてマイルストン到達にコミットする」ことが本質なのではないか?と考える。
自分のこれまでを振り返ると、そういう「コア」よりもっと「周辺」まで含めた仕事を担ってきたな、と思う。「開発」に振り切った場合に、どれだけの力が出るだろうか?というのに興味がある。
(その背景には、自分の「技術力」というのが何なのか?そもそも、あるのかないのか?が分からないから見つけてみたい、という希求もある。)

職業エンジニアにおいて、これを阻害する要素は意外なほどにそこら辺にありふれている。

「考えなきゃいけないこと」を減らしたいな、と思った。
例えば自分に課せられているミッションがコロコロ変わるのは辛い。組織の変革が早すぎて、それに着いていくだけでも一定のリソースを割かれるのもしんどい。あまりにも開発から離れたところの話を「やらなきゃいけない」のもキツい。従業員の「キャリア開発」に対して組織側が意識している = 「こちらの代わりに負担してくれる」のは嬉しい。
これらは当然ながら良し悪しの話ではなく、あくまで「守らなきゃいけない領域・要素が増える」のは今の自分が望むものか?というだけの話。その場合、「職種」としての実力や経験値は増やせそう*4だが、「技術力を伸ばす」のに集中できるか?といったら、鈍化しそうだ。

そうすると、「組織規模自体が少し大きめで、各領域が専門化している・役割分担ができている」「組織開発に力を入れようとしているという姿勢が見える」という条件がついてくる。マイクロなところでいえば「EMが機能していそう」というのも含む*5

自分が果たすべき役割を自然と与えられて、それに納得感が持てて、「そこに集中していれば後はどうにかする」と組織側が言ってくれたら最高・・・って話。

ということで、「やるべきことがハッキリしていて、そこに集中して取り組める環境であるか」。

総論: いちエンジニアとしての成長実感の最大化

要するにココに立ち返るんだろうな、と思う。
中長期的に見て「サーバーサイドエンジニアどうなるか」問題というのは頭をよぎる部分もあり、自身の結論としては「ちゃんとやっていけば、あと10年とかは逃げ切れるでしょ」と考えている。この「ちゃんとやっていけば」をどう描くか?だ。
これまでを振り返ると、割と「PHP1本」でやってきたように感じる。PHP自体は悪くないし、言語disとかは見ても何も思わないのだが、今の自分でいうとプロダクトレベルではPHPしか・・と感じる。これは不利ではある。

キャリアのマイナーチェンジという意味で、例えばGolangやKotlin、Ruby辺りを使っている企業に行く!という手段もあった。
今回、結果としてその選択はしていない。これは条件1を優先したことでトレードオフが生じた、と思っている。
アーキテクチャとか設計論とか、パフォーマンスやらのスケーラビリティやら「高いレベルの話がしたい」という想いがあるので、現時点での自分がその扉を叩くには、「使えるものを使ったほうが有利」になるだろという思惑がある。
そういった、抽象的なレベルでの話を出来るようになることこそ「ちゃんとやる」に繋がるのかな〜という仮説。そこにコミットしたい。

成長するには「インプット」と「アウトプット」が必要で、「アウトプットをするためにはインプットが必要になる」くらいのハードルがあるのがちょうど良い。特に新しい知識や技能を磨かずとも「過去の棚卸しだけで成果が出せる」のは、堕落と物足りなさを招くなと思った。
自分から見て「認めている人たち」に囲まれながら、少しでも互角にやりあったり、たまに称賛でも得られていれば、多分に「自身としての成長実感」につながっていくはずだ・・という気がする。 厄介なのは「サービスを伸ばす」のと「自分の技術力その他を成長させる」のは、相互に影響する面もあれど全く違う力学の内にある話なので、「今の自分にとっては」後者重視。

とは言っても、根はインターネットサービス好き〜〜〜なので、自分の力はその目的に使うべきなんだろうな!という精神でいるのは前提として。あくまで、「サービスを強くするのに必要な力は、自身の成長と合致する」のであれば「自分の成長が、サービスの成長を支える」だろうという条件付きでの話だ。そしてそのフィッティングを「組織としてどうにかしてくれる」のを期待している。

「自分に与えられた期待がハッキリしている」「それを満たすべく課題に取り組んでいたら、ちゃんと実力も伸びる」という好循環を回したい。


「エンジニアリングに集中してみたい」*6というのは、自分自身かなりハードル上げてるな〜とは思いますが、「挑まなければ、得られない」だと思うので。
ちゃんと前に進んでしっかり得るものを得たいなーという気持ちです!

次の就職先を決定した理由として、「レベルの高いメンバーが揃って(揃えて)いる」「組織や人員の成長に目を向けている」「解決しなければいけない課題を抱えている」という点で合致したかな、と思っています。
加えて「今まで自分が使っていた技術(CakePHP)と親和性が高い」「今まで働いた環境より、そこそこ規模が大きい」という背景もあり。

どうなることやら〜

*1:決して「周りのレベルが云々」で学び得るものが「なくなる」とは思っていなくて、そこにあるのは種類の違いだと思う。「自分が今求めている成長性を紐解くと」、という話に過ぎない

*2:もちろん、「人が足りなくて、レベル上げより前に何でも作って出してみる・とにかくスピード全振りで無双することを求められる!」という形のチャレンジもあるが。それはそれで面白いというのは前前職・前職で知ったので、自分にとって「今はそうじゃない」というだけ。

*3:まぁルーティンは自動化しましょう

*4:繰り返すが、「コードを書くこと」が「エンジニア職」の仕事ではない。寧ろサービスデザインやコミュニケーションについて求められる職業だと思う

*5:これがあれば、副次的に「マネジメントってどんな仕事?」を目のあたりにできるので、それも嬉しい

*6:別に上流/下流の「下流だけ」がやりたい、とは全く思いませんが!