Optimization
Sprint Task Allocation
Who should do which sprint task? An exact solver and an evolutionary algorithm go head to head on minimising total effort without overloading anyone.
- Role
- Data Scientist
- Year
- 2025
- Focus
- Optimization
- Stack
- 4 technologies
- DEAP (GA)
- PuLP (MIP)
- Python
- Pandas
Optimal
MIP with certificate
≤ few %
GA optimality gap
6
Evaluation metrics
The problem
Sprint assignment is a Generalized Assignment Problem. Every task goes to exactly one engineer, each engineer has a capacity, and total effort should be as low as possible. It's NP-hard, so exact methods slow down quickly as teams and backlogs grow.
Overview
Mixed-Integer Programming (PuLP with the CBC solver) gives provably optimal assignments. A Genetic Algorithm (DEAP) gives fast, near-optimal ones and can extend to multi-objective and uncertain settings.
Both are measured on cost, optimality gap, solve time, utilisation, workload fairness, and how they scale. The recommendation is a hybrid: use the GA to warm-start the MIP.
Architecture
Approach
- 01
Data
Synthetic sprint backlog with engineer capacities and per-pair effort.
- 02
Formulate
Minimise Σ cost × assignment, with each task assigned once and capacity respected.
- 03
Exact: MIP
PuLP + CBCBranch-and-cut to a certified optimum.
- 04
Heuristic: GA
DEAPUniform crossover with greedy repair, tournament selection, and penalised fitness.
- 05
Compare
Cost, gap, runtime, utilisation, fairness (workload standard deviation), and scalability.