はじめに
MiiTel Advent Calendar 17 日目です。
RevComm でフロントエンドエンジニアをしている渡部と申します
MiiTel では Recoil を使用しているアプリが多数ありますが、MiiTel PhoneでRecoilからJotaiへの移行を行いました のように Jotai への移行を進めています。
私が開発を担当している MiiTel Analytics でも Recoil を使用しており、現在は Jotai と共存しながら新規では Jotai を使用、改修・リファクタリング時可能であれば Recoil -> Jotai への移行も合わせて行っていました。
しかし、 Store の数も使用している箇所も多く、日々他の業務を行いながらの移行作業は中々進めるのが大変でした。
そこで MiiTel でも活用している Devin に頑張ってもらいました。
移行の進め方
Store の数も多かったため、まとめて実行し PR でレビューしてもらうのは大変です。
まずは作業前に Store の把握と使用しているファイルの洗い出しをしてもらい、 Store ごとのタスクを作成してもらいました。
Devin 実行の流れ
- Devin に全体把握してもらう
- タスクテンプレートを元にタスクを作成してもらう
- 作成したタスクごとに実行してもらう
- タスクごとに PR を作成してもらう
- PR レビュー
タスクテンプレート
# PR タイトル ## 作業ブランチ `main` ブランチから checkout し作業してください。 ## PR ### PR タイトル `{Notion Task ID} [main] PR Title` ### PR 内容 日本語で記載してください。 ### 作成 PR PR は Draft で作成してください。 ### CI チェック CI チェックが通ることを確認してください。 ### PR Assign `@watanabe` を Assignee に設定してください。 ### PR Label `Release: internal use` のラベルをつけてください。 ## タスク概要 タスク概要 ### 対象の移行済みファイル - ファイル1 - ファイル2 ## 実装計画 1. 作業内容1 2. 作業内容2 ## 実装手順
Devin の対応結果
タスク数はおよそ 26 件になり、約 4 ヶ月ほどで完了しました。
タスクの内容量で 1 週間どのぐらいお願いするか決めていて、 1 週間で 3 ~ 4 件ほど対応してもらいました。
この間も普段の業務の手を止めることなくすすめることができたのは非常に助かりました。
反省と次回への改善点
改善点1: タスク管理ツールの選択
課題: Notion へのタスク登録が手動でやる必要があり大変だった
MiiTel ではタスクの管理に Notion を使用しているのですが、今回のタスク登録は手動で行う必要がありました。
Devin から Notion へアクセスはできるのですが、 チームで使用しているタスクテンプレートに対して適切な情報を埋め込むのは難しかったようです。
そのため作成したタスクは一旦 Markdown 形式で出力していただき、自分で登録することになりました。
改善策: Github Projectsの活用を検討
Devin に対してのタスクの管理には Github Projects の使用のほうが良かったかもしれません。
Devin, Notion, Github Projects の連携はまだ試したことがないため、次回以降試してみたいと思います。
改善点2: タスクの粒度
課題: Store 数が多くタスク内容にブレが生じた
Store 数が多いためか、作成いただいたタスクの内容にもブレが生じることがありました。
作成いただいたタスクも多くなるため、ブレが生じたタスクの内容を修正するとなると発見が難しく、コンテキストも加算されてしまいます。
改善策: Storeのカテゴリごとにタスクを分ける
Devin にタスクの作成を頂く場合も、ある程度数を絞ることがより精度の高いタスク作成につながると感じました。
次回の作成では Store のカテゴリごとにタスクを分けるなど、タスクの粒度を大きくすることを検討したいと思います。
まとめ
Devin に Recoil -> Jotai への移行をしてもらった話を紹介しました。
時に精度の低い実装や反省点も見られましたが対応工数を大幅に削減できたため、非常に助かりました。
Roomba が掃除しやすいように道を整えるように、Devin にも作業しやすいようにタスクを整えることが重要だと感じました。
まだまだ Recoil -> Jotai への移行は続きます。 反省を活かして、より効率的に進めていきたいと思います。