SPECROOMwhat it costs
RURequest

The schema knowswhat nobody said

SPECROOM reads your database schema and, if you allow it, your code. Not a single row of data. Then it interviews you across eight zones until the feature is checkable.

We want users to be able to pause a subscription — for a month or for three.
from a task for the next sprint
  1. users

    • iduuid
    • emailcitext
    • created_attimestamptz
  2. plans

    • iduuid
    • codetext
    • price_centsinteger
    • intervalinterval
  3. subscriptions

    • iduuid
    • user_iduuid
    • plan_iduuid
    • statussubscription_status
    • period_endtimestamptz
  4. invoices

    • iduuid
    • subscription_iduuid
    • amount_centsinteger
    • paid_attimestamptz

enum subscription_status

  • trialing
  • active
  • past_due
  • canceled
snapshot · sample

data & migrations

Subscription status has four values, and all four are about running or ended. Does pause become a fifth value or an entity of its own?

The schema, yes. Data, no. Code, your call.

Code is optional: your own agent reads it on your machine, and what leaves is a map, not files. A dump with data rows the parser will not take at all.

42
tables
318
columns
6
views
57
foreign keys
  • a dump with data rows
  • a dump that is not Postgres
snapshot · sample

Eight zones, and the seventh is the one

The list is closed: eight coverage fields, not eight topics left to the model.

ProblemCORE4enough
GoalsCORE3enough
Features6enough
Non-goals1thin
Constraints5enough
Decisions1thin
Data & migrations5enough
Open questions0skipped
coverage · sample

Data & migrations stands seventh, not last: what happens to the rows you already have, is backward compatibility needed, how do you roll back — three questions too late to ask on day four of the sprint.

“I don’t know” is an address, not a blank

Not knowing becomes research with an address of its own, and it blocks exactly what depends on it.

R3

What happens to a scheduled charge if the pause is switched on two hours before it?

2waiting for an answer

  • S4charge on the day of the pause
  • S7refund for unused days

3moving on

  • S1the Pause button
  • S2limit on the pause length
  • S9the resume email

You cannot answer “I don’t know” on Problem and Goals: without them there is nothing to synthesize.

research · sample

A register you can check

A scenario has three parts, and the third is not invented: no result, no scenario.

  1. S1
    • backend
    • frontend
    • testing
    if
    the subscription is active and the charge is more than a day away
    when
    the user pauses it for 30 days
    then
    the charge is cancelled, access holds to the end of the paid period
  2. S5
    • backend
    • testing
    • data
    if
    the subscription is paused and the pause has run out
    when
    the resume date arrives
    then
    status goes back to active, the charge is queued for the same date of the month
  3. S8
    • backend
    • frontend
    • testing
    if
    the subscription is paused
    when
    the user changes plan
    then
    the change waits for the resume and does not lift the pause
scenario register · sample

Testing gets the whole register: testing sits on every scenario — that is its acceptance checklist.

Once signed, the text does not change quietly

After the gate nobody — you included — changes a line without stating a reason.

  1. not passed
  2. signed by one side
  3. passed

before the gateafter the gate

if the subscription is active and the charge is more than a day away, when the user pauses it — the charge is cancelled, access holds to the end of the paid period

reason required

reasonThe gateway will not cancel a charge less than an hour out — the cutoff moved to a day.

sample
  1. revision02.08 · 11:24Pyotr Kim · CTO

    S1 · subscription pause

    The cutoff moved from two hours to a day.

    reason: the gateway will not cancel a charge less than an hour out; checked on the sandbox on 01.08

  2. gate14.07 · 16:08Anna Dorokhova · PM

    Project foundation

    Gate passed: the foundation is frozen, 9 elements.

  3. scenario12.07 · 10:05SPECROOM

    S1 · subscription pause

    Assembled from the theses of the data & migrations zone.

sample

SPECROOM

Which feature do we work through?

A pilot is a read of three of your features before the sprint. A request commits you to nothing.

or email us

First a call, an invoice only after.