Upgrade to Pro — share decks privately, control downloads, hide ads and more …

14年目のサービスと今後も歩むためのリファクタリング戦略

 14年目のサービスと今後も歩むためのリファクタリング戦略

2021/02/16に開催された「ラクスMeetup [Day1]/PM・リファクタリング戦略」で発表した資料です。

Masato Nishihara

February 16, 2021
Tweet

More Decks by Masato Nishihara

Other Decks in Technology

Transcript

  1. #RAKUSMeetup 自己紹介 経歴 • 2015年に新卒でラクスに入社 • 「Mail Dealer」や「Chat Dealer」の開発を経 て現在は「配配メール」の開発担当

    良く触る技術 • PHP • JavaScript • Node.js • PostgreSQL 西原 優人 (masato nishihara) Twitter : whiteFox_73 趣味 • アウトドア フットサル/スノーボード/バイク /ペンギン • インドア 音楽鑑賞/ゲーム/ ペンギン
  2. #RAKUSMeetup 課題に向き合うきっかけ チーム状況の変化 • チームメンバーの増加 ◦ 3年間で6名→11名 • 1バージョンでの開発工数増加 ◦

    3年間で約11人月→約23人月 コードに手を入れる人や機会が増えた。 課題を放置するとこれまで以上の速度で負債が増加し手が出せなくなる…
  3. #RAKUSMeetup リファクタリング後に得られる効果 • 可読性の悪いコードが要因となる以下のリスクを低減 ◦ 調査の効率低下 ◦ 実装の効率低下 ◦ レビューでの見落とし

    • IDEの機能を利用可能になることで効率UP ◦ シンタックスハイライト ◦ 参照先ジャンプ ◦ その他様々な機能…
  4. #RAKUSMeetup リファクタリング対象の絞込 • 対象が膨大 ◦ 対象となるjsの関数は約2500個以上 ◦ 楽観的に見積もったとしても工数は 50人月以上 •

    実施できる量まで絞込 ◦ フロントエンドで最も利用されているファイルの関数に限定 ◦ 220個程度まで絞り込めた
  5. #RAKUSMeetup 現在の状態 • リファクタリングを分割した第1弾のリリース直前 ◦ 開発終盤に優先タスクが追加されたがリファクタリングタスクを減らすことで、 無理のない開発が行えた → 工夫2(柔軟性の高いタスク)の効果発揮 •

    リファクタリングを分割した第2弾の作業中 ◦ オフショアに空きが出た際に追加で発注し対応 → 工夫1(パターン分け)の効果発揮 → 工夫2(柔軟性の高いタスク)の効果発揮