Software engineering from east direction

六本木一丁目で働くソフトウェアエンジニアのブログ

走り迷い戸惑った2019年を振り返る

2019年を振り返る自己満足を今年もやります。

前回までのあらすじ!

2018年はだいたいまとめるとこんな感じの1年だったようです。

khigashigashi.hatenablog.com

  1. 2017年10月にBASE株式会社に転職してきてからだいたい1年ちょっと経過
  2. PHPカンファレンスのメインホールで登壇できるようになりたい」という目標に少し近づいた
  3. ユニットテスト周りで様々アウトプットしてきたが、次の深みとして「アプリケーション設計」分野に対して洞察を深めていきたい

そして、それを踏まえた2019年の目標はこちらでした。

khigashigashi.hatenablog.com

  1. PHP系カンファレンスでのロングセッション登壇
    • Clear! PHPerKaigi2019にてロングセッション
  2. Go系カンファレンスでのセッション登壇
    • Clear! Go Conference Tokyo 2019 Spring / Fukuoka
  3. 合計発表時間300分
    • Clear! 25回 367分
  4. OSSを3個以上公開する
    • Clear! 3つ(満足行ってはないが行動結果としてはclear)

なので、すべての目標をクリアした形になりました。

2019年を振り返ると

早回しで色々できた

自分が「もう少しかかるかな」と思っていたやってみたいことも実現したのがよかったです。具体的には、

  • 国際カンファレンスでの登壇(GopherCon / CakeFest)
  • 技術書典執筆(golang.tokyo)
  • 商業誌寄稿(みんなのPHP
  • PyConJP登壇(初めて参加したカンファレンスなのですこし思い入れがあった)

また、会社における状況も変わっていき、色々の経緯があり、「Tech Lead」というバッチがつくようになりました。

自分が想像していた25歳(早生まれなので来年3月に26歳)よりは、いろいろなことができた一年だったなと思います。

繋がりが増えた

PHP・Go・Python・Docker・CI・監視系あたりのコミュニティでいろいろスピーカーをさせていただいたこともあり、その界隈の方々と交流を深めることができたのは、素直に良かったと思います。スピーカーしているからすごいというわけでは全く無いとおもいますが、結果的にソフトウェアデベロッパーとしても経験が豊富で優れた一般知見を持っている方々が多いのも事実です。そのような方々と個別に話せたり、飲みの席に呼んでいただいたりするようになったのは、視座を上げる上で非常にありがたい機会だったのとと感じます。

登壇という行為は自分にとって「目的」にはなりえない

BASEに入る前の私は、駆け出しプロジェクトマネージャー/リーダーなどをしており、24時間365日追われていたので、技術コミュニティで活動することがあまりできていませんでした。(「時間は作ればいいじゃん」という意見をアウトプット系を推奨する際に聞こえるときがありますが、生きる時間全てかけても仕事が終わらない状況でそれは酷でしょと思う時があり、一般化した言葉としては強すぎるなとヒヤヒヤするときがあります。余談でした)(社内勉強会ではよく技術の話をしていたのでエンジニア職だと勘違いしていた同僚もいました)。 だからこそ、転職を決めて事業会社に行こうとした際に採用した目標がこちらででした。

PHPカンファレンスのメインホールで登壇できるようになりたい」

これは、大学生の時に参加したPyConJP 2015に参加した際に、そこで登壇しているスピーカーの方々に憧れを持ったからです。

devblog.thebase.in

個人的にPyCon JPは私がぴよぴよエンジニアをしていた際に、人生で初めて参加したカンファレンス(PyCon JP 2015)でした。当時登壇されている方々に、「いつかあそこで登壇するくらいになれたら良いなぁ」とあこがれて、それが現在、技術カンファレンスで登壇するようになった最初の原体験なるものだったりします。

これは、登壇できるくらいであれば、ある程度「一角の技術者になれた」というマイルストーンになるかなという、発想でもあります。

そこから時を経て、2018年・2019年と3年間でだいたい50回以上、外部で話してみました。「一角の技術者になれた」と全く思えません。

むしろ、話せば話すほど更に奥深い場所が見えてきます。これはいいことでもあります。無知の知です。知らないことを知るきっかけになるという意味で、アウトプットは素晴らしい。

さらに、私の中で深刻に感じ始めたのは「果たして自分は本当にコードにおける実践で優れた成果を出せる人間なのか」という不安です。さらに素直に心の内を表現するのであれば、 「話すこと・伝えることだけうまくなって、肝心な根幹となる技術力本当にコレで伸びてるの?」 という不安です。

実際に、人に伝えるために言語化して自分の理解を一般化することは重要です。この作業の過程の中で多くの文献や実体験を振り返る作業をしていきます。これをしてきたからこそ、今の自分がある、というのは高校生のときから行ってきた振り返りの習慣として大事にしたいです。

しかし、その振り返りの成果として、カンファレンスの登壇や書籍の寄稿ができたとて、「高度な専門力を有する技術者」になる道においては、主たるマイルストーンにはなりえないのでないかというのが今の仮説です。引き続き、自分の理解を体系化していく手段として、登壇という行為を有意義に使っていきたい(※ もちろん聴講者・イベント運営の方々ありきです)のですが、それを目標にするフェーズはもう終わったという時期になりました。

志向性の変化

自分は、現職に入社する前の生存戦略として、「ソフトウェア技術への理解とマネージメント」を掛け算することで希少価値を高める 戦略をとっていました。そんな私が、2年強前、転職してフルタイムのプログラマーとなるのは、戦略の大きなピボットです。

そこからは、とにかく好きなソフトウェアの世界を突き詰めたいという想いでやってきました。

Songmuさんのエントリーの言葉をお借りすると、「 好きなことしかしない覚悟 」をそこで決めました。

engineer-lab.findy-code.io

Personal Computer上自分が書いたコードで無限に世界が広がる、そんなワクワク感を感じたかつての自分の原点に戻って、それだけをやっていこう、その上で自分が生きていけるために、試し・考え・反省して、学びのサイクルを早めていこう、というのが、ここまでの2年強の関心です。

結果的に、「好きなことだけやろう」とやってきた結果、プログラミング自体が好きなわけではない 事に気がついてきました。PHPCakePHPなど触れている言語やフレームワークがすごく好きでそれに専門性を持ちたいと全く思えません。Go・PHPPythonとサーバーサイドの守備範囲を広げてきましたが、全部適材適所で使用して、書き心地とかは一旦おいておいて、その言語文化圏における思想を反映すればよいではないか、と考えます。つまり、プログラミングにこだわりを持てません。

ソフトウェア設計自体に関心が強くなりました。そうなると、サーバーサイドだけ専門性があっても不十分です。インフラ・フロントエンド等周りを取り巻くソフトウェア要素を組み合わせてこそのソフトウェア設計であるなかで、更に特定技術への専門性という志向性は薄まっていきます。 ゆえに、中間地点のコンテナが絡んだ設計や、AWSクラウドサービスをその設計においてどのように活用するかが、更に守備範囲として広がっていきました。

結果的に、組み合わせにおける希少性の考え方にゆり戻る ような方向を、また向く結果になっています。

器用貧乏への不安

組み合わせにおける希少性の考え方にゆり戻ると、揺り戻すように現れる、 「自分はただの器用貧乏になっていないか」 という不安です。構想は実現能力ありきです。個別技術の実現能力や知見の深さがここで重要になるでしょう。コレについて色々考えましたが、現時点では、 個別技術の能力が高いからこそソフトウェア設計への説得力が増すという風に考えました。

また、希少性という考え方は、結果的に「オンリーワン」を志向する考え方に近くなりますが、野球選手のイチローが、【人生100年 イチロー人生すごろく】という企画にて次のような言葉を言っています。

www.youtube.com

2番を目指して2番はダメでしょ。それは1番を目指した上で2番というのはそれはいいですけど、2番でいいというスタンスは、僕は嫌いですね。僕はオンリーワンという言葉は嫌いではないですけれど、結果オンリーワンになるという考え方

この言葉に僕はハッとした部分もあって、あくまで個別技術に対しても一流であることを目指すことは重要だと考えました。

そのため、個別技術の専門性を強みとしないけれど、「一流に見られる」くらいの個別技術の力は引き続き磨いていこうというのが現時点の方向性としました。(言い方をあらっぽくすると、殴り返せる技術力を磨こうと言う言葉を標語にしています。)

事業にどう貢献するか

自分が関わる事業にどのように貢献するか、これについても自身のフェーズが変わり、その捉え方に変化が必要と感じてきました。

結論としては、 他の人のために、好きなこと以外もやろう というふうに向く方向が変わりました。

「エンジニアのイベントへの登壇をどう評価に結びつけるか」というえふしんさんの記事にて、事業における貢献のあり方について考えを展開していますが、その考えに当てはめると、自分の貢献は直接的・間接的の両方があります。

note.com

実際、イベントに参加する際に必ず登壇するのは、それが回り回って自社への貢献になる、と思っているからです。これは、かつてのBASEの現場エンジニアで登壇しそうな人が周りに少なかったがゆえのある種の責任感でもありました。

その間接的貢献の仕方も、登壇するような方が増え、希少性という価値が薄まった今、「では自分はどう貢献する?」と考え直しました。

これは、「Tech Lead」というバッチがついたことも相まって、そもそもTech Leadとは何なんだ・・・というう迷いと入り混じり、数ヶ月迷い続けることとなりました。

自分の道の中で、「Tech Lead」というバッチを目指していたわけでも無い中で、このバッチとどう向き合うのかについては、非常に悩ましい問題です。内発的動機をひたすら見つめていた自分に突如、外発的な要求が発生したように感じたためです

色々思い悩んだ結果、 自分の進みたい方向性に対して考慮外とする ことにしました。ただし、仕事としてのプロフェッショナリズムを求める最低基準を、自己からチームに拡大する変更をしました。そうすると、「周りの同僚を先回りしてどう助けるか」・「働きやすいようにするためにはどうしたらいいか」・「悩みを減らして走れるようにするにはどうしたらいいか」を、さらに考えるようになりました(これは、事業でアーキテクチャを考えた経験がある方であれば、同様の関心事を持つのではないかと思います)。

総括

「明日死んでも悔いがない人生を送ろう」と思い刹那的に生きようとしてる自分ですが、今年も刹那的に生きることができたと思います。 来年はまたさらに仕事以外においても自分の関心範囲が増えるのだろうと思うので、来年振り返って、また言ってることが違う!ってなっていれば、走りきったと思えるのでしょう。

P.S. 今年もみなさまありがとうございました。