【50サイト超の更新業務を、非エンジニア1人での管理体制に】複数の店舗Webサイトをまたいだ統合データ配信・管理システムの開発
① Overview — 何を変えたのか
50サイト超の更新業務を、3人体制から非エンジニア1人での管理体制へ。
- Client: サービス業50店舗以上を運営する業界大手グループ (詳細非公開)
- 既存システムを残したまま、外付けのデータ配信・中継システムを構築
- エンジニア含む3人でも賄えなかった更新作業を非エンジニア1人で完結できる体制に変革
「何を作ったか」:各店舗の異なるCMSからデータを統合配信する中継APIシステム
「何を変えたか」:エンジニア依存の属人的業務フローを、非エンジニアでも運用可能な自律的体制へ再構築
② Context — どんな構造課題があったか
表層の問題:「更新作業が追いつかない」
- バナー1枚の更新で丸一日の作業時間が消失
- Webデザイナーは一日中バナー更新、エンジニアも一日中Web更新に追われる
- 更新作業だけで手一杯、メンテナンスや改善に割ける人員・時間ゼロ
- 3人体制でも溢れた作業は外注へ。追加のエンジニア採用も検討中
構造的なボトルネック:
① システム分断
- 3種類の異なるCMSが使用され、各店舗で別インスタンス運用
- 50サイト超すべてに同じ更新を反映するには、50回の同じ作業が必要
- グループ全体での情報配信や集合サイトへの対応が構造上不可能
② 属人化の極致
- フロント側:phpソース + SQL + ループが分離されず直書きのスパゲッティコード
- phpエンジニアでなければ読解不可能。マークアップエンジニアではデザイン変更すら不可能
- 一部サイトはビルドが必須。エンジニア不在時は更新作業自体がストップ
③ 判断基準の不在
- 「50サイトすべてに機能追加」は予算的に不可能
- 「新システムへ全面移行」も予算・期間的に不可能
- 「外部サービス(MicroCMSなど)の採用」はクライアント方針で除外
- 打つ手なしの膠着状態
③ Approach — どう設計したか
戦略:既存システムに「寄生」する薄い中継システム
現在のシステムを残し、足りない部分だけを外付けで補完する「データ配信・中継インフラ」として設計。
設計思想の核心:
- Automation(自動化): データ取得と表示層の完全分離により、非エンジニアでも運用可能に
- Architecture(構造): いつでも切り離し可能な薄い実装。システムの肥大化を回避
- Articulation(明示): REST APIによる統一されたデータフォーマット。マニュアル対応を可能に
実装内容:
データフローの再設計
- 旧:各サイトがSQLから直接データ吸出し、php+htmlテンプレート混在
- 新:3種類の既存CMSから内部APIでデータ吸い上げ → 統一JSON形式に整形 → REST APIで配信
アーキテクチャ方針
- データベースやヘッドレスCMSなどの追加依存を避け、設定ファイルベースで構築
- ノンプログラマ(Webフロント担当者)でも編集可能な仕組み
- 管理項目・配信データの増加を見越し、柔軟に拡張できるREST構築
技術的選択理由
- MVC分離により、フロントエンジニアだけでデザイン変更が可能に
- ビルド不要。設定ファイル編集だけで対応できる運用負荷の低さ
- 予算・期間・保守性のバランスを最適化
技術スタック: PHP、AltoRouter、REST API(Controller/Dataクラスで関心分離)
④ Outcome — 何が起きたか
定量成果:
- 管理時間: 20倍以上の削減
- 全サイト更新時間: 丸一日 → 2〜3時間
- 運用人員: 3人体制+外注 → 非エンジニア1人で完結
- 採用計画: 予定していたエンジニア追加採用が不要に(求人打ち切り)
定性変化:
- 業務フローの変化: Web担当者への伝達だけで更新完了。ソースコード変更不要
- 意思決定速度: コードレビュー・動作確認が不要になり、承認フローが劇的にスムーズ化
- 創造的時間の獲得: 浮いた工数でデザイン業務やクリエイティブ制作に集中可能に
- デザイン刷新の常態化: それまで手つかずだったデザイン変更が、月1単位で実施されるように
- 新店舗開設フローの劇的簡略化: Webフロント側を薄くしデータ取得フローをAPI側に集約した結果、新店舗サイト開設時のフローが大幅に短縮。従来「CMS業者 → プログラマ → マークアップ(デザイン) → phpエンジニア(テンプレート反映)」という4段階だった作業が、「CMS業者連絡 → マークアップエンジニアがデザイン調整」の2段階で完結するように
その後の展開:
- 現在も稼働中。予想通り管理項目は増加したが、設定ファイルへの項目追加のみで対応完了
- データベースカラム追加などのプログラムレベルの拡張は不要
- 外部APIからのデータ取得など、高度な機能拡張も実施。中継・配信中枢として十分に機能
Meta
Scope: 既存システム調査、要件定義、アーキテクチャ設計、開発、実装、各サイト導入、継続的メンテナンスまで一貫対応
Duration: 開発1ヶ月、各サイト導入1ヶ月
Budget: 100万円
Stack: PHP, AltoRouter, REST API, Controller/Dataクラス分離設計