訪問介護の訪問スケジュール作成を自動化しようとするとき、「月初の全体生成さえできれば十分ではないか」という問いが出ることがある。
しかし全体生成だけを自動化し、再生成とキャンセル・緊急依頼への再調整を別の仕組みで処理しようとすると、現場で機能しないシステムができあがる。
全体生成・再生成・キャンセル緊急依頼への再調整が一体でなければならない理由は、三つの処理が同一の問題構造を持っているからだ。

三つの処理がどう異なり、どこが共通するのかを整理する。
全体生成とは、月初に訪問スケジュールを全配置一括で生成する処理だ。
既存のスケジュールがない状態から全てのリソースを探索対象として配置を決定する。
再生成とは、確定済みの配置を一部固定したまま変更が必要な範囲だけを再度生成する処理だ。
新規利用者が加わる、介護職員の担当エリアが変わる、勤務条件が変わる。
そのたびに確定済みの配置を崩さずに影響範囲だけを再処理する。
キャンセル・緊急依頼への再調整とは、キャンセルや緊急依頼が発生したとき確定済みの訪問スケジュールの中から代替配置を自動で探して提示する処理だ。
確定済みの配置を前提条件として固定し、その上で影響範囲だけを探索する。

三つに共通しているのは「何を固定し、何を探索するか」という問題の構造だ。
全体生成は固定対象がなく全てを探索する。
再生成は確定済みの配置を固定し、変更範囲を探索する。
キャンセル・緊急依頼への再調整は確定済みの訪問スケジュールを固定し、影響範囲だけを探索する。
処理の名前は違うが、業務の状態に応じて探索対象と固定対象を決定するという制御の構造は同じだ。

なぜ一体でなければならないのか。
全体生成・再生成・キャンセル緊急依頼への再調整を別々のシステムとして構築すると、それぞれが異なる判断基準で動くことになる。
全体生成で作った訪問スケジュールと、再生成で変更したスケジュールと、キャンセル対応で動かした配置が、同じ制約のもとで整合的に管理されていなければ、訪問スケジュール全体の一貫性が失われる。
整合性が崩れた訪問スケジュールは現場で使えない。
こうした設計思想に基づいて、shiftect.は全体生成・再生成・キャンセル緊急依頼への再調整を同一の制御構造で処理することで訪問介護の訪問スケジュール作成を自動化することを目指している。
三つを一体として設計することで、どの処理を実行しても訪問スケジュール全体の整合性が保たれる。