2021年を振り返る

Gatsby でブログを作ったはいいものの、全く更新できず今日まで来てしまった…😅

今日は 2021/12/31 で、ちょうど一年の締めとして仕事・プライベートの面で今年をざっくり振り返ろうと思います。

仕事

今年は新しい出会いと挑戦がたくさんあった年でした。

私のデスク環境

新生活と一緒に仕事環境整えた。お気に入りはハーマンミラーのモニターアーム。おしゃれ。
この写真は引っ越し直後なのですっきりしてるけど、今は Web カメラ置いたりドライフラワー置いたりもうちょっとごちゃついてる

入社

まず大きいのは少し前からインターンとして働いてはいましたが、freee 株式会社に 4 月から正社員として入社したこと。 もともと地元で学校教員を目指していた自分が、興味が変わり、目指す職を Software Engineer に変え、ビジョンなどに惹かれた freee1 択で目指してここまで来れました。

入社してからは研修で何もわからないところからチームで RDB を作ったり、研修後半は他チームが作った RDB を使って Web サービスを作るという面白い経験をさせてもらえました。
そのおかげなのか今までツールとしてしか使っていなかった DB の内部に興味が湧き、いま関わっているプロダクトでも DB のパフォーマンスやチューニングをよく行うというのもあり、とりあえず O’REILLY の実践ハイパフォーマンス MySQLを購入しました。(まだ全然読めていない…)
自分たちのチームが作った RDB は言語に TypeScript を選び、データを永続化させるために JSON ファイルを使用したのですが、MySQL や Postgresql の内部ではどのようなフォーマットでデータを永続化しているんだろうと漠然と気になったりしています。 その疑問がその本で解消されるのかはわかりませんが、2022 年の上半期中に絶対読み切って DB 力を身につけたいと思っています。

研修が終わってからは数ある freee のプロダクトの中で freee 会計の開発チームにアサインされました。
配属先の希望をマネージャーにヒアリングしてもらったときに僕がインターンのときから感じていた

  • グロース的な開発よりも、ユーザーが使うコアな機能を開発したい
  • 大規模なトラッフィク・データを扱えるプロダクトに関わりたい
  • 技術負債が溜まっている歴史あるプロダクトの負債解消をしたい
  • 個人の力をがつがつ発揮できる・せざるを得ない環境に飛び込みたい

のような思いをストレートに伝えたところ、freee 会計にアサインしてもらえました。(自分からも freee 会計のコア部分を開発したいと伝えた)

インターン時代は freee のグロースチームで開発をしていて、複数プロダクト横断して開発をしていたり、freee 会計を開発するとしてもオンボーディング的な機能を開発することが多かったのですが、freee 会計コアチームに配属されてからはがっつりコア機能の奥深くまで関わることができてとても満足した日々を過ごせています。

大規模開発のすごさ

会計ソフトは業務特性上 write 処理がとても多いです。多くの transaction が走るし、クラウドサービスであるがゆえにレースコンディションが発生するおそれがあります。
また、複数のマイクロサービスによって成り立っており、1 つのサービスを開発するだけでも多くの知識が必要とされました。
簡単な Rails アプリでは気にすることがないであろう部分でも、大規模プロダクトになるとちょっとした無駄なインスタンス変数がメモリ圧迫の原因になったり、細かいクエリチューニングが必要だったりと、大規模ならではの開発を経験することができました。

来年は今年挑戦したことをもっとハイスピード・ハイクオリティにやれるように技術力を磨いて知識を増やしたいです。

チーム開発の難しさ

毎日新しい学びがあり、充実した日々を送れている一方、チームの開発フローに対して課題感を感じることもありました。
今のチームに配属されたときは開発のフローがしっかりと確立されておらず、仕組み化して回せるはずの業務が各個人の動きにダイレクトに依存していたり、十分にコミュニケーションが取れていないことから「誰が今なにをどれくらいやっているのか」といったことが可視化されていませんでした。
私は暗黙的なコミュニケーション(状況や相手の動きを読んで動く)みたいなことは比較的得意な方なのですが、それがチーム全員同じようにできるはずもなく、コロナ禍によるリモートワークの影響もあって、コミュニケーション不足にモヤモヤする日々が続いていました。

そこで進行していたプロジェクトが落ち着き、次のプロジェクトに進むというときに今のチームにイテレーション間隔のゆるめなスクラムを導入しました。(1sprint=2weeks)
なぜゆるめなイテレーションにしたのかと言うと、今のチームの開発ドメインの複雑さ的に 1 週間で十分に開発を進めることが難しいからです。1 週間サイクルのスクラムにすると、1 週間毎に Sprint レビュー・レトロスペクティブ・プランニングといった比較的時間を使うイベントが発生してしまいます。
エンジニアにとって 1 番大切なのは集中して手を動かす時間を確保することなので、Meeting 数を減らすためにも 2weeks で Sprint を回すようにしました。
現状このやり方で上手く進んでいるので改善してよかったポイントです。

他には、これまで毎日夕会でチーム全員が集まってコミュニケーションを取っていたのを、今日やることを 1 日の始まりに確認し合えるように朝会に変更したり、カンバンボードを社内で多く使われている JIRA に変更したり(今までは JIRA ではないサービスを利用していた)、Sprint レビューでチームの開発フローをより良くするために改善ポイントがあれば積極的に共有したりなど、既存の課題感が無くなってきて上手く貢献できているかなと思っています。

個性の異なる人間が集まっている以上チーム開発には絶対や正解はなくて、各個人の強み・弱みを理解し合い、細かい改善を加えていくことの重要性みたいなものを身にしみて感じられたかなと思います。

プロジェクトとか負債解消とか

直近のプロジェクトでは巨大なモノリスサービスの Rails を 5.2 -> 6.0 に上げて、Rails への理解が進みました。
謎の挙動を辿っていくと遥か昔に作られた monkey patch を発見したり、使われずに Gemfile に残ったままになっている gem をガッと消したり、あんまり細かいことは書けないけどいろいろできて、ドメインを介さないプロダクト全体の理解みたいなのもできました。

1 つのサービスと言っても、エンジニアだけでも関わる人はたくさんいて、Rails update のように社内でも影響が大きいプロジェクトだと、思うようにやりたいことが進められないことがあるというのも身を持って学びました。
リソースは限られているし、その限られているリソースの中でいかに最善策を取れるかみたいな判断力は前より身についたのかなと思います。

その他で言うと、フロントエンドはやっぱり移り変わりが激しいのもあって負債が溜まりがちです。
数年前の技術がもはや古のコードになっているみたいなことはザラなのでそれらを消していったり、新しい技術導入のための下準備をしたりなど OKR プロジェクト外にちまちま進められました。 来年の freee 会計フロントエンドは大きい進化ができそうな感じなので楽しみつつやっていきたいです。

プライベートのあれこれ

長崎空港の風景

地元と東京

今年は東京に引っ越して 1 年目でした。
2019 年にも東京に 1 年弱住んでいたけど、ちゃんと離れてみて思うこととしてはやっぱり人の多さは大切。人が多いと無条件に楽しい気がするし、活気を感じるなって思います。
その点地元は駅周りとか特に開発が進められているけど、新しく建てた商業施設に入るテナントのチョイスがよくわかんなくて笑、若者の流失が止まらない中で若者に魅力的な街づくりにはちょっと遠くなっている気がしました。 家の付近では昔から通っていたスーパーやお肉屋さんが潰れていたりと、街の寂しい感じがどんどん強くなっていて悲しくなったりしました…

長崎は飯も美味いし、コロナ前はお祭りも 1 年にたくさんあっていて、すごく好きな場所なのでどんどん活気のある街になってほしいとか思ったりしました。

ホテルから見える東京タワー

窓から東京タワーが一望できるホテルに泊まった。すごかった。

トレーニング

今年もずっとリモートワークだったのでジムに通い始めました。不思議とジムに行くと運動したくなって定期的に通うことができています。
運動すると気持ちがスーッと晴れた感じがして、仕事ばっかりして悶々としたときにはとりあえず運動しに行くようにしていました。

ストレス溜まってたり、モヤモヤしている人の大半は筋トレとランニングで改善されると思ってます。

あとちょっと良いクロスバイクを買いました。
けんたさんっていう自転車好きの人の YouTuber の旅動画とか見てたら自分もフラッとサイクリングしたくなって思い切って買いました。

多摩川沿いをひたすら走って羽田空港が見える公園まで行ったり、いろんなところに行きました。
景色がいい場所にいくと良い気分転換になる。

自転車

あと会社の人がトライアスロンに参加しているのを見て、自分も 2022 年に挑戦することを決めました。
長期走は得意な部類なのだけど、フルマラソンとかやったことないし、未知の領域に挑戦する意味でもやってみようとなりました。
元々トライアスロンやってみたいな〜っていう漠然とした興味もあったし、会社の人と一緒に参加できるならやりたい!ってなったのがきっかけです。

せっかくクロスバイク買ったけど、トライアスロン用にロードバイク買わないと…💸

この前初めて皇居ランして、2 周(10km)を 5 分/1km ペースで走ったら死んだ。ちょっとこれでヘタれていたらトライアスロンどころじゃないのでがんばらないとってなっています。

会社の人に教えてもらってStravaっていうアプリで運動の記録を残し始めたんだけど、結構細かく計測してくれるし、フォローしている人の記録が feed に流れてくるのを見て「自分もやらないと」って思えるのが良い感じでした。
やっている人ぜひフォローしてください!フォロー返します!

https://www.strava.com/athletes/96603333


今年も関わってくださったみなさんありがとうございました!
来年の目標は別記事にして書こうと思っています。