Blog

  • Точность растёт с объёмом

    Точность растёт с объёмом

    Мы получили 647 посетителей, 105 лидов и 17 продаж.

    Как понять, можно ли доверять полученным конверсиям из посетителя в лида и из лида в продажу? Не рано ли делать прогнозы или уже можно принимать судьбоносные решения?

    Применяем математику на практике — вычисляем погрешность. Нам нужно, чтобы погрешность была менее +/-5 процентных пунктов.

    Наши переменные:
    – Объём выборки 647 посетителей.
    – Текущее значение конверсии, 105 лидов / 647 посетителей * 100% = 16.2%.
    – Вероятность ошибки — каков шанс, что мы ошибаемся? Классический уровень для первого расчёта — 5%. Если нужна повышенная увереность при работе с важными данными, можно поставить вероятность ошибки 1%.

    Спрашиваем GPT: Рассчитай точность определения конверсии для 105 лидов на 647 посетелей при вероятности ошибки 5%

    Получаем ответ: Погрешность +/-2.8 п.п..
    Т.е. реальная конверсия может лежать в пределах от 13.4% до 19.0%. С такой точностью можно строить прогнозы и принимать решения.

    Если рассчитать погрешность для продаж из начала поста, то получится погрешность +/-10 п.п. Широкий интервал, но границы диапазона уже можно увидеть. Нужно добрать лидов, чтобы сузить интервал и сделать более точные выводы.

    Простой лайфхак:
    В начале сбора данных точность очень быстро растёт, а потом рост точности замедляется. Посмотрите на график: в зависимости от конверсии, точность 95% мы получим на выборке от 139 до 323 случаев.
    Можно использовать это как ориентир:
    – после 300 посетилей можно заниматься оптимизацией посадочной.
    – после 300 лидов — садиться переписывать скрипты.

    Так что, 300 раз отмерь, один отрежь. И да простят меня математики.

  • Когда опыт мешает

    Когда опыт мешает

    При столкновении с неизвестной проблемой, мы решаем её привычным способом, даже если он не подходит к ситуации. Мы склонны игнорировать лучшие решения, если раньше с ними не сталкивались.
    Это когнитивное искажение, известное как эффект Эйнштеллунга. Наш опыт блокирует гибкость мышления. Это происходит из-за стремления мозга не напрягаться. Он ленится придумывать и рассматривать новые варианты.

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

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

    В чем вызов: осознать, что попадаешь под действие этого эффекта. Не применять поспешные решения, основанные на своём прошлом опыте. Ставить прошлый опыт под сомнение, задавать провокационные вопросы, включать “мышление новичка”, искать свои слепые зоны. Особенно, если сразу знаешь, как решать возникшую проблему.

  • 50/50

    50/50

    По-моему, нет хуже схемы оплаты для услуг, чем 50/50. Эта схема создаёт проблемы для обеих сторон.

    Если у исполнителя маржа ниже 50% (в диджитале это обычно 15%–30%), то он уходит в минус и ждёт приёмки, потому что аванса не хватит на покрытие себестоимости.
    Финальная приёмка может откладываться заказчиком из-за мелких правок. Заказчик хочет полную готовность, а исполнитель при этом ждёт момента выхода из кассового разрыва. Это сильно ухудшает атмосферу на проекте.

    При появлении дополнительных работ, заказчику сложно психологически провести финальную приёмку, ведь финал наступит только после проведения дополнительных работ. Поэтому он не будет принимать проект и будет ожидать выполнения всего объёма. У исполнителя в этот момент ещё увеличивается риск — себестоимость растёт, а оплата откладывается.

    В целом, в этой схеме исполнитель стремится быстрее сдать проект, чтобы сократить время нахождения в кассовом разрыве, что может плохо сказаться на качестве.

    Что делать?

    Вариант 1: До подписания акта все перечисленные исполнителю деньги — это деньги клиента на счету исполнителя, а не выручка. Поэтому, если сумма и сроки небольшие, то договариваемся на 100% предоплату. Утром деньги — вечером стулья. Зачем разводить бюрократию?

    Вариант 2: Все работы разбиваются на небольшие этапы и каждый этап заказчик оплачивает 100% предоплатой и подписывает акт по сдаче этапа. Безопасность и комфорт для всех участников.

    Вариант 3: Если заказчик настаивает на поэтапной оплате, а работа на этапы не разбивается, то делим платёж на 40%/30%/30%. Аванс 40% получаем сразу, 30% в момент готовности со стороны исполнителя, а последние 30% — после подписания акта со стороны заказчика. В этом случае у исполнителя не возникает кассовый разрыв на затянутой приёмке. Оптимальная схема, чтобы продавать сайты по фиксированной цене.

    Вариант 4: Эскроу-сервисы, банковские гарантии или работа по постоплате защищают заказчика, а не исполнителя. Если приходится прибегать к этим инструментам, — увеличивайте маржу, чтобы оплатить посредников, инфляцию и дополнительный риск.

  • План развития веб-блога

    План развития веб-блога

    Небольшой список, что я считаю необходимым сделать с моим сайтом:
    – Рассортировать посты по категориям и поставить теги.
    – Сделать навигацию с категориями.
    – Добавить в навигацию пост “Обо мне” и “Контакты”.
    – Вывести теги в посты.
    – Поставить SEO-плагин и прописать мета-теги ко всем постам.
    – Сгенерировать sitemap, чтобы поисковики видели все страницы.
    – Добавить Open Graph, чтобы пересылаемые ссылки в соцсетях отображались с картинкой и описанием.
    – Настроить отображение картинок к постам, чтобы они не обрезались.
    – Конвертировать все картинки в webp.
    – Настроить кэширование и ускорение сайта всеми доступными способами.
    – Добавить вывод в конце поста похожих постов, динамически их подбирая по тегам.
    – Подтянуть Google Page Speed. Быстродействие вывести в зелёную зону (значение этого показателя плавает), а остальное довести до 100 из 100.
    – Бот для Telegram, который будет копировать посты из канала в блог. Почему-то хочется, чтобы он работал именно в таком направлении.
    – Форму подписки на email-рассылку с новыми постами. И автоматическую рассылку для подписчиков.

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

    Также хочу настроить кросс-постер в социальные сети. Сам думаю про ВК, буду рад вашим идеям, в каких соцсетях могут меня читать. Напишите в комментариях.

  • Добро пожаловать!

    Добро пожаловать!

    Наконец, выдался свободный день и я развернул блог по адресу https://fullstackfounder.ru.

    Блог работает на WordPress:
    – Сборка Bedrock с composer
    – Тема оформления TwentyTwentyFive, идущая в комплекте к WordPress в этом году
    – Тёмная цветовая палитра Dracula, популярная у разработчиков
    – Шрифты Roboto и Roboto Mono через Google Fonts
    – Фавиконка робота
    – Docker для локальной работы, адаптировал привычный мне пакет Sail из Laravel

    На копирование сборки, разворачивание WordPress на сервере и настройку блога ушла пара часов. Предстоит ещё много работы, чтобы я был доволен, но сайт уже заработал.
    Код сайта выложил на Github.

    Чтобы не копировать контент вручную, навайбкодил небольшое консольное приложение для импорта постов на питоне. Также придумал названия категорий и тегов для постов, положил их в качестве справочника. Приложение берёт экспорт постов с моего телеграм-канала в формате JSON. Обрабатывает текст, вырезает из поста лишние строчки с “Жми на эмозди”, заливает картинку, пробует определить категорию и теги, отделяет заголовок от текста. И отправляет всё это в WordPress по API. Справился за полтора часа от идеи до протестированного кода, который залил все мои посты. Категории и теги скрипт присвоил кое-как, поэтому их всё равно нужно будет переопределить вручную. Зато тексты уже опубликованы!

    Код импортёра тоже выложил на Github.

  • Машина времени для интернета

    Машина времени для интернета

    Помните фразу “интернет всё помнит”?
    Проект Wayback Machine, известный среди вебмастеров как Веб Архив, сохраняет копии сайтов. Интереса ради можно посмотреть как выглядели известные сайты в прошлом. А можно найти свои старые сайты, в том числе те, которые уже недоступны. В архиве хранятся копии, сделанные в разные даты, поэтому можно отследить эволюцию дизайна или как постепенно добавлялся контент.

    Частая боль веб-студий — сданные клиентам сайты со временем исчезают. Клиенты не продлевают домен, теряют доступ к хостингу, закрывают компании. Или новая команда изменяет оригинальный сайт так, что дизайнеру становится стыдно. Также вебмастеры используют этот проект, чтобы воскресить свои утерянные сайты или восстановить контент на выкупленном домене. Бэкэнд уже не восстановить, но можно сохранить вёрстку и статьи.

    Архив не совершенен: бывает, что не сохранились картинки, какой-то скрипт или не воспроизводится устаревший флэш-ролик. Да и смотрим мы эти сайты уже другими браузерами, поэтому они не всегда воспроизводятся как раньше. Зато у нас есть возможность вернуться назад во времени и посмотреть, как это выглядело раньше. А это по-настоящему бесценно.

  • Sentry для отлова ошибок

    Sentry для отлова ошибок

    Пользователи жалуются, что на сайте возникает ошибка. У разработчика “всё работает”. В команде разработки никто ошибку не может воспроизвести ни на одном устройстве. Бывает, что в логах нет ничего, потому что ошибка произошла на фронте. Или записи не информативны. А пользователи продолжают жаловаться…

    Чтобы разбираться с этими случаями, в нашей веб-студии мы подключаем к проектам Sentry. Это мониторинг ошибок и производительности приложения. В отличие от обычных логов, Sentry показывает гораздо больше информации об ошибке:
    – новая ли это ошибка
    – сколько таких ошибок возникло за последние дни
    – весь стек вызова
    – чему были равны переменные окружения
    – какие библиотеки были подключены
    – какой браузер и устройство у пользователя
    – информацию о пользователе
    – содержимое запроса
    – что делал пользователь до ошибки
    – версию, релиз и коммит

    Это всё позволяет очень быстро найти реальную причину возникшей проблемы.

    Мы подключаем Sentry на фронт, это также просто, как установка обычного счётчика или npm-пакета. И подключаем отдельно на бэк — Sentry умеет интегрироваться с любым языком и фреймворком за счёт готовых SDK.

    Раньше мы пользовались SaaS-версией, но некоторое время назад всех РФ-пользователей попросили завершить обслуживание. Так что, я развернул бесплатную self-hosted версию на своей VDS. Система прожорливая, Docker Compose запускает три десятка контейнеров, поэтому требуется достаточно мощный сервер. Такой сервер у нас выходит на 4000 рублей в месяц, зато обслуживает десятки небольших проектов.

    Sentry — инструмент для быстрого поиска ошибок разработчиками. Не заменяет потоки логов и мониторинг инфраструктуры. Рекомендую всем, кому нужно ловить баги в продакшине.

  • Тепловая карта скролла

    Тепловая карта скролла

    Запустили лендинг и пустили на него трафик. Чтобы понять, хороший ли у нас лендинг, нужно посмотреть на конверсию. Если конверсия низкая, важно понять, на каком этапе пользователь теряет интерес. Поможет нам в этом тепловая карта скроллинга по нашей странице. Она показывает, сколько времени люди провели в каждом блоке и как глубоко прокрутили страницу. Блоки должны терять температуру с глубиной скролла. Так же, как при погружении в океан: на поверхности вода тёплая, а на глубине холоднее.

    Чтобы карта показала правдивый результат, на страницу должно зайти больше 200 человек. Смотрим, где нарушен порядок: между жёлтым и оранжевым блоком будет находиться зелёный. Это означает, что люди проматывают этот блок.
    Простое решение: переставить блоки по убыванию температуры.
    Хорошее решение: переработать или заменить холодный блок, чтобы его не пролистывали.
    Исправление проблемного блока нагревает блоки ниже, потому что посетители продолжают скроллить и не закрывают лендинг.

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

    Карта скроллинга находится в Яндекс Метрике → Поведение → Карта скроллинга. Нужно включить Webvisor в настройках сайта и в коде счётчика.

  • Бенчмарк для LLM: работа в роли бухгалтера с данными реальной компании

    Бенчмарк для LLM: работа в роли бухгалтера с данными реальной компании

    Бенчмарк для LLM: работа в роли бухгалтера с данными реальной компании.

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

    Полное описание бенчмарка, системный промпт, тестовые данные:
    https://accounting.penrose.com/

  • Любой человек должен уметь

    Любой человек должен уметь

    Любой человек должен уметь менять пеленки, планировать вторжения, резать свиней, конструировать здания, управлять кораблями, писать сонеты, вести бухгалтерию, возводить стены, вправлять кости, облегчать смерть, исполнять приказы, отдавать приказы, сотрудничать, действовать самостоятельно, решать уравнения, анализировать новые проблемы, бросать навоз, программировать компьютеры, вкусно готовить, хорошо сражаться, достойно умирать. Специализация — удел насекомых.
    — Роберт Хайнлайн