2024年を振り返る
2024年も終わるので、やったことを振り返る
部署解体、そして異動
年明け早々異動しました
色々あって2023年度末で所属していた部署がなくなる計画になっていたのですが、異動先の部署が人が足りなくて、すぐにでも来て欲しいとのことだったので年度末を待たずに異動することになりました
異動前はマネージャーをしてたので人の管理がメインでしたが、異動先では新サービスのリリースを控えており、馬力の高い人間を欲してたらしく、ゴリゴリ手を動かす人して諸々アサインされました
一人チームとして稼働
異動してすぐ検索周りの仕組みを一人で作ることになりました
異動前の部署は割とレガシーな構成だったのですが、異動先ではtypescriptとかkotlinとか割とイケイケな感じでほぼ初見な構成でした
作ってサービスがモール型のECなので、出店店舗が触るtoB向けの機能と、購入する一般ユーザー向けのtoC向けの機能でチームが別れてたのですが、検索はその中間みたいな立ち位置でどっちのチームでもないポジションになりました
toB,toCどちらも人が足りてない状況だったので、特に管理もされておらず、自分で仕様を調整して、自分でタスク切って、自分で管理する、一人チーム状態です
異動するまでマネージャーをやってたので、自分のみのリソースのチームとしてマネージメントすれば回ってたので、大きな問題はなかったのですが、マネージャーをやってなかったら中々きつかったかなと思います
kotlinのつらみ
技術的なところでいうと、新卒以来の新しい言語に実践で触る機会だったので、割と気づきがありました
採用の背景は知らないですが、kotlinを主にバックエンドで使っていたのですが、めちゃくちゃきつかったです
基本的にjavaのossを使っていたのですが、kotlinの強力な型付けのせいでうまく動かなかったり、coroutineなど元々javaにない機能と組み合わせると動かないなど、kotlin自体に備わってる機能を使えるメリットよりも、ossを使えないデメリットでかなり苦しめられました
加えてチームにkotlinのエキスパートのようなメンバーもおらず、基本的に自分で解決するしかなく、最終的には別のossを使ったり、既存のコードをリファクタリングして、javaの仕組みに寄せたりして、事なきを得ましたが、初期構築のコストがめちゃくちゃ高かったです
さらに、kotlinの目玉?機能であるcoroutineが厄介で今も苦しめられています
組織の関係上、バックエンド側にはずっとバックエンドをやってきた人が多いです
coroutineを使った事ある人ならわかると思うのですが、出来上がるコードはjsっぽいコードになります
このコードをバックエンドばっかやってきた人が書くと非同期でなにか起こったときの考慮が甘く、非同期での更新終わってないのに値を返しちゃっててたまに値が返ってこないとか、例外が発生したときの共同を理解しておらず、すべての処理がクリティカルパスになってるとか、今もなおバグを生み出し続けています
次もし言語を選べる機会があったら、そのあたりを考慮してメンバーのスキルセット次第にしたいです
開発終盤の大立ち回り
開発も終盤を迎え、ぼちぼち大規模なテストやリリースに向けての準備が始まりました
メンバーが比較的に若い人が多かったので、スコープ定義やタスク管理が甘く、タスクは日々消化してるから順調だよねというメンバーと、残タスクを考えるともっとスピード挙げないと終わらないという自分との現状の危険度認識の差がどんどん開いてきました
流石にこのままだとまずいと思ったので、スコープの定義や残タスクの整理、スケジュールの調整等、現場よりももうちょっと上位レイヤーの仕事にシフトしました
チームに参加してから日が浅く、人間関係の構築が不十分、立場もただの現場だったので、中々思う通りにできず、混乱を招いただけだった感が個人的にはあったのですが、期末には評価されてたので実際はそれなりにうまく回っていたんじゃないかなと思います
無事リリース、しかし次の一手が見えない
諸々頑張り無事リリースできました
しかし開発でリソースをフルに使ってしまってたので、各店舗の売上とか、ほんとに最低限のデータしか取れず、次の一手を決めるための情報がなにもない状況でした
自分は「推測するな。観測しろ。」って誰かが言ってた言葉が好きなので、サービス観測するためのデータ周りの整備に着手しました
今まで開発しかしてなかったので、データ周りは初めて設計しましたが、トライアンドエラーで色々やってきて無事ユーザーがどこで離脱してるんだっけ?こういうユーザーのcvrってどうなってるんだっけ?のようにボトルネックを特定するに足る情報を拾える環境を構築しました
割と特殊スキルな印象なので今後役に立つのかはわからないですが、また新しい知見が溜められました
なんでもやる人に
無事観測できるようになったので、実際にボトルネックを解消していくことになりました
データ周りの整備中に色々なデータを見ており、サービスのボトルネックがいくつかわかってたので、案件の提案、要件定義からリリースまでの全工程をやるようになりました
提案した仮説もそれなりに評価してもらっていくつかの案件を実行までやらせてもらえたり、いくつかの案件はリソースもそれなりに貰って自分はほとんど手を動かさずにリリースまでこぎつけたり、開発でなくてもそれなりに働けそうだなという実感を得られました
ただ案件リリース後の効果測定の環境がうまく整えられてなく、案件の評価の部分は能力が足らず、次の一手までつなげることはできなかったので、そのあたりは課題かなと思います
来年に向けて
チームに入ってますが、特にマネージメントされず、なんでもやっていいよと言われているので、手段は問わず、サービスに大きな影響を与えるようななにかができればなと思います
とりあえずなにかあったときに困らないように、kotlinのcoroutineのプロになります
Discussion