介護施設のシフト作成を自動化しようとするとき、「月初の全体生成さえできれば十分ではないか」という問いが出ることがある。


しかし全体生成だけを自動化し、再生成と欠勤・急変への再調整を別の仕組みで処理しようとすると、現場で機能しないシステムができあがる。
全体生成・再生成・欠勤急変への再調整が一体でなければならない理由は、三つの処理が同一の問題構造を持っているからだ。

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

三つに共通しているのは「何を固定し、何を探索するか」という問題の構造だ。
全体生成は固定対象がなく全てを探索する。
再生成は確定済みの配置を固定し、変更範囲を探索する。
欠勤・急変への再調整は確定済みのシフトを固定し、影響範囲だけを探索する。
処理の名前は違うが、業務の状態に応じて探索対象と固定対象を決定するという制御の構造は同じだ。

なぜ一体でなければならないのか。
全体生成・再生成・欠勤急変への再調整を別々のシステムとして構築すると、それぞれが異なる判断基準で動くことになる。
全体生成で作ったシフトと、再生成で変更したシフトと、欠勤対応で動かした配置が、同じ制約のもとで整合的に管理されていなければ、シフト全体の一貫性が失われる。
整合性が崩れたシフトは現場で使えない。
 

こうした設計思想に基づいて、shiftect.は全体生成・再生成・欠勤急変への再調整を同一の制御構造で処理することで施設介護のシフト作成を自動化することを目指している。
 

三つを一体として設計することで、どの処理を実行してもシフト全体の整合性が保たれる。