Я уверен, что вы слышали о полосах или использовали приложение с ними. Но вы когда-нибудь задумывались, почему полосы так популярны и эффективны? Что ж, есть очевидный момент: приложения хотят как можно большего вашего внимания, но помимо этого, знаете ли вы, что, когда популярное обучающее приложение Duolingo представило iOS-виджеты для отображения полос, приверженность пользователей выросла на 60%. Шестьдесят процентов представляют собой масштабный сдвиг в поведении и демонстрируют, как можно использовать «полосатические» шаблоны для повышения вовлеченности и стимулирования использования. По сути, полоса — это количество дней подряд, в течение которых пользователь выполняет определенное действие. Некоторые люди также определяют это как «геймифицированную» привычку или показатель, призванный стимулировать постоянное использование. Но полосы выходят за рамки показателя или записи в приложении; это более психологично, чем это. На человеческие инстинкты легко повлиять с помощью правильных факторов. Посмотрите на эти три фактора: прогресс, гордость и страх упустить выгоду (обычно называемый FOMO). Что общего у всего этого? Усилие. Чем больше усилий вы вкладываете во что-то, тем больше это формирует вашу личность, и именно так полосы пересекаются в мире поведенческой психологии. Теперь с большой силой приходит и большая ответственность, и поэтому у полос есть темная сторона. В этой статье мы рассмотрим психологию, UX и принципы дизайна, лежащие в основе построения эффективной системы полос. Мы рассмотрим (1) почему наш мозг почти инстинктивно реагирует на полосатую активность, (2) как создавать полоски таким образом, чтобы они действительно помогали пользователям, и (3) техническую работу, связанную с созданием полосатого рисунка. Психология полос Чтобы спроектировать и построить эффективную систему полос, нам нужно понять, как она согласуется с тем, как устроен наш мозг. Мол, что делает его настолько эффективным, что мы чувствуем такую сильную приверженность защите наших качеств? Есть три интересных, хорошо задокументированных психологических принципа, которые делают полоски такими сильными и вызывающими привыкание. Неприятие потерь Вероятно, это самая сильная сила, лежащая в основе полос. Я говорю это потому, что в большинстве случаев этого в жизни практически невозможно избежать. Подумайте об этом так: если друг даст вам 100 долларов, вы будете счастливы. Но если вы потеряете 100 долларов из своего кошелька, это повредит еще больше. Эмоциональный вес этих ситуаций неодинаков. Потеря ранит гораздо больше, чем приобретение приятно. Давайте пойдем дальше и предположим, что я даю вам 100 долларов и прошу вас сыграть в азартную игру. Существует 50% вероятность того, что вы выиграете еще 100 долларов, и 50% вероятность того, что вы потеряете первоначальные 100 долларов. Вы бы взяли это? Я бы не стал. Большинство людей не стали бы. Это неприятие потерь. Если вдуматься, это логично, это понятно, это человечно. Концепция неприятия потерь заключается в том, что мы чувствуем боль от потери в два раза сильнее, чем удовольствие от приобретения чего-то равноценного. С психологической точки зрения потери сохраняются дольше, чем приобретения. Вы, наверное, понимаете, как это связано с полосами. Чтобы создать заметную полосу, требуются усилия; по мере того, как полоса нарастает, мотивация, стоящая за ней, начинает угасать; или, точнее, оно начинает становиться второстепенным. Вот пример: предположим, что у вашего друга есть трехдневная полоса, закрывающая «Кольца перемещения» на Apple Watch. Им почти нечего терять, кроме желания достичь своей цели и быть последовательными. В то же время у вас впечатляющая 219-дневная серия. Скорее всего, вы находитесь в ловушке страха потерять его. Скорее всего, в этот момент вы не думаете о достижении; речь идет больше о защите ваших вложенных усилий, а именно о неприятии потерь. Duolingo объясняет, как неприятие потерь способствует нежеланию пользователя прерывать длинную серию, даже в самые ленивые дни. В каком-то смысле полоса может превратиться в привычку, когда укореняется неприятие потерь. Модель поведения Фогга (B = MAP) Теперь, когда мы понимаем страх потерять усилия, вложенные в более длинные серии, возникает другой вопрос: что вообще заставляет нас делать это, день за днем, даже до того, как полоса станет большой? В этом суть модели поведения Фогга. Это относительно просто. Поведение (B) возникает только тогда, когда три фактора — мотивация (M), способность (A) и подсказка (P) — совпадают в один и тот же момент. Таким образом, уравнение B=MAP. Если какой-либо из этих факторов, хотя бы один, отсутствует в этот момент, поведение не произойдет. Итак, чтобы система полос была эффективной и повторяющейся, должны присутствовать все три фактора: Мотивация. Это хрупкая вещь, которая не присутствует постоянно. Бывают дни, когда тыс нетерпением жду возможности выучить испанский, и дни, когда вы даже не чувствуете ни капли силы воли, чтобы выучить этот язык. Мотивация сама по себе для формирования привычки ненадежна и проигрышна с первого дня. Способность Чтобы компенсировать ограничения мотивации, решающее значение имеют способности. В этом контексте способность означает легкость действия, то есть усилие настолько легкое, что невозможно сказать, что оно невозможно. Большинство приложений намеренно используют это. Apple Fitness просто нужно, чтобы вы стояли одну минуту в час, чтобы заработать галочку для достижения своей цели. Для Duolingo достаточно одного завершенного урока. Эти задачи не требуют особых усилий. Барьер настолько низок, что вы сможете это сделать даже в самые худшие дни. Но именно совместные усилия продолжающейся серии приводят к идее проигрыша этой серии. Подсказка. Это то, что завершает уравнение. Люди от природы забывчивы, так что да, способности могут помочь нам в этом на 90%. Но подсказка напоминает нам о необходимости действовать. Полосы по своей природе постоянны, поэтому пользователям необходимо постоянно напоминать о необходимости действий. Чтобы увидеть, насколько эффективными могут быть подсказки, Duolingo провел A/B-тест, чтобы увидеть, повышает ли небольшой красный значок на значке приложения постоянное использование. Это привело к увеличению числа ежедневных активных пользователей на 6%. Просто красный значок. Ограничения модели Несмотря на все это, у модели Фогга есть ограничение: критики и современные исследования заметили, что дизайн, слишком сильно полагающийся на подсказки, такие как агрессивные уведомления, рискует вызвать умственную усталость. Постоянные уведомления и сверхурочная работа могут привести к оттоку пользователей. Так что будьте осторожны. Эффект Зейгарник Что вы чувствуете, когда оставляете задачу проекта наполовину выполненной? Это раздражает многих людей, потому что незавершенные задачи занимают больше умственного пространства, чем завершенные. Когда что-то сделано и ушло, мы склонны об этом забывать. Когда что-то остается невыполненным, это, как правило, отягощает наши умы. Именно поэтому цифровые продукты используют искусственные индикаторы прогресса, такие как полоса завершения профиля Upwork, чтобы сообщить пользователю, что его профиль заполнен только на «60 %. Это подталкивает пользователя закончить начатое.
Давайте посмотрим на другой пример. У вас есть пять задач в приложении списка дел, и в конце дня вы отмечаете только четыре из них как выполненные. Многие из нас будут чувствовать себя незавершенными из-за этой единственной незавершенной задачи. Вот это и есть эффект Зейгарник. Эффект Зейгарник был продемонстрирован психологом Блюмой Зейгарник, которая описала, что мы склонны сохранять невыполненные задачи активными в нашей памяти дольше, чем завершенные. Полосатый узор естественным образом отражается на этом в UX-дизайне. Допустим, вы находитесь на 63-м дне обучения. В этот момент вы находитесь в постоянном потоке незавершенных дел. Ваш мозг редко забывает об этом, поскольку он находится в глубине вашего сознания. На этом этапе ваш мозг становится тем, кто отправляет вам уведомления. Когда вы соединяете эти психологические силы вместе, вы начинаете по-настоящему понимать, почему полосы — это не просто обычная функция приложения; они способны изменить поведение человека. Но где-то в процессе — я не могу точно сказать, когда, поскольку это у всех разное — все достигает точки, когда полоса меняется от «веселья» к чему-то, что, как вы чувствуете, вы не можете себе позволить потерять. Вы ведь не хотите, чтобы 58 дней усилий пропали даром? Именно это делает систему полос эффективной. Если все сделано правильно, полосы помогут пользователям выработать удивительные привычки, которые помогут достичь цели. Это может быть ежедневное чтение или постоянное посещение спортзала. Эти повторяющиеся действия (иногда небольшие) со временем усугубляются и становятся очевидными в нашей повседневной жизни. Но у каждой медали есть две стороны. Тонкая грань между привычкой и принуждением Если вы следили за этим, вы уже можете сказать, что у полосатых систем есть темная сторона. Формирование привычки связано с последовательностью повторения цели. Однако принуждение — это постоянная работа над целью, в которой больше нет необходимости, но которую мы удерживаем из-за страха или давления. Это тонкая, как бритва, линия. Вы чистите зубы каждое утро, не задумываясь; это происходит автоматически и инстинктивно, с четкой целью обеспечить хорошее дыхание. Это черта характера, которая формирует хорошую привычку. Система этических норм дает пользователям возможность дышать. Если по какой-то причине вы не чистите зубы утром, вы можете почистить зубы в полдень. Несовершенство допускается, не боясь потерять долгие усилия. Принуждение идет противоположным путем: полоса беспокойства вызывает у вас чувство вины или даже изнеможения, а иногда кажется, что вы ничего не добились, несмотря на все ваши усилия.работа. Вы действуете не потому, что хотите, а потому, что подсознательно боитесь, что ваш прогресс обнулится. Кто-то даже прекрасно это описал: "Я чувствовал, что жульничаю, но меня это не волновало. Без своих качеств я никто". Это показывает, какие крайние полосы удержания могут оказать на человека. До такой степени, что пользователи начинают привязывать свою самооценку к произвольному показателю, а не к первоначальной цели или причине, по которой они вообще начали эту серию. Эта черта становится тем, кем они являются, а не только тем, что они делают. Хорошо продуманная система этических норм должна восприниматься пользователем как поощрение, а не как давление или обязательство. Это связано с балансом внутренней и внешней мотивации. Внешняя мотивация (внешнее вознаграждение, избегание наказания) может побудить пользователей начать работу, но внутренняя мотивация (выполнение задачи ради личной цели, например, изучение испанского языка, потому что вы искренне хотите общаться с любимым человеком) сильнее для долгосрочного взаимодействия. Хорошая система должна тяготеть к внутренней мотивации с осторожным использованием внешних элементов, то есть напоминать пользователям о том, как далеко они продвинулись, а не угрожать им тем, что они могут потерять. Опять же, это тонкая грань. Простой тест при разработке системы полосок — это потратить некоторое время и подумать, приносят ли ваши продукты деньги, продавая решения для беспокойства, которое создал ваш продукт. Если да, то велика вероятность, что вы эксплуатируете пользователей. Итак, следующий вопрос: если я решу использовать streak, как мне спроектировать его так, чтобы он действительно помогал пользователям достигать своих целей? UX проектирования системы Good Streak Я считаю, что именно здесь большинство проектов либо создают эффективную систему полос, либо полностью ее портят. Давайте рассмотрим некоторые UX-принципы хорошего дизайна. Держите это без усилий Вы, наверное, слышали это раньше, возможно, из таких книг, как «Атомные привычки», но стоит упомянуть, что один из самых простых способов формирования привычек — это сделать действие небольшим и простым. Это похоже на фактор способностей, который мы обсуждали в модели поведения Фогга. Первое правило любого полосового дизайна должно заключаться в том, чтобы требуемые действия были настолько малы, насколько это возможно для человека, при этом сохраняя прогресс. Если для выполнения ежедневного действия требуется сила воли, оно не продлится и пяти дней. Почему? Вы не можете быть мотивированными пять дней подряд. Показательный пример: если вы запускаете приложение для медитации, вам не нужно заставлять пользователей проходить 20-минутный сеанс только для того, чтобы поддерживать серию. Вместо этого попробуйте одну минуту, может быть, даже что-то вроде тридцати секунд. Как говорится, из маленьких капель воды складывается могучий океан). Маленькие усилия со временем превращаются в большие достижения. Это должна быть цель: устранить разногласия, особенно когда момент может быть трудным. Когда пользователи находятся в стрессе или перегружены, дайте им знать, что простое появление, даже на несколько секунд, считается усилием. Обеспечьте четкую визуальную обратную связь Люди визуалы по своей природе. В большинстве случаев нам нужно увидеть что-то, чтобы поверить; существует потребность визуализировать вещи, чтобы лучше их понять и взглянуть на вещи в перспективе. Вот почему в шаблонах полос часто используются визуальные элементы, такие как графики, галочки, кольца прогресса и сетки, для визуализации усилий. Посмотрите на график вклада GitHub. Это простая визуализация последовательности. Однако разработчики вдыхают это как кислород.
Главное не сделать систему полос абстрактной. Это должно чувствоваться реальным и заслуженным. Например, кольца активности Duolingo и Apple Fitness используют чистый анимационный дизайн после завершения серии, а GitHub показывает исторические данные о постоянстве пользователя с течением времени.
Используйте хорошее время Ранее я упоминал, что люди, как правило, забывчивы по своей природе, и что подсказки могут помочь сохранить импульс движения вперед. Без подсказок большинство новых пользователей забывают продолжать работу. Жизнь может стать занятой, мотивация пропадает, и всякое случается. Даже давние пользователи получают выгоду от подсказок, хотя в большинстве случаев они уже заперты в цикле привычек. Тем не менее, даже самый целеустремленный человек может случайно пропустить день. Ваша система полос определенно нуждается в напоминаниях. Наиболее часто используемые напоминания — это push-уведомления. Время действительно имеет значение при работе с push-уведомлениями. Тип приложения также имеет значение. Отправка уведомления в 9 утра с надписью «Вы сегодня не тренировались» — это просто странно для учебного приложения, потому что у многих есть дела в течение дня, прежде чем они даже подумают о завершении урока. Однако если мы говорим о фитнес-приложении, оноразумно и, возможно, даже ожидается, что о нем напомнят ранее в тот же день. Push-уведомления существенно различаются в зависимости от категории приложений. Фитнес-приложения, например, демонстрируют более высокий уровень взаимодействия с ранними утренними уведомлениями (7–8 утра), в то время как приложения для повышения производительности могут работать лучше в полдень. Ключевым моментом является проведение A/B-тестирования времени вашего приложения на основе поведения ваших пользователей, а не на основе предположения, что все подходит всем по одному размеру. То, что работает для приложения для медитации, может не работать для трекера кодирования. Другие методы подсказки — это красные точки на значке приложения и даже виджетах приложения. Исследования различаются, но среднестатистический человек разблокирует свое устройство 50–150 раз в день (PDF). Если пользователь видит красную точку в приложении или виджете, которая указывает текущую серию каждый раз, когда он разблокирует свой телефон, это повышает приверженность. Только не переусердствуйте; подсказка должна служить напоминанием, а не ворчанием. Отмечайте вехи Система серий должна стараться отмечать вехи, чтобы возродить эмоции, особенно для пользователей, находящихся в глубокой полосе событий. Когда пользователь достигает Дня 7, Дня 30, Дня 50, Дня 100, Дня 365, вы должны придать этому большое значение. Признавайте достижения — особенно для давних пользователей.
Как мы видели ранее, Duolingo понял это и реализовал анимированную графику, которая отмечает вехи конфетти. Некоторые платформы даже предоставляют существенные бонусы, подтверждающие усилия пользователей. И это может быть полезно для приложений, поскольку пользователи склонны публично делиться своими достижениями в социальных сетях. Еще одним преимуществом является предвкушение, которое возникает перед достижением контрольных точек. Это не просто бесконечное поддержание этой серии; пользователям есть на что рассчитывать. Используйте механизмы льгот Жизнь непредсказуема. Люди отвлекаются. Любая хорошая система полос должна быть несовершенной. Одна из самых больших психологических угроз для системы серийных серий — это полный сброс результатов всего лишь после одного пропущенного дня. «Этическая» система полос должна предоставлять пользователю некоторую свободу действий. Допустим, у вас есть 90-дневный период обучения шахматам. Вы были последовательны в течение трех хороших месяцев, и однажды ваш телефон умирает во время путешествия, и вот так 90 становится 0 — все, все эти усилия стираются, и прогресс исчезает. Пользователь может быть полностью опустошен. Мысль о восстановлении его с нуля настолько деморализует, что усилия того не стоят. В худшем случае пользователь может отказаться от приложения, почувствовав себя неудачником. Рассмотрите возможность добавления механизма «милости» в вашу систему полос:
Streak FreezeРазрешить пользователям намеренно пропускать день без штрафов. Дополнительное времяПодождите несколько часов (2–3) после обычного срока, прежде чем запускать сброс. Модели распада. Вместо жесткого сброса полоса уменьшается на небольшую величину, например, за каждый пропущенный день из серии вычитается 10 дней.
Используйте ободряющий тон Давайте сравним два сообщения, отображаемые пользователям, когда полоса прерывается:
"Вы потеряли свою 42-дневную серию. Начните заново". "Вы появлялись 42 дня подряд. Это невероятный прогресс! Хочешь попробовать еще раз?"
Оба передают одну и ту же информацию, но эмоциональное воздействие различно. Первое сообщение, скорее всего, заставит пользователя почувствовать себя деморализованным и заставит его уйти. Второе сообщение отмечает то, что уже было достигнуто, и мягко призывает пользователя попробовать еще раз. Проблемы проектирования систем Streak Прежде чем мы углубимся в технические особенности построения системы полос, вы должны осознавать проблемы, с которыми вы можете столкнуться. Как и следовало ожидать, все может усложниться. Обработка часовых поясов Есть причина, по которой обработка времени и даты является одной из самых сложных концепций, с которыми сталкиваются разработчики. Необходимо учитывать форматирование, интернационализацию и многое другое. Позвольте мне спросить вас: что считается днем? Мы знаем, что мир живет в разных часовых поясах, и, как будто этого недостаточно, в некоторых регионах существует летнее время (DST), которое происходит два раза в год. С чего вообще начать обрабатывать эти крайние случаи? Что считается «началом» завтрашнего дня? Некоторые разработчики пытаются избежать этого, используя один центральный часовой пояс, например UTC. Для некоторых пользователей это даст правильные результаты, но для некоторых оно может быть отклонено на час, два часа или больше. Это несоответствие портит пользовательский опыт. Пользователей меньше волнует, как вы проводите время за кулисами; все, что они ожидают, это то, что если они выполнят полосовое действие в 23:40, то оно должно быть зарегистрировано именно в это время в их контексте. Вы должны определить «один день» на основе местного часового пояса пользователя, а не времени сервера. Конечно, вы можете пойти полегчемаршрутизируйте и сбрасывайте полосы глобально для всех пользователей в полночь по всемирному координированному времени, но вы очень сильно создаете несправедливость. У кого-то в Калифорнии всегда есть на восемь дополнительных часов для выполнения своей задачи, чем у человека, живущего в Лондоне. Это несправедливый недостаток дизайна, который наказывает некоторых пользователей из-за их местоположения. А что, если этот человек в Лондоне только приехал, выполнил задание, а потом вернулся в другой часовой пояс? Одно из эффективных решений этой проблемы — попросить пользователей явно указать свой часовой пояс во время регистрации (желательно после первой аутентификации). Хорошей идеей будет сделать небольшое примечание о том, что предоставление информации о часовом поясе используется приложением только для точного отслеживания прогресса, а не в качестве личных данных. И еще одна хорошая идея — сделать эту настройку изменяемой. Я предлагаю никому избегать прямой обработки логики часового пояса в приложении. Используйте проверенные библиотеки дат, такие как Moment.js или pytz (Python) и т. д. Нет необходимости изобретать велосипед для чего-то столь сложного, как это. Пропущенные дни и крайние случаи Еще одна проблема, о которой вам следует беспокоиться, — это неконтролируемые пограничные случаи, такие как просыпание пользователей, простой сервера, задержки, сбои сети и т. д. Использование механизмов льгот, подобных тем, которые мы обсуждали ранее, может помочь. Льготное окно в два часа может помочь как пользователю, так и разработчику, в том смысле, что пользователей не наказывают жестко за неконтролируемые жизненные обстоятельства. Для разработчиков льготные окна полезны в те неконтролируемые моменты, когда сервер отключается посреди ночи. Прежде всего, никогда не доверяйте клиенту. Всегда проверяйте на стороне сервера. Сервер должен быть единственным источником правды. Предотвращение мошенничества Опять же, я не могу не подчеркнуть это: обязательно проверяйте все на стороне сервера. Пользователи — люди, и люди могут обмануть, если им представится такая возможность. Это неизбежно. Вы можете попробовать:
Сохранение всех действий с метками времени UTC. Клиент может отправлять свое местное время, но сервер может немедленно преобразовать его в UTC и сверить со временем сервера. Таким образом, если временная метка клиента подозрительно далека, система может отклонить это как ошибку, и пользовательский интерфейс сможет отреагировать соответствующим образом. Использование отслеживания на основе событий. Другими словами, сохраняйте запись каждого действия с метаданными, включая такую информацию, как идентификатор пользователя, тип выполненного действия, а также временную метку и часовой пояс. Это помогает при проверке.
Создание движка системы полос Это не руководство по кодированию, поэтому я не буду нагружать вас кучей кода. Я буду придерживаться практического подхода и опишу, как обычно работает движок системы полос с точки зрения архитектуры, потока и надежности. Основная архитектура Как я уже говорил несколько раз, сделайте сервер единственным источником достоверных данных о серийных данных. Архитектура на сервере может выглядеть примерно так:
Храните данные каждого пользователя в базе данных. Сохраните текущее хранилище полос (по умолчанию 0) как целое число. Сохраните настройки часового пояса, т. е. строку часового пояса IANA (либо неявно из локальной отметки времени, либо явно, попросив пользователя выбрать часовой пояс). Например, «Америка/Нью_Йорк». Обработайте всю логику, чтобы определить, продолжается ли полоса или прерывается, с помощью проверки часового пояса относительно местного часового пояса пользователя.
Тем временем на стороне клиента:
Отображение текущей серии, обычно получаемой с сервера. Отправьте выполненное действие в виде метаданных на сервер, чтобы проверить, действительно ли пользователь выполнил соответствующее действие. Предоставляйте визуальную обратную связь на основе ответов сервера.
Короче говоря, мозг находится на сервере, а клиент — для отображения и отправки событий. Это избавит вас от множества сбоев и крайних случаев, а также упрощает обновления и исправления. Логический поток Давайте смоделируем пошаговое описание того, как будет работать минимально эффективный движок системы полос, когда пользователь выполняет действие:
Пользователь выполняет квалификационную серию действий. Клиент отправляет событие на сервер в виде метаданных. Это может быть «Пользователь X выполнил действие Y в отметку времени Z». Сервер получает это событие и выполняет базовую проверку. Это реальный пользователь? Они аутентифицированы? Действительна ли акция? Часовой пояс соответствует? Если это пройдет, сервер извлекает данные серии пользователя из базы данных. Затем преобразуйте полученную метку времени действия в местный часовой пояс пользователя. Позвольте серверу сравнить календарные даты (а не временные метки) в локальном часовом поясе пользователя: Если это тот же день, то действие избыточно и изменений в сроке нет.полоса. Если это на следующий день, полоса расширяется и увеличивается на 1. Если разрыв превышает один день, полоса обрывается. Однако именно здесь вы можете применить механику благодати. Если механизм отсрочки пропущен, то сбросьте серию до 1.
Если вы решите сохранить исторические данные для важных достижений, обновите такие переменные, как «самая длинная серия» или «общее количество активных дней». Затем сервер обновляет базу данных и отвечает клиенту. Что-то вроде этого:
{ "current_streak": 48, "longest_streak": 50, «total_active_days»: 120, «streak_extended»: правда, }
В качестве дополнительной меры сервер должен либо повторить попытку, либо отклонить ее и уведомить клиента, если в процессе что-то произойдет сбой. Создание устойчивости Как упоминалось ранее, пользователи, теряющие серию из-за ошибок или простоя сервера, — это ужасный UX, и пользователи не ожидают, что пострадают из-за этого. Таким образом, ваша система полос должна иметь меры защиты для таких сценариев. Если сервер не работает на техническое обслуживание (или по какой-либо причине), рассмотрите возможность предоставления временного окна дополнительных часов для его исправления, чтобы действия можно было отправлять поздно и все равно учитывать. Вы также можете уведомить пользователей, особенно если ситуация может повлиять на продолжающуюся серию нарушений. Примечание. Установите бэкдор администратора, через который данные можно будет восстановить вручную. Ошибки неизбежны, и некоторые пользователи звонят в ваше приложение или обращаются за поддержкой, если их полоса ошибок прервалась по причине, которую они не могли контролировать. У вас должна быть возможность вручную восстановить полосы, если после расследования пользователь окажется прав. Заключение Одно остается ясным: полосы действительно сильны из-за того, как человеческая психология работает на фундаментальном уровне. Лучшая система полос – это та, о которой пользователи не думают сознательно. Это стало рутиной, дающей немедленные результаты или видимый прогресс, как чистка зубов, которая становится регулярной привычкой. И я просто скажу: не для всех продуктов нужна система полос. Стоит ли навязывать согласованность только потому, что вам нужны ежедневные активные пользователи? Ответ вполне может быть «нет».