Systems / 2026 / Runs natively
Velocity Lens
A small Java planner that picks a sprint from your backlog CSV, packing the effort you have for the most total value, and says why each task was left out.
01
The problem
Taking the best-scoring tasks first until the effort runs out is Dantzig's greedy rule for the knapsack problem, and it leaves value on the table: with a budget of 10, one 6-effort task with the best score beats two 5-effort tasks that are worth more together. Prioritisation also usually lives in a spreadsheet nobody else can check.
02
How I approached it
A Task value type rejects NaN, infinite and negative inputs and reads confidence 80 as 80% the way RICE writes it. The Planner scores value over effort with a 0.25 effort floor, so tiny tasks can't fill the sprint for free, and buildSprint solves the 0/1 knapsack exactly by dynamic programming over hundredths of effort, rounding efforts up so a plan never runs over, with score order kept as a fallback above two million table cells. The CSV reader follows RFC 4180, so quoted commas, doubled quotes, CRLF and the byte order mark Excel adds all work, and columns are matched by header name.
03
The outcome
On the built-in sample with a budget of 6.5, score order plans 32.71 of value and the packer plans 37.07. The tests check the packer against brute force on 300 random backlogs, check it never loses to score order, and cover CSV quoting and errors that name the row and column. CI runs on Java 17 and 21.