Метка: рост

  • Почему 💾 обозначает Сохранить?

    Почему 💾 обозначает Сохранить?

    Удивительно, но в 2025 году мы всё ещё используем иконку дискеты как символ сохранения документов.

    Но как дискета, прародитель флэшки из прошлого века, связана с сохранением файлов на моём компьютере?
    Я начинал путь с ZX Spectrum, мне всё понятно и я сейчас объясню этот незаметный парадокс.

    В первых компьютерах не могло закончиться место на жестком диске. Потому что совсем не было жесткого диска! 🤯 Пользователь включал компьютер и попадал в “чистую” операционную систему с заводскими настройками, которая ничего не знала про предыдущие сеансы. Сама операционная система была записана на чип. Хранить наши файлы в компьютере было негде.

    Для хранения и перемещения информации использовали перфокарты, магнитную ленту, а позднее ­дискеты разного диаметра.

    Созданный на компьютере файл нужно было “сохранять” — копировать из оперативной памяти на вставленную в дисковод дискету. Если этого не сделать, оперативная память стиралась при выключении и все труды терялись.
    Для первых пользователей иконка дискеты была понятна, ведь она делала ровно то, что нарисовано — сохраняла на дискету. Образ менялся вместе с носителем и остановился на последнем массовом формате: 3,5-дюйма, 1,44 МБ.

    В 90-х в персональных компьютерах появилась постоянная память — жёсткий диск. Теперь файлы чаще сохраняли на внутренний диск, вместо дискет, и они постепенно ушли из обращения. А иконка осталась. Так никто и не заменил знакомую дискету на значок жесткого диска. Пока не стало слишком поздно…

    Сегодня мы видим, как подросток нажимает на иконку дискеты на айфоне в интерфейсе облачного приложения. Он никогда не держал дискету в руках. Что он думает про этот значок? Стала ли для него дискета абстрактным символом без смысла?

  • Скрипт для проброса UTM-меток через лендинг во внешний сервис

    Ситуация:
    На лендинг из разных каналов заливается трафик, размеченный utm-метками.
    Оформление заказа происходит на внешнем сервисе. На лендинге размещены кнопки [КУПИТЬ], по нажатию на которые посетитель покидает лендинг. Внешний сервис тоже умеет учитывать utm-метки.

    Задача:
    Проставить в ссылки на кнопках действия те же метки, с которым посетитель пришёл на лендинг.

    Решение:
    Скрипт автомагически добавит utm-метки ко всем ссылкам с указанной базой на странице.
    Укажите базовую ссылку в переменной TICKET_URL_BASE.
    Если utm-меток в адресной строке нет, ничего не произойдёт.

    Для Tilda вставляем скрипт в блок HTML-код.
    Для остальных сайтов — добавляем скрипт в подвал сайта.

  • План выхода на миллион

    План выхода на миллион

    Давно читал статью про движение успешных стартапов, которые не стали брать инвестиции. Один из самых известных таких проектов — Mailchimp. Компания с огромным оборотом осталась в руках основателей. Идея мне очень понравилась. Мысль окупаться и зарабатывать без внешних инвесторов засела в голове.
    Чтобы это получилось, мы (пока) не тратим время на привлечение инвестиций, а считаем, сходится ли экономика проекта. Сможем ли платить по счетам?

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

    Со средней покупки в этом направлении стартап зарабатывает 160 рублей — несколько процентов от сделки. Усилий по продаже практически нет, заказ оформляется клиентом без участия операторов и продавцов. Трафик условно бесплатный — мы уже получаем его через SEO. Чтобы заработать миллион, нам нужно продать 6500 заказов в месяц. Кажется, дохрена. Делим на 30 дней — примерно 220 заказов в день, теперь норм.

    Инвентарь для заказов поставляют партнёры, они же получают львиную долю выручки и приводят часть трафика в воронку.
    В данном проекте именно партнёры являются драйвером роста.

    По опыту и анализу средний партнёр приведёт 200-300 заказов за месяц. Это почти совпадает с расчётом выше — 220 заказов в день. Условно, прикинем, что нам нужно 30 действующих средних партнёров в каждом месяце.

    За прошлый год в нашей CRM было взаимодействие с 397 целевыми партнёрами, которым мы продали любую небольшую услугу. Задача ближайших месяцев — подключить 10% этой базы на новое направление.

    Выглядит всё реально. Пойду делать.

  • Матрица роста агентства

    Матрица роста агентства

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

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

    Компания подросла, наработала успешные кейсы, научилась привлекать клиентов. И начинает двигаться по этой матрице.

    Классическое Агентство — владеет портфелем клиентов, делает им стратегию, часть закрывает инхаус и ходит по рынку за субподрядами.

    Продакшн делает что-то очень хорошо и на высоком уровне, допиливает под потребности клиента. Он продаёт дорого и к нему обращаются другие Агентства или компетентные Заказчики.

    Конвейер делает одинаковые штуки на потоке и с низким чеком. Кому не подходит конвейер — извините, следующий. Массовая настройка Авито или лендинг под ключ в этой категории.

    SaaS / Продукт — мы хотим сделать один раз, а потом видеть от клиентов только деньги. Упаковываем накопленный опыт в продукт: в робота, сервис или набор методичек.

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

    В любом случае, определяться с вектором движения придётся. Лучше это сделать как можно раньше и двигаться осознанно.

  • Как возглавить восстание машин

    Как возглавить восстание машин

    Небольшая памятка самому себе как внедрить AI в реальные процессы в проекте.

    Из-за хайпа вокруг AI и LLM складывается ощущение, что мы уже опоздали на их внедрение и нас уже обгоняют. Можно не тревожиться, роботы заведутся у всех. Нужно принять неизбежное и приготовить место для роботов в рабочих процессах.

    • В самом начале нужно забыть, что мы хотим внедрить AI. Думаем от задачи, а не от технологии.
    • Какой ценный конечный результат ожидается от этой роли?
    • Какие должностные инструкции мы для него создадим?
    • До компьютеров это решалось иначе. Продумать в точности по шагам, как бы это решал живой человек.
    • Ассистента нужно проектировать точно также, как проектируются компьютерные игры, финансовые автоматизации и учётные системы — на бумаге. В нашем случае — нарисовать блок-схему по шагам.
    • До того как втыкать везде AI, нужно разобраться где действительно нужен AI. Главный вывод всех AI-стартапов, пытающихся выполнять повторямые задачи реального мира — чем меньше участков с AI, тем меньше фронт ошибок.
    • Если можно обойтись без AI — лучше обойтись без AI: есть логика, весовые модели принятия решений, ML и даже участие человека. Подходить с умом.
    • Для каждого участка схемы выбираем подходящий способ автоматизации. Если принятое решение логическое (Да/Нет/И/Или/Если) — пусть принимает решение логический автомат с помощью прозрачного кода.
    • AI попадёт только в те участки, где нужно принимать осознанные решения. На практике это 1 из 5-10 действий.
    • Если разбить задачу на более простые участки, то некоторые участки могут выполнять более дешёвые и быстрые LLM-модели. Попробовать на практике, какая модель справится.
    • Также работает наоборот — самые чувствительные и сложные участки отдавать более умным и дорогим LLM-моделям.
    • Не забывать передавать полный контекст происходящего из памяти и прошлых шагов в агента.
    • Проверить, какие персональные данные в какие AI и API мы отдаём. Постараться не передавать ненужную для принятия решения чувствительную информацию.
    • Эксперименты демонстрируют, что LLM дает лучшие результаты, если его мотивировать. Поэтому в каждый промпт добавляем обещание денежного вознаграждения, повышения на работе и подчёркиваем значимость задачи в формулировке.
    • Исследования китайских учёных показывают, что наилучшие результаты дают топологии с участием нескольких AI-агентов.
    • Самый простой способ достичь качества — использовать на участке пару агентов Контролера и Исполнителя. Это эффективно устраняет нежелательные галлюцинации и другие сбои в ответах.
    • На каждый участок схемы нужна своя пара агентов.
    • Сложные топологии (звезда, дерево, mesh-сеть, рандом) улучшают качество, но в большинстве случаев можно ограничиться парой агентов.
    • Если нужно переводить результат — делать это на самом последнем шаге непосредственно перед отправкой пользователю. Так избежим каскадного накопления неточностей перевода при обработке на разных шагах.
    • Хранить все логи: сам запуск автоматизации, смена статуса, полученные после вставки переменных итоговые промпты (!), ответы AI. В общем, все шаги записывать.

    Вывод: до внедрения AI разложить процесс на шаги и понять в каком шаге нам нужен AI. И постараться обойтись без него.

  • Как нанять разработчика: Отбор кандидатов

    Как нанять разработчика: Отбор кандидатов

    Вакансия нравится соискателям и к нам поступают десятки откликов.
    Но количество откликов не означает их качество…
    Многие разработчики не владеют навыком создания хорошего резюме. По резюме зачастую ничего не понятно.

    Мы и не ожидаем от них идеальные резюме. Каждому мы присылаем условия сотрудничества (ещё раз) и даём подробную анкету нашего образца.
    Честно пишем, что свяжемся только с теми, кто подойдёт по навыкам к конкретному проекту. Кто не подойдёт — попадёт в кадровый резерв, всё равно есть смысл заполнить анкету.

    В анкете 50+ вопросов. Спросим про часовую ставку, условия работы, работает ли с таймером, пишет ли тесты и любые другие интересные нам детали.
    Самый большой блок — отдельные вопросы про каждую технологию и навык, который может потребоваться у целевого кандидата.
    Какой опыт с _____?
    Варианты ответа: Не было опыта, Изучал/Пробовал, Практик, Эксперт.

    Кажется, что тут легко обмануть и приукрасить. Да, но навряд ли на 2 ступени. 🤡
    Любой крупный обман в анкете вскроется на интервью и реальных задачах. А если что-то приукрасил — сам будет навёрстывать.

    Разработчик с удовольствем заполнит анкету вместо 30-минутного интервью с рекрутёром. Анкету можно заполнить на текущем рабочем месте или после работы. Без стресса и спешки.

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

  • Как не надо нанимать программистов

    Когда сталкиваются HR и IT, происходит столкновение материи с антиматерией.
    Экстравертные эмпатичные коммуникаторы агитируют скептично-бездушных асоциальных чудаков.

    Вследствие этого столкновения рождаются очень занятные идеи:
    – Пригласить человека, привыкшего медленно думать в одиночестве, на супер важное “сделай-или-провалишься” интервью. Интроверты привыкли к давлению.
    – Тараторить ему про корпоративную культуру на высокой скорости и звонким голосом. Его ждут очень весёлые корпоративы, тим билдинг и море общения в весёлом офисе. Ведь он именно общения ищет в углу за монитором.
    – Спрашивать его на старте академическое определение полиморфизма, чтобы он вспомнил все ощущения с экзаменов в универе. Заодно покажем, кто тут главный.
    – Заставлять включать камеру — он точно захочет показать и проявить себя с незнакомыми людьми на первом звонке.
    – Замучали до заикания на вопросах? — теперь время писать код по только что увиденному ТЗ под надзором незнакомого тех директора. Именно в живую, как никогда не будет происходить после.
    – Соискатель прошёл 3 стадии экстравертного ада — самое время узнать об условиях работы в Джоб оффере, который сгорит за N дней. Срочно соглашайся, у HR есть KPI!
    – Не очень понятно, зачем программисту работать именно у нас. Давайте завалим его деньгами и едой? Алчные айтишники только этого и ждут!

    В конечном итоге выигрывает HR — программист нанят. Удовольствие найти проигравших оставлю читателю данного эссе.

    А как можно нанимать программистов без стресса я расскажу завтра.

  • Как сове совместить расписание менеджера и создателя?

    Как сове совместить расписание менеджера и создателя?

    У Пола Грэма (Y Combinator) есть замечательное эссе (англ.), в котором он рассказывает про два режима деятельности.
    Расписание менеджера (manager’s schedule) – звонки, переписки, постоянные переключения контекста, диспетчерская.
    Расписание создателя (maker’s schedule) – фокусировка, погружение в процесс, одна задача может занимать несколько дней.

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

    В одни момент я обнаружил себя в определённом графике. Мой мозг сам нашёл решение, как совмещать эти два режима:

    13:00 — Подъём после полудня. Я сова, сколько себя помню. Ночью голова работает — ранним утром я овощ. В любой стране и при любом режиме освещения буду спать первую половину дня.

    14:00 — Днём тревожность и коммуникации требуют внимание менеджера. Говорю на совещаниях, переписываюсь в множестве чатов, хожу в таск-трекеры, создаю, делегирую и делаю десятки задач, устраняю препятствия для команды.

    17:00-19:00 — Количество сообщений резко уменьшается. Идеальное время менторской консультации или любого другого 1:1 с повесткой. Есть бодрость, я включен, мой мозг готов быстро обрабатывать поступающие данные и генерировать решения.

    19:00 — Обед и тишина. Рутина по дому, игра с собакой.

    20:00 — Начинаются стратегические звонки и вовлеченные переписки.
    Очень много людей готовы говорить вечером и это качественно другие звонки, чем днём.
    – Участники проектов с частичной занятостью. Учеба, дети, основная работа — всё было днём.
    – Партнёры. Строить планы, консультироваться, делиться новостями своих проектов.
    – Друзья и семья. Общение после работы.
    – Люди в других часовых поясах. И те, кто западнее меня (у них раньше), и лютые ночные жители или очень ранние пташки восточнее.

    00:00 — Тишина в эфире, пожалуйста. Самое время включить в себе Maker.
    Обычно это 1 или 2 проекта на сессию. Открываю заготовленный список задач. Это всегда будет список, потому что крупная задача попадает в него только через дробление. Поехали!

    04:00 — Начинают открываться ворота сна. В ближайший час я уйду от клавиатуры.

    06:00 — Blackout.

    Это очень примерный график. Часы могут смещаться, а в какие-то дни расписание может быть совсем другим. Есть установка быть на чилле, в первую очередь к себе.

  • Self-hosted

    Много раз за последние три года блокировали разные сервисы. То сами сервисы, то доступ к ним, то оплату, то поддержку. Самая странная блокировка – запрет принимать участие в приватных репозиториях на GitHub.

    Мы пошли другим путем: находим продукты с открытым кодом и ставим на свой сервер вместо платного SaaS.

    Что мы используем в работе:
    Gitlab CE – репозитории на нашем сервере. Переезжали с Bitbucket. Используем активно CI/CD.

    Sentry – сборщик логов с запущенных приложений. Очень полезный сервис – мы видим ошибки у реальных пользователей, сгрупированные по типу и с полным стеком вызова (браузер, устройство, окружение). Система прожорливая – ест CPU и RAM.

    Grafana – Конструктор дашбордов с графиками. Мы используем для мониторинга серверов (БД Prometheus в качестве источника). Видел у коллег дашборды с продуктовыми метриками, но у нас до этого руки пока не дошли.

    Plausible – простая веб-аналитика. Достаточно, чтобы изучить посещаемость лендинга или корп сайта, посмотреть источники и конверсии.

    PostHog – мощная аналитика. Расстановка своих событий (как в метрике и ga), воронки, срезы, полная информация о визитах, возвратах и т.д. Под капотом Clickhouse, Kafka и все 33 удовольствия для работы. Как и Sentry, очень прожорливая система.

    Ollgram – tg-боты для поддержки. Очень удобно – делаем бота, указываем его контакты в канал. Бот пересылает сообщения пользователей в секретную группу, а мы общаемся от имени бота. Не связано с CRM, но для получения обратной связи или старта – то что нужно. Код open source – поставили к себе.

    Сейчас присматриваюсь к новым кандидатам
    Affine для документации вместо Miro и Notion
    Zammad – автоматизация службы поддержки. Helpdesk вместо ZenDesk/CarrotQuest
    Twenty в качестве CRM

    Мы пока не смогли заменить трекер задач с учетом времени. Попробовал Taiga (вроде все ок, но не гибко, не хватает фич). Многообещающий Plane перекосило в урезание функционала бесплатной версии. Концептуально понравился LeanTime.

    А пользуетесь ли вы self-hosted и чем?

  • Повесить переключение языка на Caps Lock

    Повесить переключение языка на Caps Lock

    Повесить переключение языка на Caps Lock.

    Самый неожиданный лайфхак за много лет за компьютером
    – Caps Lock практически не используется при наборе. Большинство людей забывает о его существовании
    – Гораздо удобнее нажимать одну кнопку, чем две
    – Часто для него есть отдельный индикатор – как в системном трее, так и на самой клавиатуре.
    – Скорость переучивания – 2 дня

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