База знает то,чего не сказали
SPECROOM читает схему твоей базы, а если разрешишь — и код. Ни одной строки данных. Потом допрашивает по восьми зонам, пока фича не станет проверяемой.
Хотим дать пользователям ставить подписку на паузу — на месяц или на три.
users
- iduuid
- emailcitext
- created_attimestamptz
plans
- iduuid
- codetext
- price_centsinteger
- intervalinterval
subscriptions
- iduuid
- user_iduuid
- plan_iduuid
- statussubscription_status
- period_endtimestamptz
invoices
- iduuid
- subscription_iduuid
- amount_centsinteger
- paid_attimestamptz
перечисление subscription_status
- trialing
- active
- past_due
- canceled
данные и миграции
У статуса подписки четыре значения, и все четыре — про идущую или кончившуюся. Пауза станет пятым значением или отдельной сущностью?
Схему — да. Данные — нет. Код — как решишь.
Код — по желанию: его прочитает твой агент у тебя на машине, и наружу уйдёт карта, а не файлы. Дамп со строками данных парсер не примет вовсе.
- 42
- таблицы
- 318
- полей
- 6
- представлений
- 57
- внешних ключей
- дамп со строками данных
- дамп не из Postgres
Восемь зон, и седьмая — та самая
Список закрыт: восемь полей покрытия, а не восемь тем на усмотрение модели.
Данные и миграции стоят седьмыми, а не в хвосте: что будет с уже накопленными записями, нужна ли обратная совместимость и как откатиться — три вопроса, которые на четвёртом дне спринта задавать поздно.
«Не знаю» — это адрес, а не пропуск
Незнание становится исследованием со своим адресом и блокирует ровно то, что от него зависит.
R3
Что происходит с запланированным списанием, если паузу включили за два часа до него?
2ждут ответа
- S4списание в день паузы
- S7возврат за неиспользованные дни
3идут дальше
- S1кнопка «На паузу»
- S2предел срока паузы
- S9письмо о возобновлении
На «Проблему» и «Цели» ответить «не знаю» нельзя: без них синтезировать нечего.
Реестр, который можно проверить
У сценария три части, и третью не изобретают: нет результата — нет сценария.
- S1
- backend
- frontend
- testing
- если
- подписка активна и до списания больше суток
- при
- пользователь ставит паузу на 30 дней
- то
- списание отменяется, доступ держится до конца оплаченного периода
- S5
- backend
- testing
- data
- если
- подписка на паузе и срок паузы истёк
- при
- наступает дата возобновления
- то
- статус возвращается в active, списание встаёт в очередь на ту же дату месяца
- S8
- backend
- frontend
- testing
- если
- подписка на паузе
- при
- пользователь меняет план
- то
- смена откладывается до возобновления, а не снимает паузу
Роль testing стоит на каждом сценарии, и потому весь реестр целиком работает чек-листом приёмки.
После подписи текст не меняется молча
Правку после порога не сделает никто — включая тебя, — не назвав причину.
- не пройден
- подписан одной стороной
- пройден
до порогапосле порога
если подписка активна и до списания больше суток, при постановке на паузу — списание отменяется, доступ держится до конца оплаченного периода
причинаШлюз не отменяет списание позже чем за час до него, поэтому порог сдвинут на сутки.
ревизия02.08 · 11:24Пётр Ким · технический директор
S1 · пауза подписки
Порог сдвинут с двух часов на сутки.
причина: шлюз не отменяет списание позже чем за час; проверено на песочнице 01.08
порог14.07 · 16:08Анна Дорохова · продакт
Основа проекта
Порог пройден: Основа заморожена, 9 элементов.
сценарий12.07 · 10:05SPECROOM
S1 · пауза подписки
Собран из тезисов зоны «данные и миграции».
образец
SPECROOM
Какую фичу разбираем?
Пилот — разбор трёх твоих фич до спринта. Заявка ни к чему не обязывает.