要約
- ローコードやAIで局所的な最適化(主にシステム化)が行われている
- だいたいはドメイン毎にチームがわかれていてシステムもその単位でできる
- チーム間連携(システム間連携)でつまづく
- 他システムのデータを利用できない
- 適切な連携方法がわからない
- 逆連携のいい方法わからない
- イベント連携に馴染みがない&仕組みがない
- 結局あるチーム(システム)に偏る問題
パラダイムシフトが必要な気がしてるので学ぶ
背景
今の派遣先ではDXプロジェクトが動いていて各チームあちこちでAIやローコードツールを駆使しながら業務効率化を進めている。で、今問題になってきたのがデータ連携のところ。
問題1:他チームが作ったデータを利用できない
あるチームで作ったデータをもとに業務を進めたいが、データがそのシステムに閉じている状況。
問題2:適切な連携方法がわからない
ここで結構問題でてくる
DRY面
- そもそもローコードツールで提供できるやり方限られてる
- API:push/pull、同期/非同期
- CSV:push/pull、配置場所、更新頻度
- メッセージキュー:なにそれ?おいしいの?
WET面
生産者と消費者の持つシステムの強さやチーム間の関係性で歪なことになったり、連携進まなかったりする
- 消費者:消費者都合なので自分たちでなんとかする案にとどまりがち
- データ生成元のシステムを見てDBに直接手打ちでデータ入れる
- GUI用意して入力しやすくする
- 生産者:採用した技術、持っている知識の範囲にとどまりがち
- 自システムの一覧画面にCSV出力つけるのでそれを使ってくださいとか
- APIはインフラ面に変更加える必要があるので難しいとか
- 新しい仕組みは責任持てないので難しいとか
問題3:逆連携のいい方法わからない
システムA:登録、更新→データ連携→システムB
システムB:更新→データ連携→システムA に反映したいケース
1:1ならAPIでもCSVでもいいけど、伝搬先が複数になってくるとイベント使わないと厳しくない?感がでてくる。
問題4:イベント連携に馴染みがない&仕組みがない
システム間連携を同期APIですべてやるのは結合きついので、登録後イベント発行する形で進めたいと思って今ここで悩んでる。
なんせ誰もやったことないので壁しかない。
- キューってどう使うの?
- いつイベント消すの?消してはだめなの?
- インフラどんな構成にするの?
- システム間のデータの整合性どうやって保つの?
- 一連のどこかで失敗した場合のリカバリはどうやってするの?
- 失敗したことを気づくにはどういう仕組みがいるの?
なので現状採用見送り濃厚。
問題5:結局あるチーム(システム)に偏る問題
懸念事項考えたら、あるシステムにすべてまとめてしまえばいいんじゃないかというモノリス思考に終着する。
モノリス思考が悪いというより、他の事検討するの大変そうだから今までの考え方で何とかしようってなってることがまずい気がしてる。
おわりに
とはいえ、今すぐどうにもできないのでまずは世間のシステム間データ連携を学んで備えるしかなさそうというのが今のお気持ち。