2024年振り返り

この記事は[うるるAdvent Calendar2024](https://qiita.com/advent-calendar/2024/uluru)の記事です。

先輩エンジニアの @DoueKazuna さんよりバトンをつないでいただきました!
(2018年に入社したので、実は今年で新卒7年目になります!😏)

振り返りにはなりますが、
キラキラをさらりと感じていただければと思います!笑

# はじめに
この機会に今年やったことを振り返ろうと思ったのがきっかけです笑

# 今年のおおまかな流れ
- 1~5月　社内システムのリプレイス開発
- 6月　リリース
- 7月　異動&検索エンジンへ載せ替え
- 8月　ステップメール実装
- 9~10月　新規画面実装
- 11月　bladeからvueへの載せ替え開発

# 社内システムのリプレイス開発
## 概要
- 2022年の秋頃から始めたプロジェクト
- ワーカーさんが収集した情報を登録するシステムのフロー見直しに伴う改修
- 5人チームのリーダーとして活動

## よかったこと
- やったことがなかったGraphQLを導入できた
- 静的解析やリント導入、ディレクトリ構成見直しによりフロントの負債が大きく減った
- もともとデグレが多かったが起きにくくなった
- 不具合が発生した場合の修正速度が上がったはず
- 関係者とのコミュニケーションでは図にして表すことで時系列等がわかりやすく整理されるため認識齟齬は少なく手戻りが少なかった
- リリース後の切り戻しは発生しなかった
- チームメンバーと1on1を月1で実施していた事で細かい現状が掴めて不安の種が育つ前に刈り取れた

## 次に活かしたいこと
- スプリントレビューで関係者に対して開発した内容を細かく共有していたが、一連の運用フローができるようになった段階でやった方がよかった。単体の動きでは問題ないが通しで動かした時に直しが必要などが多かった
- 開発期間が長くなると不確定要素が増えるので短期的なゴール設定をして細かくリリースできる術が本当にないかはもっと考えておくべきだったかも
- GraphQLのパッケージ側の処理が遅すぎて結局カスタマイズした部分があったので、特殊なディレクティブは使わないでリゾルバーで実装する
- チーム内で色々とルールを決めたが守りきれない部分があったので特定期間で見直して変えるか廃止するとよい

# 異動&検索エンジンへ載せ替え
## 概要
- 7月からチームが変わり扱うプロダクトも変わった
- 開発者が私を合わせて3名(現在は2名体制)
- SQLを発行して検索する仕組みから検索エンジンに載せ替えた
- 元々メインで開発されていた方はご卒業されている状況

## よかったこと
- 前任者がドキュメントを細かく残してくださったのでキャッチアップが早くできた
- 少人数での開発なので対応する範囲が広くてやりごたえがかなり強い
- 6月から少し業務に入っていて検索エンジンの知識面でフォローができた
- 自身も形態素解析の知識などが改めて身についた
- 検索エンジンの監視の仕組みまで構築できたので現在も負荷が高まったらすぐに対応できる状況が整っている

## 次に活かしたいこと
- ドキュメンテーション、バランスよくやっておくと未来への光になると感じた
- 検索エンジンへの載せ替えはケースとして少ないかもだが、つまづきポイントは初めに確認しておきたい

# ステップメール実装
## 概要
- 無料トライアル開始後と有料開始後にステップメールをお客様に配信する

## よかったこと
- PLGを読んだり、関係者みんなで議論したことで **送るタイミングや文面の込められた意味** まで理解した上で作れた
- あらかじめ決まった文を送るだけだと、送る仕組みだけ作ったことになるが意味まで考えて作れたのは新鮮だった
- [Laravelのメール機構](https://readouble.com/laravel/11.x/ja/mail.html)の書き方を最新にできた
- 行動心理学について理解を深められた
 - バンドワゴン効果
 - ザイオンス効果
 - スノップ効果
 - ウィンザー効果
 - カクテルパーティー効果
 - 決定回避の法則／松竹梅の法則
 - など

## 次に活かしたいこと
- 全般的に言えることだが効果測定まではできていないのでそこまで考えられると良い
- HTMLメールにもチャレンジしてみたい

# 新規画面実装
## 概要
- Laravel Vueで画面開発
- 対象ページの情報量が多すぎて縦に長くなっていたので見やすくするために新しいデザインをもとに作成
- What's Newの仕組み構築

## よかったこと
- デザイナーさんとコミュニケーションを密にとりながら作れたことで認識齟齬がなく進められた
- 前のチームでも同様だが、Figmaなどのデザインツールでデザインがあると開発しやすい
- 開発メンバーとディレクトリ構成や作り方について議論して自分たちなりに目先の開発方針を決めることができた
- お客さんの気持ちになって考えることでどのような見せ方だと見やすいかなど考えることができた
- What's Newを配信した後、お客さんが内容を確認してくださって実際に画面にアクセスしてくださったり手応えを感じることができた
- piniaを導入したことによりvueファイルの記載量を減らすことができて可読性が向上した

## 次に活かしたいこと
- piniaは最終フェーズで導入したので、もし入っていないプロジェクトを今後担当する際には初めから入れるようにする
- お客さんが求めている情報に対する知識や理解が浅いので感度を上げていきたい... 自治体関連の情報キャッチアップに力を入れたい
- ここでも、「実際に作ること」と、「どのような価値を提供するために作るのか」が問われたので
    - 「どのような価値を提供するために作るのか」の部分が外れるとどんなに素晴らしいコードを書いても価値は提供できない...はずなので価値を正しく捉えるように意識したい

# bladeからvueへの載せ替え開発
## 概要
- Laravelのbladeで作成された画面を機能はそのままでvueへ移行した
- bladeのまま機能開発を進めるより先にvueへ移行した方が移行難易度が落ちるため良いと判断

## よかったこと
- 0からpiniaを活かして開発ができた
- もともと存在した不具合をまとめて解消することができた
- 変数名を見直して統合できた
- チームとしてVueにかなりなれることができた

## 次に活かしたいこと
- 同じ作りの画面は並行で進めないようにする
    - 共通のコンポーネントやcssの作成が片方まちの状態を作ってしまうため
- 機能はそのまま...と言う前提があったが「実は不要なもの」があったりするので実装が困難だったりする場合は一度確認する
    - 難しい処理を書き終わった後に不要となったケースがあった

# 全体を通して
- まず、社内システムのリプレイスが完遂できて改めてよかったです
- 前のチームの皆様改めてありがとうございました
- 異動後のスタートダッシュがしっかりとできてよかったです
- 新チームの関係者の皆様改めてありがとうございました
- 「お客さんにとっての価値」について考える時間が増えたので今後も知識をつけて精度を上げられるようにしたいです
- 開発業務を継続で自分も取り組めていて楽しい時間を過ごせています
- プレイングしながらチームもマネジメントしていくのは大変だけどやっぱ楽しいなーとしみじみ感じてます
- 2名チームでやるのは初めてでしたが、やることを選んでいく力と1人でやりぬく力がすごく求められるのを感じました
- 少ない武器でどのように戦っていくか、そこに少人数開発の面白みがあると思いました

# 最後に

文字しかなくて面白みにかかるかもですが、
ながいスパンでの出来事を思い出しながら今思うことで見てみるのはいいですね！
今後もたくさん振り返りします！笑

明日は、@m_matsub さんによる記事です！
ご期待ください！