そろそろDjangoでちゃんとした作品を手がけてみようと思い、まずはシフト作成用のWebアプリを作ってみることにしました。
自分が現在働いている介護施設でのシフト作りがとても大変そうなので代わりのツールを開発していきます(なお、自分の職場で使えればいいという前提なので汎用性は考慮しません)。
今回はとりあえず、欲しい機能をあぶり出すために色々と考えてみました。
1.シフト(考え方)
まずはシフト作成で考慮するであろう点を箇条書きに。
- スタッフの勤務形態には「日勤」、「夜勤」等がある
- 利用者(お客さんのこと)へのサービス形態には「通い」と「泊まり」、「訪問」がある
これらを踏まえた上で考えていきます。
- 利用者の顔ぶれや人数、利用時間・サービス形態は日ごとに異なる
主に曜日で決まっているのですが、ちょいちょい変動があるので油断なりません。
- 「通い利用者」がある日は送迎スタッフが必要
免許所有者が必要なほか、補助のスタッフも別途必要。また、その間施設にいるスタッフが減っていることも考慮しなければなりません(「泊まり利用者」があるなら居残るスタッフが別途必要だったり)。
- 「泊まり利用者」がある日は夜勤者が必要
基本的に一人いればOKですが、夜勤は出勤が日をまたぐので実質二日分の日程を食います(ちなみに各スタッフともに月10回が上限らしいです)。
- 調理師不在の日はスタッフが一人台所に入る
その人は昼食の前後一時間程度まともに接客できないので余分に人数が必要です。
- スタッフごとの条件
曜日指定でしか出られない人も居るし、勤務形態が限られている人も居るので。
以上、おおむねこんなところだと思われます。
正直なところ、最初はこのシフト作成自体を全部プログラムで自動化できたら格好いいなと考えていたのですが、上に書いたことのアルゴニズムが全く分からなそうなので諦めました。
気を取り直して次へ。
2.シフト(作り方)
今度は、シフトを実際に作る際の流れを簡単にまとめてみました(なお、自分で作ったことがあるわけではなく聞いた話を参考にしているだけなのであしからず)。
- 利用者の「予定表」を確認し、必要な人員を予想。
- スタッフの「シフト希望表」を確認し、考慮。
- 例の考え方で考える。
- 打ち込む(Exel)。
ここで気付いたことが一点。
実は、 1と2はそれぞれ別々の資料なので、確認する際は毎回いちいち視線を移して、その後にまたExelの作成画面に戻ってこないといけないことになります。 面倒くさいですね。そういった情報は作成画面にそのまままとめて表示してあったほうがいいように思います。