# 概要
自社の下取りサービスに外部企業の注文履歴を連携し、利用できるようにする新サービス開発プロジェクト。
外部企業との連携部分の設計・開発、自社サービスの連携フローの設計・開発を行なった。
自身で設計開発も行いつつ、プロジェクトの開発リーダー兼PMのような役割も担った。
# 期間
2022/10 ~ 2023/11
# 詳細
## 役割
開発リーダー兼PM
- 自社サービスの連携フローの設計及び開発
- 自社の開発チームの定例ファシリテーター
- 外部企業との連携周りの仕様策定・定例ファシリテーター
## 技術
- 言語:Node.js
- フレームワーク:Express
- DB:PostgreSQL
## 方式
- 連携方式:APIで連携
- データは更新・追加・削除がある
# 課題とその対策
- #### 下取りサービスへの導線は複数あり、ユーザーが連携に気付かない可能性があった
【対策】
- 連携の入口を1つだけにするのではなく、複数用意してユーザーの目に留まる回数を増やすようにした。
- 連携フローを行うところをモーダルにすることで、そのモーダルを使い回して複数のページで連携をできるようにした。
- #### 連携フローでは複数のチームのAPIや外部企業のAPIを呼び出す必要がありエラーハンドリングが複雑
【対策】
- ユーザーには分かりやすい1種類のエラー文言を表示するようにして、もう一度やり直してもらうボタンも表示することで、連携せずに離脱されるのを防ぐようにした
- #### 追加の購入履歴の連携をどうするか・外部企業の負荷が懸念
【対策】
- 一度連携したらユーザーは連携作業を行うことなく自動で連携されるような仕組みにした
- 外部企業側のAPI負荷が懸念だったため、呼び出す回数を制御するように1ユーザー1リクエスト/日のように制限を入れて対応した
- #### 自社アカウントと外部企業アカウントの連携組合せが変わる可能性がある
- 複数アカウントを保持しているユーザーが誤ったアカウントの組み合わせで連携する可能性も考慮して、別アカウントとの連携をしたら、連携している注文履歴も自動で更新されるような仕組みにした
- #### 大量に注文履歴がある場合の連携時間の遅延
- 要件として、連携は同期で行わなければならなかったため、一度の連携アイテム数を制御することでレスポンス時間が大幅に遅延することを防いだ
- 上限で連携し損ねたアイテムは次の自動連携で連携する仕組みにした
# 成果
- 下取りサービスに利用できるアイテム数を増やすことができ、結果的に利用アイテム数、利用者数を増加させることができた