Почему наш стрик не наказывает
Первые полгода после запуска стрик в Wolkup работал классически: пропустил день — счётчик летит в ноль. Я сделал именно так, потому что так устроено в любом привычечном приложении — это ощущалось как стандарт, а не как решение, которое я сам принял.
Толпы не было — у ранней версии её и не бывает. Но даже на горстке людей паттерн повторялся одинаково: кто-то держался пару недель, пока один пропущенный день не оборачивался тихим уходом, другие не добирались и до этого — исчезали за несколько дней. Без жалоб, без обратной связи — просто исчезали. Мне понадобилось больше времени, чем хотелось бы признавать, чтобы связать это со стриком. Число, которое наказывает тебя в тот момент, когда ты просто человек, не заставляет тренироваться усерднее, чтобы его защитить — оно даёт повод исчезнуть в момент, когда ты его теряешь, потому что возвращаться уже не за чем.
Сам я тоже не исправил это сразу. Следующие полгода я вообще перестал открывать собственное приложение и что-либо в нём дорабатывать — жёсткий стрик всё это время просто стоял, не прощая ни тех немногих, кто ещё им пользовался, ни меня самого. Вернувшись к проекту позже, уже с дистанции, я увидел проблему настолько чётко, насколько не видел её, когда сам был в процессе разработки.
Так до сих пор устроено большинство привычечных приложений: пропустил день — счётчик в ноль, и все недели, что ты вкладывался, исчезают из-за одного неудачного утра. Это работает — в том смысле, что страх правда мотивирует. Но получается, что главные отношения приложения с тобой строятся на «не разочаруй меня», а это, как оказалось, странная и дорогая основа для тренировочной привычки.
Поэтому я это изменил. Стрик в Wolkup мягкий: пропуск дня не сбрасывает его мгновенно. Есть окно на продление — вернуться и сохранить серию, вместо того чтобы смотреть, как число, которое строилось неделями, исчезает из-за одного плохого дня.
Это видимая часть. Менее заметная часть, которая делает бóльшую работу — яркость стрика. Число стрика говорит сколько дней подряд, но не говорит насколько интенсивно. Поэтому яркость — отдельный сигнал: она отслеживает, сколько усилий ты реально вкладываешь в последнее время (экспоненциальное скользящее среднее, а не просто вчерашняя тренировка), и сама тускнеет, если ты сбавил темп — даже пока число стрика формально ещё живо. Это раннее предупреждение, а не наказание: ты видишь, что темп падает, за несколько дней до того, как сам стрик окажется под угрозой, и можешь скорректироваться, а не получить сброс внезапно.
Цель не в том, чтобы сделать стрик прощающим до полной бессмысленности — а в том, чтобы он честно показывал две разные вещи одновременно: жива ли привычка и насколько хорошо. Наказывать за один пропуск — значит считать оба случая одной и той же неудачей. Это не так.
Дальше по этой теме: нормальный календарь истории и механика «заморозки» на дни, когда правда не можешь потренироваться — болезнь, поездка, что угодно — без того, чтобы это выглядело как сломанный стрик. Расскажу подробнее, когда это будет готово.