Компонент за 30 минут: поиск разработчика-камикадзе и почему это катастрофа
Инженерный разбор того, как «скорость нажатия кнопок», «лондонские партнёры» и 30 бесплатных тестовых заданий выдают компанию. С цифрами, кодом и прогнозом коллапса.
На прошлой неделе я откликнулся на вакансию веб-программиста в «Мир охоты» — сеть магазинов товаров для охоты, рыбалки и активного отдыха, которая позиционирует себя как одна из крупнейших в России.То, что началось как стандартный процесс найма, превратилось в хрестоматийный пример токсичности, замаскированной под «передовые практики».Спойлер:
- Тестовое задание за 30–60 минут (включая развёртывание Битрикс)
- «30 кандидатов уже выполнили ТЗ за 2 дня»
- «Лондонские партнёры» используют 1С-Битрикс
- Философия: «сейчас важна скорость нажатия кнопок»
Это не просто «плохая вакансия». Это инструкция по уничтожению кодовой базы за 6 месяцев. Разбираю с позиции разработчика с 10-летним опытом в Битрикс и специалиста по обучению LLM-моделей.
📋 Исходные данные: что обещали
Вакансия: Веб-программист (1С-Битрикс)
Опыт: 3–6 лет
Стек: PHP 7+/8, Bitrix D7, JavaScript, Git
Ключевое требование: «Активное использование AI-инструментов для ускорения работы»Формат: Удалённо, ГПХ, почасовая оплата
На бумаже — ничего необычного. Откликнулся.
🎯 ТЕСТОВОЕ ЗАДАНИЕ: «30–60 МИНУТ»
После первичной переписки HR присылает ТЗ:Задача: Реализовать компонент на 1С-Битрикс (D7), который:
- Получает список товаров из инфоблока
- Выводит товары с ценой и остатком
- Добавляет сортировку по цене
- Реализует кеширование
Дополнительно: использовать D7, читаемый код, описать AI-инструментыОценка времени: «Если Вы работаете AI + Bitrix регулярно, задание займёт 30–60 минут»
⏱ ИНЖЕНЕРНАЯ ДЕКОМПОЗИЦИЯ: СЧИТАЕМ РЕАЛЬНОСТЬ
Давайте отключим веру в чудеса и посчитаем фактическую трудоёмкость:
ЭТАП 0: ПОДГОТОВКА ОКРУЖЕНИЯ (игнорируется работодателем)
- Установка Битрикс (веб-сервер, PHP, БД) — 15–30 мин
- Настройка компонентного кеша — 10–15 мин
- Создание инфоблока + тестовых данных — 10 мин
- Настройка прав доступа, индексация — 5–10 мин
Итого этап 0: 40–65 минут
ЭТАП 1: РАЗРАБОТКА КОМПОНЕНТА
- Структура компонента (.description.php) — 15 мин
- Реализация getList() на D7 (ORM) — 20–30 мин
- Сортировка + валидация параметров — 10 мин
- Тегированный кеш (не просто общий!) — 15–20 мин
- Обработка исключений, логирование — 10 мин
Итого этап 1: 70–85 минут
ЭТАП 2: ТЕСТИРОВАНИЕ
- Проверка логики — 10–15 мин
- Тестирование инвалидации кеша — 10 мин
- Edge cases (сортировка, пустые данные) — 10 мин
Итого этап 2: 30–35 минут
ОБЩАЯ СУММА: 2.5–3.5 ЧАСА (150–210 минут)
Оценка работодателя: 30–60 минут
Реальная оценка: 150–210 минут
Расхождение:400%
Это не «оптимистичный прогноз». Это фундаментальное непонимание процесса разработки или сознательная манипуляция.
🚩 КРАСНЫЙ ФЛАГ №1: «30 КАНДИДАТОВ ЗА 2 ДНЯ»
В финальном ответе прозвучала фраза, которая должна насторожить любого:
«У нас уже 30 кандидатов выполнили ТЗ за 2 последних дня, мы не сможем себе позволить оплатить каждое»
📊 ЧТО ЭТО ЗНАЧИТ НА САМОМ ДЕЛЕ
Считаем экономику процесса:
- Кандидатов в день: ~15 человек
- Время на проверку одного ТЗ: ~15–20 минут
- Время команды на проверку: 4–5 часов в день
- Стоимость часа техлида: ~3 000–5 000 ₽
- Ежедневные затраты на скрининг: ~12 000–25 000 ₽
Вопрос на миллион: если компания готова тратить 12–25 тысяч рублей в день на проверку тестовых, почему она не готова оплатить одно выполнение ТЗ кандидату (2–3 часа × ставка)?
🎭 АЛЬТЕРНАТИВНАЯ ГИПОТЕЗА
Если проверка ТЗ не происходит, а код просто собирается в папку:
30 кандидатов × 2 часа работы = 60 часов бесплатной разработки
Рыночная стоимость часа битрикс-разработчика = 1 500–3 000 ₽
Потенциальная «экономия» = 90 000–180 000 ₽
Вывод: либо процесс найма катастрофически неэффективен, либо это осознанная модель получения бесплатной рабочей силы. В обоих случаях — бегите.
🚩 КРАСНЫЙ ФЛАГ №2: «ЛОНДОНСКИЕ ПАРТНЁРЫ» И 1С-БИТРИКС
Цитата из переписки:
«По такой системе вот уже несколько лет работают наши Лондонские партнёры и мы планируем так же перейти на данный формат»
🌍 КОНТЕКСТ, КОТОРЫЙ ИГНОРИРУЕТСЯ
Сравним факты:1С-Битрикс:
- Основная география: РФ, СНГ (95%+)
- Язык документации: Русский
- Популярность в Европе: <1%
- Типичный e-commerce стек: Битрикс, Инфостарт
Западный рынок:
- Основная география: Европа, США
- Язык документации: Английский
- Популярность Битрикс: практически нулевая
- Типичный e-commerce стек: Shopify, Magento, WooCommerce, Laravel
Утверждение «Лондонские партнёры используют Битрикс» эквивалентно:
- «Наша команда в Кремниевой долине работает на 1С:Предприятие»
- «Партнёры из Берлина выбрали платформу Тинькофф для процессинга»
🔍 ВОЗМОЖНЫЕ ИНТЕРПРЕТАЦИИ
1. Манипуляция авторитетом
«Лондон» создаёт иллюзию международного уровня, престижа, высоких стандартов.
2. Копипаст из другой вакансии
Текст не адаптирован под реальный стек, просто скопирован откуда-то.
3. Некомпетентность источника
HR или руководитель не понимает разницу между технологиями и рынками.
Любой из вариантов — сигнал о непрозрачности коммуникации.
🚩 КРАСНЫЙ ФЛАГ №3: «СКОРОСТЬ НАЖАТИЯ КНОПОК»
Кульминация диалога, когда я указал на нереалистичность оценки:
«И здесь да, сейчас важна "скорость нажатия кнопок", о которой Вы писали выше. Мы не готовы предложить Вам должность.»
Перевод с корпоративного на русский:
«Нам не нужен инженер. Нам нужна печатная машинка.»
💥 ПОЧЕМУ «СКОРОСТЬ КНОПОК» — ЭТО ИНЖЕНЕРНАЯ КАТАСТРОФА
Взгляд разработчика, который не только пишет код, но и обучает LLM-модели
Компания заявляет, что ищет «ментора по внедрению ИИ», который научит команду «генерировать код и проверять его». При этом приоритет — «скорость нажатия кнопок».
Давайте посмотрим, что произойдёт с кодовой базой через 3–6 месяцев такого подхода.
📉 СТАДИЯ 1: «РАБОТАЕТ — И ЛАДНО» (НЕДЕЛИ 1–4)
Команда, воодушевлённая «новым форматом», начинает генерировать код через ИИ. Ментор учит:
Напиши компонент битрикс, который выводит товары с ценой, сортировка по цене, кеш. Быстро.
Результат генерации:
На первый взгляд: работает, сортирует, кеш есть.На самом деле:
- 🚨 Уязвимость к SQL-инъекциям через $_REQUEST['SORT']
- 🚨 Кеш сбрасывается целиком при любом изменении
- 🚨 Нет логирования — при падении «белый экран»
- 🚨 Жёсткая привязка к CATALOG_PRICE_1 — невозможно переиспользовать
Метрики на этом этапе:
- ✅ Скорость разработки: +200%
- ❌ Покрытие тестами: 0%
- ❌ Статический анализ: не настроен
📉 СТАДИЯ 2: «ПОЧЕМУ ОНО СЛОМАЛОСЬ?» (МЕСЯЦЫ 2–3)
Команда масштабирует подход. Появляется 10–15 таких компонентов. Начинается магия:
Симптомы:
- 🐛 Пользователь меняет сортировку → видит товары в старом порядке
- 🐛 Админ добавляет товар → он не появляется до полного сброса кеша
- 🐛 При нагрузке >100 RPS компоненты возвращают устаревшие данные
Попытка диагностики:
Метрики:
- ⚠ Время на фикс бага: 4–8 часов (иголка в стоге сена)
- ⚠ Регрессии: 30% изменений ломают «что-то где-то»
📉 СТАДИЯ 3: «НИКТО НИЧЕГО НЕ ПОНИМАЕТ» (МЕСЯЦЫ 4–6)
Кодовая база достигает критической массы «быстрого кода». Происходит коллапс:
Что происходит с командой:
Новый разработчик
Тратит 2 недели, чтобы понять, как добавить одну фичу. Увольняется.
«Опытный специалист» (из их вакансии)
Пытается рефакторить → ломает 3 других компонента → боится трогать
Ментор по «скорости»
Учит генерировать ещё быстрее → добавляет ещё 2 компонента в неделю
Техлид / Архитектор
Пишет документ «Почему всё сломалось» → его игнорируют, потому что «надо быстрее»
Бизнес-метрики на этом этапе:
- 📉 Скорость разработки: -70% (по сравнению со стартом)
- 📉 Стабильность продакшена: <95% (постоянные инциденты)
- 📉 Стоимость изменения: +500% (правим 5 мест для одной фичи)
- 📉 Мораль команды: на нуле
🤖 ПОЧЕМУ ИИ НЕ СПАСЁТ, А УСКОРИТ КОЛЛАПС
Здесь я говорю не как разработчик, а как специалист по обучению LLM-моделей.ИИ-ассистенты — это не «волшебная таблетка». Это инструмент, который усиливает паттерны, на которых он обучен.
Принцип «Garbage In, Garbage Out»
Что происходит в вашей команде:
Фаза 1: Разработчики генерируют код с промптами «быстро, просто, работает».
Фаза 2: Этот код попадает в репозиторий → становится «контекстом» для будущих запросов.
Фаза 3: ИИ начинает предлагать ещё больше кода в том же стиле, потому что «обучился» на ваших примерах.
Фаза 4: Команда теряет способность отличать качественный код от «быстрого».
Результат: Вы не автоматизируете разработку. Вы автоматизируете деградацию архитектуры.
🔧 КАК ДОЛЖНО БЫТЬ: ИИ КАК УСИЛИТЕЛЬ ИНЖЕНЕРНОЙ КУЛЬТУРЫ
Для контраста — как я использую ИИ в своей практике:
✅ Правильный промпт — это спецификация, а не «сделай быстро»
Результат:
- ✅ Код, который можно поддерживать
- ✅ Архитектура, которую можно масштабировать
- ✅ Документация, которая помогает
✅ ИИ как «второй пилот», а не «автопилот»
Генерация бойлерплейта
→ Как использую ИИ: прошу сгенерировать шаблон компонента
→ Что делаю сам: проверяю соответствие стандартам Битрикс
Рефакторинг
→ Как использую ИИ: прошу предложить оптимизацию запроса
→ Что делаю сам: анализирую, не нарушает ли это бизнес-логику
Поиск багов
→ Как использую ИИ: прошу найти уязвимости в коде
→ Что делаю сам: проверяю находки, добавляю тесты
Обучение команды
→ Как использую ИИ: создаю примеры промптов и паттернов
→ Что делаю сам: провожу код-ревью, объясняю «почему так, а не иначе»
Ключевое отличие: ИИ ускоряет исполнение, но архитектурные решения, валидация и ответственность остаются за инженером.
🎯 ПРОГНОЗ ДЛЯ КОМПАНИИ С ФИЛОСОФИЕЙ «СКОРОСТИ КНОПОК»
Если текущий подход сохранится:
Финальная стадия: даже «опытные специалисты» не смогут разобраться в коде, потому что:
- ❌ Нет единых стандартов
- ❌ Нет документации
- ❌ Нет тестов
- ❌ Нет логирования
- ✅ Есть только «быстро», «работает» и «не трогай»
А ментор, который учил «генерировать быстрее», к этому моменту уже будет учить другую команду.
📋 ЧЕКЛИСТ: КАК РАСПОЗНАТЬ ТОКСИЧНОГО РАБОТОДАТЕЛЯ
Правило: если вы видите 2 и более пункта из списка в вакансии или переписке — это системная проблема, а не случайность. Задавайте жёсткие вопросы до выполнения ТЗ.
Почему именно 2+?
- 1 пункт — может быть случайностью, ошибкой формулировки, недопониманием
- 2 пункта — начинает проявляться паттерн поведения
- 3+ пунктов — это уже системная токсичность, бегите не раздумывая
Чеклист красных флагов:
- Оценка комплексной задачи <1 часа без готового окружения
- «Много кандидатов уже выполнили» без объяснения процесса
- Приоритет «скорости» над «архитектурой» в формулировках
- Оплата ТЗ только «финальному» без критериев
- Пассивная агрессия на уточняющие вопросы
- Подмена требований по ходу диалога
- Упоминание «международных партнёров» в контексте локального стека
🔥 ВЫВОДЫ ДЛЯ РАБОТОДАТЕЛЕЙ
Если вы ищете разработчика, который:
- ✅ Будет «генерировать код и проверять его»
- ✅ Уложится в 30 минут на компонент
- ✅ Научит команду «нажимать кнопки быстрее»
— вы найдёте такого человека.Но вы не получите:
- ❌ Поддерживаемый код
- ❌ Масштабируемую архитектуру
- ❌ Команду, которая понимает, что и почему делает
- ❌ Продукт, который работает стабильно
Вы получите:
- ✅ Быстрый старт
- ✅ Много кода
- ✅ Иллюзию прогресса
А через 6 месяцев:
- ❌ Код, в который страшно зайти
- ❌ Команду, которая боится вносить изменения
- ❌ Продакшен, который падает
- ❌ Необходимость начинать всё сначала
Вопрос: стоит ли «экономия» 30 минут на тестовом таких рисков?
💡 УРОКИ ДЛЯ РАЗРАБОТЧИКОВ
1. Задавайте вопросы ДО ТЗ
- Кто будет проверять?
- Предоставляется ли стенд?
- Оплачивается ли?
- Сколько кандидатов на этапе?
2. Не верьте «примерным» оценкам
Если говорят «30–60 минут», а задача требует 2–3 часа — это либо некомпетентность, либо манипуляция.
3. Цените своё время
Вы — эксперт. Ваше время стоит денег. 2–3 часа на ТЗ = 2–3 часа, которые вы не потратили на обучение, пет-проект или отдых.
4. Распознавайте красные флаги
🎯 ЗАКЛЮЧЕНИЕ
Что произошло:
- Я отфильтровал неадекватного работодателя («Мир охоты»)
- Сэкономил 2–3 часа на ТЗ + недели токсичной работы
- Получил отличный кейс для портфолио
Что получили они:
- 30 бесплатных тестовых заданий (возможно)
- Публичную репутацию «токсичного работодателя»
- Продолжение поиска «скоростного нажимателя кнопок»
Кто выиграл? 👀
📢 ПРИЗЫВ К ДИАЛОГУ
Для работодателей (включая «Мир охоты»):
Если после прочтения вы поняли, что ваши процессы похожи на описанные — это хороший знак. Значит, ещё не поздно измениться.
Начните с малого:
ВМЕСТО: «Компонент за 30 минут»
НАДО: «Компонент за 2–3 часа, предоставляем Docker-образ»
ВМЕСТО: «Оплатим финальному»
НАДО: «Оплатим всем, кто выполнил ТЗ по нашим критериям»
ВМЕСТО: «Скорость нажатия кнопок»
НАДО: «Качество архитектуры + разумная скорость»
Результат: вы начнёте привлекать не «кноподавов», а инженеров. Тех, кто строит системы, а не генерирует код. Тех, с кем можно расти.
P.S. Если вы — представитель компании «Мир охоты» и хотите обсудить, почему ваш подход ведёт к катастрофе — я открыт к диалогу. Иногда честный разговор стоит больше, чем 30 бесплатных тестовых заданий. Ваш рекуртер, к сожалению, отрезал возможность какого-либо диалога, после предложения обсудить условия тестового задания, что, к слову, только показало, что вам не нужен ментор, вы не готовы обучаться и слушать, вам нужен тот, кто будет работать по задачам ваших "опытных" специалистов.