スケジュールナースは、勤怠時間管理ソフトではない

スケジュールナースは、勤怠時間管理ソフトではなくシフト最適化ソフトです。その目的と機能は、あくまでシフトを最適化することです。 世界最高のソルバではありますが、正しい使い方をしないとその性能を発揮することはできません。 正しい使い方とは、コンピュータが解きやすいように、現実の問題を簡易化することです。 数理ソルバでモデリングと言えば、制約を数式に置き換える作業を言います。池上先生のモデリング にしても、他のモデリング の書籍にも書いていませんが、皆、その定式化をするとき、暗黙的に簡易モデルを採用しています。
例えば、2交代職場において、その勤務時間は、5分単位、10分単位、15分単位で細かく見ると違いますが、それらを大雑把にまとめて、一つの夜勤や日勤という形で表現します。基本的には2交代なら2+1(休み)=3状態、,3交代なら3+1(休み)=4状態という風に、勤怠時間管理における時間が異なる勤務をそのままシフトにすることはしていません。 なぜそのようなモデリングが必要になるかというと、「そうしないと解けないから」に尽きます。 このことは常識で皆さん理解している、と思っていたのですが、どうやらそうでない方もいるようです。

シフトとは何か? 一回でもシフト勤務表を手で作ったことがあるならば、その大変さを身に染みていると思います。まずは、頭の中の勤務表ソフトという得体の知れないブラックボックスを1回リセットして、ご自分の「手」で勤務表を作られることをお勧めします。皆さん、下の動画内にある手書き勤務表を書いて(あるいはExcelで)やってみてください。

対決! 勤務表作成名人 vs 最強エンジン

就業規程をそのまま「シフト」にするのはNG

そしてその経験が自然なモデリングを生むと思います。出来る限り状態削減しないと、まともに組めないということが実感として分かって頂けると思います。そして今、手で行って頂いた作業と同じことをさせるのが自動化勤務表ソフトです。 しかし、その経験がなく、頭だけで考えていると、就業規定に沿った形(何十種~何百種も規定があるのが普通です)をそのままシフトにすればよい、という間違った発想になってしまうかもしれません。どうもお話していて話が嚙み合わないのは、その辺の経験の差ではないか?という思いに至りました。私自身は、手で作成したことはないのですが、勤務シフトのソフトウェアを書こうという人は、まず簡単なモデル上で発想を巡らせることになるので、やはり同じ経験を積んでいると言えると思います。 ナーススケジューリング問題は、適切なモデリングなしには、まともに解が出ない世界です。それは、スケジュールナースによらずどのソフトウェアについても同じです。状態変数の数を削減しない限り、小規模な問題も大規模問題になってしまいます。ナーススケジューリング問題は、NP困難という問題領域にあり、問題規模が大きくなれば、やがて実用的な時間内に解を求めることが出来なくなる問題です。つまり、余計な状態変数を含むと小規模な問題であっても大規模問題になってしまい、本来なら、物理限界まで求められる最適シフトが、求めることが出来なくなってしまう可能性があります。

https://www.nurse-scheduling-software.com/japanese/publications/lecture_notes_for_basic_modeling.pdf

勤怠時間管理は、実態に合わせることは必要でしょう。給料計算には。ですが、それはシフト勤務をした結果です。未来のシフト勤務を予測し必要な加算のための夜勤者を割り当てることとは別物です。 事務屋さんにとっては、事務的な負担を削減するが目的でしょう。しかし、スケジュールナースが意図しているナーススケジューリングは、事務的な負担削減が目的ではありません。シフト管理者から見た、組織の目標である看護品質の確保とスタッフのQOL向上にあります。

https://www.nurse-scheduling-software.com/japanese/publications/Schedule_Nurse_Presentation_materials_for_multi-ward_hospitals.pdf#page=32

その目的の為に、モデリングが必要なのです。組織として加算要件を満足できなかったり、理不尽なシフトを強いられたりしたら、(事務負荷削減を達成したとしても)意味がない、本末転倒ではないでしょうか?  もしも簡単に厳密解が得られるような人的リソース十分の職場だったとしたら、このようなモデリングは必要ないでしょう。この状態以下に良い状態はあり得ないので事務的なことも目を向けられる余裕があります。容易に解を見つけやすいということなので、ベンダ間の性能差も小さいかもしれません。

難しい問題領域には、高性能ソルバと相応のモデリングが必要

しかし、今までそのような簡単な職場は見たことがありません。 皆、例外なくリソースギリギリのなかでやり繰りしています。ナーススケジューリングという極めて難しい問題領域に正面から取り組むには、スケジュールナースという高性能ソフトウェアを持って立ち向かう必要があります。 そして、その能力を最大限に発揮させるには、相応のモデリングが必要となるのです。