Ежедневная тренировка печати: как устроены наши серии, чтобы вы не выгорели

Ежедневная тренировка печати работает лучше всего, когда дневной минимум маленький. На этом сайте для серии нужен один засчитанный тест за сутки по UTC, и 30-секундный тест считается так же, как час занятий. Мы сделали так потому, что серия должна возвращать вас к тренировкам, а не превращаться в повинность, которую вы начнёте ненавидеть.

Дольше всего мы спорили не о гоночной трассе и не о защите от читерства. Мы спорили о серии.

Серии работают. Но любой, кто пользовался приложением для изучения языков, знает и это чувство: открыть его в 23:50, чтобы набрать одно предложение, лишь бы цифра не обнулилась. Мы хотели первого без второго. Вот принятые решения с цифрами, чтобы вы сами судили, получилось ли у нас.

Что засчитывается в серию печати?

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

Дни считаются по UTC — это решение, о котором, как мы ожидаем, будет больше всего вопросов. Причины и цена — ниже.

Напоминание и чего оно не делает

Если ваш последний засчитанный день — вчера, а сегодня вы ещё не печатали, серия «под угрозой», и плашка серии на главной странице так и пишет. Это всё напоминание. Никаких уведомлений, писем или красных значков на иконке, если только вы не подписались на еженедельную сводку, где серия упоминается раз в неделю одной строкой простого текста.

Это сделано намеренно и, вероятно, стоит нам части вернувшихся посетителей. Push-уведомления о потере серии — распространённый инструмент возврата пользователей в приложениях для привычек и, по нашему опыту, один из самых ненавистных. В нашем плане было написано: «никаких уведомлений о потере серии без согласия», и мы этого держались.

Если результат приходит задним числом, раньше вашего последнего засчитанного дня (неправильные часы на ноутбуке, офлайн-результат, синхронизированный с опозданием), мы засчитываем тест и не трогаем серию. Расхождение часов не должно стоить никому сотни дней.

Как считаются XP и уровни

XP — валюта времени, проведённого за тренировкой. Это намеренно не рейтинг, и почему — объясним дальше.

За каждый засчитанный тест не в режиме дзен:

  • Базовые XP — 2 за секунду активной печати, с поправкой на точность. Тридцать секунд при 95% — это 57 XP. «Активная» означает засчитанную длительность минус секунды отсутствия за клавиатурой, так что открытая вкладка ничего не приносит.
  • Засчитывается не больше 600 секунд на тест, так что тридцатиминутный тест приносит ту же базу, что и десятиминутный, и марафоны не доминируют.
  • Множители складываются: +50% за точность 100%, +50% за тест с цитатой, +40% за включённую пунктуацию, +10% за включённые цифры. Идеальная цитата с пунктуацией идёт с множителем 2,4×.
  • Фиксированные бонусы: +50 за первый тест за сутки по UTC, +50 за попытку в испытании дня, +25 за гонку и ещё +25 за победу в ней, +20 за личный рекорд.

Уровни растут по пологой кривой: чтобы перейти с уровня L на уровень L+1, нужно 100 × L^1,3 XP. В сумме уровень 2 наступает после 100 XP, уровень 5 — примерно после 1 370, уровень 10 — примерно после 7 700, уровень 20 — примерно после 40 300, а уровень 50 — примерно после 343 000.

Чтобы перевести уровень 50 в тренировки: идеальный 30-секундный тест приносит 90 XP без бонусов (60 базовых плюс 50% за идеальную точность), так что нужно около 3 800 таких тестов. Пятнадцать минут в день при точности 95% приносят около 1 760 XP с бонусом за первый тест, и так уровень 50 достигается примерно за шесть-семь месяцев. Для уровня 100 нужно около 1,7 миллиона XP. Названия уровней идут от «Новичка» через «Наборщика», «Клавишного кузнеца» и «Словесника» к «Легенде» на 50-м и «Бессмертному» на 100-м, и да, верх этого списка немного нелеп нарочно.

Если вы гость, ваш браузер применяет те же правила к локальной копии. Вход в аккаунт нужен, чтобы серия и место в дневном рейтинге хранились в аккаунте, а если вы входите в новый аккаунт, локальный прогресс объединяется с ним один раз, с ограничением в 5 000 XP, 500 тестов и серию в 30 дней. Ограничение нужно, чтобы через объединение нельзя было накрутить рекорд; поэтому же значок за 100 дней можно получить только в аккаунте.

Вехи серии — 3, 7, 14, 30, 60, 100, 180 и 365 дней, а значки дают за 3, 7, 30, 100 и 365. Значок за 365 дней, как мы ожидаем, не получит почти никто, и в этом его смысл.

Почему серия устроена именно так

Серию определяют пять правил. Каждое появилось из вопроса: что должен поощрять показатель привычки?

Никаких очков за объём в рейтингах

XP измеряют потраченное время, а значит, поощряют объём. Возьмём двух человек. Первый печатает на 60 WPM и проходит один 30-секундный тест в день с точностью 98%, что приносит около 59 XP плюс 50 за первый тест, то есть примерно 110 в день. Второй печатает на 45 WPM и тренируется по пятнадцать минут в день с точностью 95%, что приносит около 1 760. Более медленный зарабатывает в шестнадцать раз больше.

Для валюты тренировок это правильный ответ: время за клавиатурой — именно то, что нужно тренировке. Для рейтинга это неправильный ответ: рейтинг должен показывать, кто печатает быстрее и чище. Таблица по XP поставила бы второго первым, а подниматься по ней можно было бы, просто добавляя минуты.

Поэтому XP никого не ранжируют. Таблицы лидеров ранжируют скорость с порогом точности; XP видны в ваших результатах и в профиле, но никогда в таблицах. По той же логике устроен экран результатов гонки: место, WPM и точность идут первыми, а строка XP — мелко и внизу.

Нечего покупать

Здесь нет валюты, которую можно потратить, нет магазина, косметических улучшений и ничего, что пропадает, если вы не заходите. Серия — это запись дней, в которые вы тренировались. Как только любую её часть можно купить, цифра начинает значить «тренировался или заплатил» и перестаёт что-либо сообщать. Магазин к тому же даёт сайту причину заставлять вас тревожиться о потере прогресса, потому что тревога и продаёт защиту. Мы не хотели такого стимула в коде.

Никакой платной истории

Ваша история не ограничена и бесплатна, а серия никогда не зависит от того, за что пришлось бы платить. Серия существует ради 90-дневного тренда на странице истории, и этот график — единственная честная проверка того, работает ли привычка. Если запереть старые результаты, вы не увидите то плато, которое вам важнее всего увидеть.

Никакого экрана потери

Когда серия прерывается, а это случится, плашка показывает 1, а ваша лучшая серия сохраняется. Восстановить её не предлагают.

Исследования привычек поддерживают мягкий подход. В исследовании Университетского колледжа Лондона под руководством Филиппы Лалли формирование новой привычки заняло в среднем 66 дней у тех участников, для которых исследователи смогли построить модель, а один пропуск «не оказал значимого влияния на процесс формирования привычки». Если считать пропущенный день катастрофой, люди усваивают, что привычка хрупкая, и некоторые бросают, вместо того чтобы снова начать с 1.

Мы рассматривали «заморозку серии», какую продают языковые приложения, и решили, что делать потерю серии похожей на несостоявшуюся покупку — ровно то, чего мы старались не строить.

Сутки по UTC

Граница суток должна быть одинаковой для всех, иначе таблицы лидеров и испытание дня не смогут её разделять. При местном времени цитата дня менялась бы в разный момент для каждого посетителя, а список «самых быстрых сегодня» сравнивал бы разные дни. UTC — единственная граница, которую сервер может вычислить, не спрашивая браузер.

Цена в том, что для человека в Калифорнии сутки сменяются в 16 или 17 часов, а в Дели — в 5:30 утра. Мы рассматривали сдвиг на несколько часов для каждого аккаунта и отказались от него в первой версии: это ещё одно правило, которое нужно объяснять, а серия, требующая абзаца объяснений, уже проигрывает. Обратный отсчёт испытания дня показывает, сколько осталось до конца текущих суток. Если мы к этому вернёмся, это будет однократно задаваемый сдвиг, и эта заметка об этом скажет.

Как часто тренироваться в печати?

Ставьте низкий минимум. Серия, которой нужно пятнадцать минут, умирает в первый же загруженный день; в плохой день хватит одного 30-секундного теста. На этом построен план тренировок от 40 до 80 WPM: полное занятие — пятнадцать минут, минимум — один тест.

Не гонитесь за бонусом за первый тест в полночь. +50 существует, чтобы короткое занятие имело смысл, а не чтобы вы не ложились спать. Если сейчас 23:55 по UTC и вы устали, серия стоит меньше, чем сон.

Сделайте испытание дня занятием по умолчанию. Это одна цитата, обычно меньше минуты, и его таблица обнуляется каждый день, так что верх достижим. Дизайнер геймификации Ю-кай Чоу говорит о том же: «Стандартный рейтинг с первого места до последнего мотивирует лишь небольшую группу наверху», и предлагает подбирать период обнуления под то, как часто люди действуют: для частых действий — ежедневно.

Следите за линией тренда, а не за серией. 90-дневный график на странице истории — то, ради чего серия существует. Если линия идёт вверх, серия сделала своё дело, даже если прервётся. Если линия месяц стоит на месте, серия заставляет вас печатать, но не делает быстрее, и это сигнал открыть упражнение на слабые клавиши в разделе тренировки вместо привычного теста.

За чем мы следим

Данных об удержании, которые можно опубликовать, у нас пока нет. Когда они появятся, вопрос будет такой: становятся ли те, кто держит 30-дневную серию, быстрее по 90-дневному тренду или просто держат серию? Если второе, дизайн неверен, и первым изменением будет сделать засчитываемым именно испытание дня.

Частые вопросы

Как часто нужно тренироваться в печати?

Чтобы сохранить привычку, понемногу и часто лучше, чем редкие марафоны. Наша серия просит один засчитанный тест в день, а план тренировок предлагает пятнадцать минут, когда они есть, и один короткий тест, когда их нет.

Когда обнуляется ежедневная серия?

В полночь по UTC. Обратный отсчёт испытания дня показывает, сколько часов осталось в текущих сутках по UTC, так что вы видите, когда заканчивается «сегодня», где бы вы ни жили.

Нужна ли в испытании дня идеальная точность?

Нет. Играть можно сколько угодно, засчитывается лучшая попытка, но в дневную таблицу попытка попадает только при точности 90% или выше.

Источники