스케줄링 도구를 위한 교대 근무 상태 설계하기
교대 근무 상태 설계가 간단할 것이라고 생각했습니다. 한 근무는 확정되었고, 다른 근무는 확정되지 않았습니다. 제 생각이 틀렸습니다.
상태는 단순히 카드에 붙은 라벨이 아닙니다. 상태는 제품 로직을 구동합니다. 시스템이 다음에 무엇을 해야 할지 알려줍니다.
'미확정(not confirmed)'이라는 문구를 생각해 보세요. 이 문구는 너무 많은 세부 사항을 숨기고 있습니다. 직원이 근무 내용을 알고 있나요? 거절했나요? 대체 인력이 필요한가요?
혼란을 피하려면 명확한 모델이 필요합니다. 상태를 다음과 같이 구분해 보세요:
- 배정됨(Assigned): 특정 인원에게 근무가 할당됨.
- 확인 대기 중(Waiting for confirmation): 직원이 내용을 인지했으나 아직 응답하지 않음.
- 확정됨(Confirmed): 직원이 수락함.
- 충원 필요(Needs cover): 직원이 거절함.
- 충원 가능(Available to cover): 다른 직원들이 빈 자리를 볼 수 있음.
- 취소됨(Cancelled): 해당 근무가 사라짐.
'배정됨'은 '확정됨'과 다릅니다. 모든 인원에게 근무가 배정되면 스케줄이 꽉 찬 것처럼 보입니다. 하지만 모든 인원이 확정하기 전까지는 상황이 정리된 것이 아닙니다. 이러한 구분은 예상치 못한 상황을 방지해 줍니다.
'충원 필요'는 구체적인 문제입니다. 이는 '미확정'과 같지 않습니다. 하나는 답변을 기다려야 한다는 뜻이고, 다른 하나는 새로운 사람을 찾아야 한다는 뜻입니다. 문제가 구체적일수록 해결책도 빨라집니다.
상태 설계는 제품 설계입니다. 상태는 워크플로우를 형성합니다. 사용자가 무엇을 볼지 결정합니다. 무엇이 시급한지를 알려줍니다.
상태를 명확하게 유지하세요. 좋은 상태 값은 다음 단계를 명확하게 만들어 줍니다.
출처: https://dev.to/miran969/designing-shift-statuses-for-a-small-team-scheduling-tool-3bk5