移行できそうでやりきれなかった 10年超えのシステムを葬るための戦略 by ryu

PHPerKaigi 2025
レギュラートーク(20分)

移行できそうでやりきれなかった 10年超えのシステムを葬るための戦略

ryu

私はアドテクノロジーを扱う会社で、広告配信の制御や入稿を行うための管理システムの開発を行っています。そのシステムでは社内用の広告配信設定の管理、メディア用レポート閲覧、広告配信設定機能が行えます。

歴史的経緯から3つの管理システムが存在してます。

  • 10年以上の歴史を持つ古い社内・社外向け管理システム(PHP + CodeIgniter)
  • 社内向け新管理システム(PHP + Slim)
  • 社外向け新管理システム(Go)

1番のシステムは10年以上保守運用されており、システムも運用も把握しきれない部分が多く、フレームワークの保守も厳しくなってきました。過去に何度も古い管理システムを葬ろうと挑んでは、志半ばで取り組みが終わることを繰り返してきていました。今回、古い管理システム の葬りが完了する目処が立ちました。

今回の発表では、 「過去、なぜ、移行しきれなかったのか」、「今回、なぜ、移行の目処が建てられたのか」、「今回の移行戦略」 をお話します。

具体的には以下の戦略を取りました。

  • ロードマップを作成
  • ステークホルダーに宣言
  • 移行をやり切るためのサポート(ヒアリング、移行アナウンスや進捗の分かるシートへのリンクを表示)
  • 旧管理画面の解像度を上げる工夫(Xdebug によるデバッガ、OpenTelemetry + Jaeger による SQL ログなど)
  • 自動テストの拡充

聞いてほしい人

  • 長年改修されてきたシステムのリプレイスや移行を考えている人
  • 移行タスクが志半ばで終わった経験がある人
  • フルサイクル開発の仕事の進め方に興味がある人