提案の経緯
身近な課題を解決するシステムを作ろうと考えていたところ、アルバイト先の飲食店で行っていた手動のシフト管理を思い出した。
勤怠管理は無料のアプリケーションを利用していたが、シフト管理機能とは結びついてなく、LINEで募集したものをExcelに手打ちで集計し、公平性を配慮して手動でシフトを組んでいた。
以前から手間がかかりそうな作業だなと薄々感じていたが、より良い案を提案してみようとは考えたこともなかった。
しかし、いざエンジニアを目指して勉強するにつれ、技術を用いることでこの課題を解決できると確信した際には、一度真剣に提案をしてみたいと思うようになった。
実際にシフト管理を担当している社員の方に、提案の背景や概要を伝え、後日店長代理も含め3人で話し合う機会をいただいた。
帰宅してA4資料2枚に急いで提案内容をまとめ、現状分析、自分が作る理由、既存サービスでない理由などを分かりやすく説明できるよう準備をした。
提案にあたり意識した点
- 対話型の提案にする
- 専門用語での説明は控える
- 曖昧な回答はせず、分からないものは正直に伝える
相手に価値観や本音を打ち明けてもらうよう、自身の説明は4割程度に留めるよう努め、質問や不明点はないか頻繁に確認した。
結論
「実用化は現状難しいが、一度独立して作ってみてほしい」
この方向性で合意した。
実用が難しいのは、主にセキュリティや退社後の保守運用などの一般的なリスクを保証できる、信頼性やスキルセットを現状持っていないから。サポート体制も提案内容に含めたが、
「技術的に作成可能」と「業務に導入して実用可能」の大きなギャップに気づいた。
実用化は一旦置いておき、提案内容をもとにシステムを作ってみなさい。サポートや欲しい機能の提案やフィードバック、レビューはいくらでも協力するから。
◎勇者はアジャイルな開発環境を手に入れた!
提案でご指摘いただいた点
主に2点、厳しめにご指摘をいただいた。
1. イメージが想像できない
提案資料はA4用紙が2枚。システムのイメージを想像できるモックは持ち合わせてない。
適宜、不明点はないか慎重に質問し、スマートフォンとタブレット端末を見せてシフト管理の流れを分かりやすく伝えたつもりではあった。しかし、すべての話し合いが終わった後に店長代理が一言、
「何を言っているか全然頭にイメージが湧かない。画面が想像できない。」
結構、驚いた。相槌もよく打っているし、不明点も細かく聞いてくださるので頭でイメージできていると思っていた。モックは作りたかったが、限られた時間で優先できなかった。
スピードが命だと思っていたのは自分のエゴであり、相手が求めるのはクオリティだった。
開始2秒で結論は決まっていた。
視覚的なファーストインプレッションの重要性を学んだ。
2. ボランティアなら作らないでほしい
実現可能性を検討するにあたり、システム構築の費用と自身の対価も重点的にお話しした。
提案当初の考えでは、見出しの通りボランティア精神で請け負うつもりだった。むしろ、多少の犠牲は厭わないと思っていた。
しかし全くもって賛同されず。
コストの対価を頂かない、それ即ち「あまりにも非常識な無責任」であると。
それってあなたにとって都合が良すぎる話だよね。
ボランティアと実用化の提案は矛盾していると気づき、その場で大きく反省した。
最後に:高評価を受けた点
後日、店長がこの話を聞いて「一瞬詐欺かと思っちゃったよー」なんて言われたり。
しかし、機能に関してはよく考えられていると評価していただいた点もある。
機能を考えるにあたり、シフト管理の仕様を明確に考慮した。
例えば、期限の締切を過ぎても提出できるか、担当の管理権限はあるか、自動でシフト計算をするが後から提出した人が不利にならないか、など。
実装において必ず重要な概念なので、提案の中で要望があった仕様も含めて一旦まとめてみる。
機能に落とし込むべきシフト管理の仕様
- 担当者に管理権限を渡し、他の者は社員であってもシフト編集が不可
- シフト募集期限を過ぎても従業員はシフト希望を提出可能
- 後から希望を提出した人が自動計算で不利にならない
- キッチン/ホールなどのグループ選択(両方選択も可)
- 1日のシフト枠・募集期間・締切日時の自由設定
- 出勤希望日・出勤可能日の区別をラベルで選択
- 締切日時まではシフト希望を自由に再提出可能
- 交通費・時給・勤怠管理との連携
- シフトの手動変更
- 通知機能
- など
例えば、後からシフト希望を提出した人が不利にならないためには
管理者権限で「自動シフト計算をする/しない」を選択できる機能があると実現できる。
締切日時で自動計算されては、後から提出するたびに計算し直す必要がある。
また、入社して間もないアルバイトはシフトに多く入れたい。自分はそれでシフトが減った。自動シフト計算した後にも、管理者権限で簡単に編集できれば公平性は担保できる。
導入先によって必要/不必要が異なるので、優先度をつけなければならない。
悩んでいる仕様
シフトの「公平性」をどう評価するか
確定日数、それとも希望日数と確定日数の差か。後者だとすると、15日間の希望で12日間が確定した人と4日間の希望で1日確定した人は同じと言えるのだろうか。手動機能で変更できるが、他との調整も必要なので手間がかかる。
シフト希望が重複する際の処理
等しい希望日数でシフト希望が重複する際、自動計算ではエラーになる可能性が高い。あるいは、両方ともカウントしない。管理者権限で従業員に優先度を設定するか何らかの処理が必要。