ML & Data Science

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

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.

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.

Approach

  1. 01

    Data

    Synthetic sprint backlog with engineer capacities and per-pair effort.

  2. 02

    Formulate

    Minimise Σ cost × assignment, with each task assigned once and capacity respected.

  3. 03

    Exact: MIP

    PuLP + CBC

    Branch-and-cut to a certified optimum.

  4. 04

    Heuristic: GA

    DEAP

    Uniform crossover with greedy repair, tournament selection, and penalised fitness.

  5. 05

    Compare

    Cost, gap, runtime, utilisation, fairness (workload standard deviation), and scalability.