Как я разбираю фичу до того, как она уйдёт в разработку.

Регистрация выглядит как самое простое место в продукте: поле почты, поле пароля, кнопка. Поэтому её часто отдают в работу без спеки — и теряют на ней людей, за которых уже заплатили маркетингом. Незавершённая регистрация это оплаченный клиент, который до продукта не дошёл.

Фичу я взял намеренно простую. На ней виден метод: как из фразы «надо упростить» получается документ, по которому разработчик пишет код, а тестировщик проверяет результат. На сложной фиче метод тонет в предметной области.

Задача

Упростить первичную регистрацию, чтобы поднять конверсию и снизить долю незавершённых регистраций.

Формулировка бизнеса звучит просто. Проблема в том, что «упростить» — это не требование, а намерение. Прежде чем что-то писать, нужно решить, где проходит граница задачи.

Первое решение: что не входит в scope

Половина работы PM на этом этапе — не добавить, а отрезать.

Включил: регистрацию по email и паролю, подтверждение по email, обработку повторной регистрации существующего адреса, автовход после подтверждения, создание базового профиля.

Сознательно вынес за скобки: вход через Google и Apple ID, двухфакторную аутентификацию, редактирование профиля.

<aside> 💡

Почему именно так. Соцвходы действительно поднимают конверсию — возможно, сильнее, чем всё остальное вместе взятое. Но это отдельная интеграция со своим сроком и своими рисками, и если положить её в тот же релиз, поедет весь релиз. 2FA работает против цели: она усложняет вход, а мы пришли упрощать.

</aside>

Основной сценарий

  1. Пользователь вводит email и пароль
  2. Система проверяет формат email
  3. Проверяет уникальность
  4. Проверяет длину пароля (минимум 8 символов)
  5. Создаёт пользователя со статусом pending
  6. Отправляет письмо подтверждения
  7. Пользователь переходит по ссылке
  8. Статус меняется на active