システム統合で最も難しいのは技術的な部分ではありません。走行中の車のタイヤを交換するようなものです。新システムを配線している間も、旧システムは毎日顧客に応え続けなければなりません。
接続方法は4通り、試すべき順番に
原則は一つです。課題を解決できる範囲で、最も侵襲の少ない方法を選んでください。この一覧を下に進むほどリスクが増えます。
1. 旧システムにAPIがある場合は、それを使う
最も簡単で、最も稀なケースです。喜ぶ前に三点を確認してください。APIに流量制限があるか、必要なデータをすべて返すか、予告なく変更されないことを誰かが保証しているか。
2. APIはないが、データベースには到達できる
旧システムのデータベースから直接読み取ります。例外なく読み取り専用アカウントを使ってください。主なリスクは、旧システムが更新されてテーブル構造が変わったとき、誰かが苦情を言うまで連携が静かに壊れ続けることです。自社が先に気づけるよう、日次の自動チェックを組んでください。
3. ファイル連携
古風ですが、驚くほど有効です。旧システムが定時にCSVを出力し、新システムが取り込みます。利点は、旧システムの内部に一切手を触れないこと、差異の検証が容易なこと、そして関係者全員が何が起きているか理解できることです。欠点はリアルタイムでないこと。業務が15分から1時間の遅延を許容できるなら、この方式は効果とリスクの比率が最も良くなることが多いです。
4. 旧システムをAPI層で包む
旧システムの前段にサービスを置き、新しい側には現代的なAPIを提供し、内部では旧システムと使える手段で通信します。最も手間がかかりますが、複数のシステムを接続する予定がある場合や、数年かけて旧システムを段階的に置き換える計画がある場合には見合います。
構成を決める3つの問い
| 問い | 答えが | 選ぶべき方式 |
|---|---|---|
| データの鮮度はどこまで必要か | リアルタイム | APIまたはラッパー層 |
| 数分〜数時間 | ファイル連携または定時DB読み取り | |
| 一方向か双方向か | 一方向 | 単純。どの方式でも可 |
| 双方向 | 項目ごとに正の情報源を定義する必要あり | |
| 旧システムはあと何年使うか | 2年未満 | 最も安い方法で。過剰投資しない |
| 5年以上 | きちんとしたラッパー層が元を取る |
双方向同期は、ここで破綻する
両方のシステムが同じデータを編集できる場合、遅かれ早かれ、両方が同時に異なる値で編集します。これは例外的な事象ではありません。必ず起きます。
持続する解決策は一つだけ、項目ごとにどちらのシステムが正であるかを事前に決めることです。顧客住所はCRMに従い、売掛残高は会計システムに従う。競合が発生したら、正でない側が上書きされ、後で人が確認できるようログに残します。
破ってはいけない原則
どちらが優先されるかを決めないまま、二つのシステムに同じ項目を自由に編集させないでください。どちらが正か決められないのであれば、それは業務プロセスが不明確であることの表れであり、どんな技術構成でも解決できません。
業務を止めずに導入する
- 切り替える前に並行稼働させる。 新システムを旧システムと並べて最低2週間動かし、出力を毎日比較してください。旧システムを止める前に、すべての差異に説明がついている必要があります。
- 一つのグループずつ移行する。 一部門、あるいはある程度のリスクを許容できる少人数から始めます。そこで学んでから広げてください。
- 戻り道を用意する。 切り替えのたびに、失敗した場合に元の状態へ戻すのに何時間かかるか、誰が撤退を判断するかに答えられる状態にしてください。
- 金曜日に切り替えない。 些細に聞こえますが、業界が高い代償を払って学んだ経験則です。火曜日に切り替え、出てきた問題に対応するための営業日を3日残してください。
見落とされること — データの汚れ
10年動いてきたシステムには不整合が蓄積しています。同じ顧客が3件のレコードに分かれ、電話番号はあらゆる表記形式が混在し、日付が空欄のまま残っています。新しいシステムは制約が厳しいことが多く、このデータを受け付けません。
データ品質の調査は、移行当日ではなくプロジェクトの最初に行ってください。多くの統合案件では、データの整備のほうがコードを書くより時間がかかります。