What Should I Build First?

Dependencies decide what is possible. Weights expose how you choose among the unblocked options. Risk can be prototyped before its delivery slot.

Nine features, one of them — Payments — an external integration you have never done. Under balanced weights, Products comes first because nothing else can be tested without it and Recommendations comes last because it is worth little until there are orders to learn from. Let Dependencies Gate; Let Value Order →

The default position: user value leads, risk is pulled forward, learning and effort are tie-breakers. Choose it when nothing about the project is unusual — a small team, a known domain, a deadline that is real but not brutal.

Recommended order

Dependencies gated every slot; the weights decided 8 of 9. Change the preset and watch which slots move — those are the real decisions. First vertical slice: Products end to end, front to database, before anything else gets a second feature. Risk to prototype early: Payments (risk 5). Its slot stays where its dependencies put it, but spend a time-boxed spike on its riskiest unknown before then.

  1. 1Products

    The catalogue. Nothing else in the store can be demonstrated without something to buy.

    no dependencies — buildable from day one · highest user value among unblocked features · cheapest of the unblocked features · score 17 vs 13 for Authentication, the next candidate

  2. 2Cart

    State that must survive a page reload — the first place who owns this state comes up.

    all dependencies placed (Products) · highest user value among unblocked features · score 16 vs 13 for Authentication, the next candidate

  3. 3Checkout

    Turns a cart into an order. The core workflow; the first vertical slice ends here.

    all dependencies placed (Cart) · highest user value among unblocked features · highest risk among unblocked features (3) — pulled forward so the hard part is met early · most to learn from among unblocked features · score 21 vs 13 for Authentication, the next candidate

  4. 4Paymentsprototype early

    Provider integration, webhooks, retries, partial failure. The riskiest thing in the project.

    all dependencies placed (Checkout) · highest user value among unblocked features · highest risk among unblocked features (5) — pulled forward so the hard part is met early · most to learn from among unblocked features · score 25 vs 16 for Orders, the next candidate · risk 5 — prototype the unknown before this slot: a time-boxed spike that answers one question, thrown away afterwards

  5. 5Orders

    Order history and status. A snapshot of what was bought at what price.

    all dependencies placed (Checkout) · highest user value among unblocked features · score 16 vs 13 for Authentication, the next candidate

  6. 6Authentication

    Known territory; needed before real users, not before the first slice.

    no dependencies — buildable from day one · highest user value among unblocked features · score 13 vs 12 for Inventory, the next candidate

  7. 7Inventory

    Stock levels and the concurrency question — two buyers, one item.

    all dependencies placed (Products) · highest user value among unblocked features · score 12 vs 11 for Admin, the next candidate

  8. 8Admin

    A back-office for editing the catalogue. Boring, cheap, and a real requirement.

    all dependencies placed (Products) · highest user value among unblocked features · cheapest of the unblocked features · score 11 vs 10 for Recommendations, the next candidate

  9. 9Recommendations

    Needs order data to recommend from; low value until then.

    all dependencies placed (Orders) · the only unblocked feature — the dependency graph decided this slot, not the weights