Back | Technology/IT Professional Development

Designing a Fair On-Call Rotation Schedule

Advanced 75 min 0 views 0 solutions

Overview

NexGenIT's NOC team of 5 engineers needs a 7-day on-call rotation with primary and secondary coverage each day. The team lead proposed a simple round-robin but it violates fairness rules. The IT manager must design a constraint-based rotation algorithm and manually trace the first 2 weeks — before deploying it to the team.

Case Details

# Aplly.xyz Case Study Submission

## Title
Designing a Fair On-Call Rotation Schedule

## Type
Technology/IT

## Difficulty
Advanced

## Estimated Time
75 minutes

## Overview
NexGenIT's NOC team of 5 engineers needs a 7-day on-call rotation with primary and secondary coverage each day. The team lead proposed a simple round-robin but it violates fairness rules. The IT manager must design a constraint-based rotation algorithm and manually trace the first 2 weeks — before deploying it to the team.

## Case Details

Function Focus: Constraint-based scheduling algorithm design, manual timetable trace, fairness metric computation

Scenario:
The NOC team at NexGenIT currently has no structured on-call schedule — engineers self-assign daily, leading to burnout for conscientious staff and free-riding for others. The new team lead proposed an alphabetical round-robin: Person A → B → C → D → E → A → ... assigning primary on-call in order, then wrapping around for secondary. The IT manager spots a problem: alphabetical order puts the same people on weekend duty every time (A and B always get Saturdays). She needs to design a rotation algorithm that satisfies 5 hard constraints and 2 fairness metrics — and manually trace it across 14 days to prove it works before the team adopts it.

Hard Constraints:
1. Each day needs exactly 1 primary on-call and 1 secondary on-call (2 distinct people)
2. No engineer can serve as primary on 2 consecutive days
3. Each engineer must have at least 1 day with zero on-call duty per week (7-day window)
4. Primary and secondary counts across the 5-person team must not differ by more than 1 in any given week
5. Weekend (Sat + Sun) primary duty must rotate so no one gets more than 1 weekend primary per 5-week cycle

Fairness Metrics (to be computed and reported):
- F1: Primary-to-secondary ratio deviation per person over 14 days (ideal = 1.0)
- F2: Weekend primary count per person over 14 days (ideal = evenly distributed)

Tasks:
1. Identify the failure mode in the proposed alphabetical round-robin — trace it for the first 7 days and state which constraints it violates and where the unfairness appears
2. Design an improved rotation algorithm (you may describe it in plain rules or a short pseudocode sequence) that satisfies all 5 hard constraints
3. Manually trace your improved algorithm across 14 days (Week 1 + Week 2), producing a 14 × 2 assignment table (day × primary/secondary)
4. Compute F1 (primary-to-secondary ratio deviation) and F2 (weekend primary count) from your trace and state whether your schedule is fair under both metrics
5. Only after submitting your manual trace, implement the algorithm in a spreadsheet or Python and verify your 14-day output — report any cells where your manual assignment differs from the computed one

Expected Output:
A schedule packet containing: (a) failure analysis of the round-robin with specific constraint violations identified, (b) your improved algorithm expressed as rules or pseudocode, (c) a 14-day trace table with all assignments, (d) F1 and F2 fairness metric calculations, and (e) a round-trip discrepancy report between manual and computed schedules.

Evaluation Criteria:
Correct identification of all constraint violations in the naive schedule, completeness of the 14-day trace (no missing cells), demonstrable satisfaction of all 5 constraints in the improved schedule, correct arithmetic on fairness metrics, and honest discrepancy reporting.

## Data Sources

Team Roster:
| ID | Name | Shifts per week (capacity) |
|---|---|---|
| E01 | Arjun | Available all days |
| E02 | Bhavna | Available all days |
| E03 | Chen | Available all days |
| E04 | Deepa | Available all days |
| E05 | Eswar | Available all days (but prefers no back-to-back primaries) |

Naive Round-Robin Algorithm (proposed by team lead):
```
Week 1 Primary rotation: Arjun, Bhavna, Chen, Deepa, Eswar, Arjun, Bhavna
(Day 1) (Day 2) (Day 3) (Day 4) (Day 5) (Day 6) (Day 7)
Week 1 Secondary rotation: Bhavna, Chen, Deepa, Eswar, Arjun, Bhavna, Chen
(Day 1) (Day 2) (Day 3) (Day 4) (Day 5) (Day 6) (Day 7)
```
This pattern repeats from Mon (Day 1) through Sun (Day 7), then wraps.

Week Calendar:
| Day | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|---|---|---|---|---|---|---|---|
| Weekday | Mon | Tue | Wed | Thu | Fri | Sat | Sun |
| Type | Work | Work | Work | Work | Work | Weekend | Weekend |

Constants:
- 5 engineers, 14 days (2 weeks)
- 2 roles per day (primary + secondary) = 28 total assignments over 14 days
- Ideal per-person share: 28 ÷ 5 = 5.6 assignments (mix of primary and secondary)
- Weekend days per 14 days: 4 (Sat + Sun of Week 1, Sat + Sun of Week 2)

## Solution Frameworks
Constraint satisfaction scheduling, round-robin with offset, fairness metric design, manual timetable trace

## Solver Guidance & Tutorials
Link to: "Constraint-Based Scheduling and Fairness Metrics" tutorial

## What You'll Learn
- Designing rule-based schedules that satisfy multiple hard constraints
- Manual trace verification before deploying to a team
- Measuring fairness quantitatively (not just gut feel)
- Detecting hidden bias in apparently neutral algorithms (alphabetical ordering)

## Tags
on-call rotation, scheduling, fairness metrics, IT operations, constraint satisfaction

## Registration Links
- Register as Solver
- Register as Evaluator

Data Sources

Team Roster:
| ID | Name | Shifts per week (capacity) |
|---|---|---|
| E01 | Arjun | Available all days |
| E02 | Bhavna | Available all days |
| E03 | Chen | Available all days |
| E04 | Deepa | Available all days |
| E05 | Eswar | Available all days (but prefers no back-to-back primaries) |

Naive Round-Robin Algorithm (proposed by team lead):
```
Week 1 Primary rotation: Arjun, Bhavna, Chen, Deepa, Eswar, Arjun, Bhavna
(Day 1) (Day 2) (Day 3) (Day 4) (Day 5) (Day 6) (Day 7)
Week 1 Secondary rotation: Bhavna, Chen, Deepa, Eswar, Arjun, Bhavna, Chen
(Day 1) (Day 2) (Day 3) (Day 4) (Day 5) (Day 6) (Day 7)
```
This pattern repeats from Mon (Day 1) through Sun (Day 7), then wraps.

Week Calendar:
| Day | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|---|---|---|---|---|---|---|---|
| Weekday | Mon | Tue | Wed | Thu | Fri | Sat | Sun |
| Type | Work | Work | Work | Work | Work | Weekend | Weekend |

Constants:
- 5 engineers, 14 days (2 weeks)
- 2 roles per day (primary + secondary) = 28 total assignments over 14 days
- Ideal per-person share: 28 ÷ 5 = 5.6 assignments (mix of primary and secondary)
- Weekend days per 14 days: 4 (Sat + Sun of Week 1, Sat + Sun of Week 2)

Solution Frameworks

Constraint satisfaction scheduling, round-robin with offset, fairness metric design, manual timetable trace

Solver Guidance & Tutorials

Link to: "Constraint-Based Scheduling and Fairness Metrics" tutorial

What You'll Learn

  • Problem-solving and analytical thinking
  • Data-driven decision making
  • Business strategy development
  • Professional report writing
0
Solutions Submitted
Difficulty Advanced
Estimated Time 75 minutes
Relevance Fresh
Source case-studies-in