Манифест отчуждения кода: Как за два месяца собрать промышленный Fullstack-сервис, работать в отпуске и уйти с собственным продуктом

ДИСКЛЕЙМЕР: Этот текст не должен был увидеть свет. Перед вами не жалоба, не попытка оправдаться и не эмоциональный всплеск. Это монументальный технический и управленческий post-mortem проекта «Генератор КП» — хроника того, как создавался сложный корпоративный софт, как инженер сам позволил себя кинуть на старте, совершив классическую ошибку, и как менеджмент попытался выжать Middle+ Fullstack-разработку за копейки, прикрываясь мифами о «нейросетях, которые в 2026 году делают всё за три дня». Текст публикуется как манифест защиты инженерного труда и как открытое предложение для рынка: готовое бизнес-решение полностью отчуждено от старой компании и продается.

Часть 1. Архитектурный базис и бизнес-логика: Зачем был создан Генератор КП

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

Когда рутина стала невыносимой, один из менеджеров принес файл-пример с прошлых мест работы — локальную веб-страницу, содержащую статическую базу номенклатуры и примитивные скрипты для сборки спецификаций. Это был вектор, показывающий, как бизнес хочет работать: менеджер должен сам, без посредников в лице отдела закупок, за секунды находить ИТ-продукты, накидывать маржу, формировать документы и отправлять их клиенту, перехватывая сделку «на лету».

Я взял эту идею и спроектировал полноценную автоматизированную платформу, исключающую отдел закупок из цепочки генерации КП. Архитектурно система состоит из трех тяжелых независимых слоев:

  1. Асинхронное ядро (FastAPI / Python): Серверная часть, управляющая защищенными сессиями пользователей, авторизацией на базе хэшей bcrypt и API-эндпоинтами для связи с фронтендом.
  2. Высоконагруженный ETL-движок: Модуль парсинга, который берет сырые, хаотичные прайсы поставщиков (включая многостраничные PDF, ломаные структуры Excel, HTML-выгрузки), запускает на сервере LibreOffice в headless-режиме, нормализует данные и раскладывает их в структурированную JSON-базу данных.
  3. Программный XML-генератор документов: Модуль, который не просто вставляет текст в docx-файл, а декомпозирует zip-контейнер Word, лезет в его XML-структуру и динамически пересобирает таблицы, налету внедряя математику расчета НДС, суммы прописью и жестко фиксируя графические слои (сканы оригинальных синих печатей и подписей руководства), чтобы верстка документа оставалась монолитной при любом объеме позиций.

Часть 2. Признание собственных ошибок: Ловушка на старте

В любой проваленной управленческой коммуникации всегда есть вина обеих сторон. Моя главная инженерная и тактическая ошибка заключалась в том, что я сам позволил себя кинуть. На этапе постановки задачи 25 мая я поддался профессиональному азарту. Видя перед собой интересную, сложную архитектурную задачу, я с ходу включился в проектирование и написание кода, совершив критический просчет — я не поставил жестко вопрос о стоимости разработки и фиксации бюджетов «на берегу».

Я понадеялся на деловую этику менеджмента, решив, что руководство компании самостоятельно способно отличить штатное администрирование Linux-серверов от Fullstack-разработки коммерческого ПО с нуля под ключ. Я не заключил отдельный договор на разработку, не зафиксировал стоимость своего часа как программиста и начал выдавать готовый результат в кредит, базируясь лишь на устных договоренностях. Это классическая ошибка инженеров, которые любят технологии больше, чем деньги. Менеджмент мгновенно воспринял этот энтузиазм как слабость и попытался размыть сложнейшую ИТ-разработку внутри фиксированного оклада сисадмина.

Часть 3. Монументальный таймлайн: Хроника непрерывного труда (21 мая — 10 июля)

Итоговый конфликт вскрыл глубокое непонимание менеджментом физики разработки. Мне был брошен упрек от ИТ-директора: якобы в период с 9 по 19 июня проект «стоял и не двигался», а вся разработка заняла непозволительные 45 дней вместо выдуманного дедлайна в «три дня». Давайте восстановим истинную хронологию по логам переписки и коммитов, чтобы уничтожить этот аргумент.

Майский контур: Запуск и первая демка

  • 21-22 мая: Получение входных файлов. Написание базового парсера для номенклатурных списков. Проектирование веб-интерфейса корзины с возможностью динамического изменения маржинальности от 0 до 100% на лету.
  • 25 мая: Готов первый рабочий демонстрационный прототип. Система показана руководству. Код работает стабильно, начинается процесс сбора требований для интеграции реальных прайс-листов.
  • 29 мая: Передача расширенной финальной демки. Ожидание фидбека по структуре данных от руководства.

Июньский контур: Адаптация прайсов и непрерывный рефакторинг

Аргумент о том, что после 9 июня проект «стоял», полностью аннигилируется фактами. Весь июнь, вплоть до 30 числа, шла тяжелейшая, незаметная для поверхностного менеджерского взгляда работа по адаптации прайс-листов вендоров. И здесь я хочу выразить глубокое уважение моему коллеге и тестировщику Ване. Ваня проявил себя как первоклассный специалист: ежедневно на протяжении почти четырех недель он вручную прогонял через систему реальные файлы, вылавливал баги и писал детальные отчеты.

Лог общения с Ваней — это бесконечный список правок:

  • «Тут палочки съехали» — исправление регулярных выражений парсера DOCX, когда текстовый контейнер XML ломался из-за спецсимволов вендора.
  • «Шрифт итогового блока отличается на два размера» — пересчет стилей в структуре документа.
  • «Название компании убежало вниз на позицию, про НДС написано два раза» — рефакторинг математического модуля округления валют и пересчета на бэкенде.

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

Июльский контур: Законный отпуск, атака HTTP/2 Bomb и выбивание денег

  • 1 июля: Я официально ухожу в заслуженный отпуск. Работа должна быть полностью остановлена. Но она продолжается, потому что система находится в продакшене, и менеджеры начинают работать в ней.
  • 3 июля: На мою карту приходят те самые 10 000 рублей. И всё. Это все деньги, которые компания выделила за два месяца непрерывного создания сложного софта. С этого дня начинается унизительный процесс вымаливания честной оплаты за июньский объем инженерного труда.
  • 6 июля: Созваниваемся с ИТ-директором. В звонке он предпринимает агрессивную попытку «съехать» на этой несчастной десятке, утверждая, что эта сумма полностью покрывает мои трудозатраты на создание «Генератора КП». Я жестко пресекаю эту манипуляцию, раскладываю архитектуру по полочкам и требую пересмотра условий.
  • 8 июля: Находясь в отпуске, я продолжаю мониторить серверную инфраструктуру. Прилетает критическая абуза от хостинга FirstVDS: уязвимость высокого уровня CVE-2026-49975 (HTTP/2 Bomb). Угроза DoS-атаки: злоумышленник через манипуляции с таблицами HPACK и фреймы WINDOW_UPDATE со значением 0 байт мог спровоцировать Out-Of-Memory Crash и полностью уронить сервер, на котором крутятся сервисы компании. Находясь в отпуске, я разворачиваю контур защиты, перенастраиваю лимиты сессий веб-сервера и ликвидирую уязвимость за несколько часов. Я спасаю инфраструктуру бизнеса, пока руководство считает мои копейки.
  • 9 июля: Я подготавливаю монументальный, прозрачный расчет стоимости проекта на основе затраченных часов и минимальной рыночной ставки Fullstack-разработчика (1 500 руб./час). Направляю две детальные таблицы во вложении.
  • 10 июля (Сегодня): Повторный звонок от ИТ-директора. Снова классические тезисы: «это дорого для внутренней задачи», «ты ленился». В процессе тяжелейшего разговора мне кое-как удается заставить его признать обоснованность сметы. ИТ-директор на словах соглашается закрыть финансовый вопрос на моих условиях и обещает выплатить деньги. **Но на текущий момент оплаты за проект до сих пор нет.** По факту я вижу лишь слова и обещания на фоне официального отказа от моих дальнейших услуг как разработчика: «Будем реализовывать силами внутренних инженеров».

Часть 4. Разрушение мифа о «Нейросетях за три дня» в 2026 году

Один из самых абсурдных упреков, которые мне пришлось выслушать от ИТ-директора — это обвинение в «отрицании современных технологий». Мне было заявлено, что в 2026 году, в эпоху тотального ИИ и нейросетей, подобные задачи должны решаться за три дня, а я «возился целых 45 дней».

Давайте снимем розовые очки с некомпетентного менеджмента и разберем этот бред с технической точки зрения:

  1. Нейросети не создают архитектуру. Ни один ИИ-помощник не способен развернуть под ключ отказоустойчивую промышленную ETL-систему, которая бесшовно связывает Linux-окружение, headless-процессы LibreOffice, парсинг бинарных файлов и манипуляции с внутренним XML-кодом документов Word. ИИ генерирует изолированные куски кода (функции), но связывать их в единую монолитную систему, готовую к продакшену, обязан инженер.
  2. Миф о трех днях разбивается о грязные данные. Нейросеть может написать идеальный регулярный скрипт для идеальной таблицы. Но когда дистрибьютор меняет структуру колонок, добавляет невидимые пробелы в артикулы или ломает кодировку в PDF — ИИ пасует. Адаптация под хаос реального рынка — это ручной, монотонный debug, который мы проводили весь июнь.
  3. Нейрослоп сложнее чинить. Менеджеры, начитавшись заголовков, думают, что можно скормить ИИ задачу и получить готовый продукт. На выходе они получают «нейрослоп» — тонны избыточного, несвязного, галлюцинирующего кода, который падает при первой же нагрузке. Исправление и отладка сгенерированного нейросетью мусора занимает в три раза больше времени, чем написание чистой архитектуры с нуля профессиональным разработчиком. Проект писался 45 дней не потому, что код писался медленно, а потому что требования менялись на лету, а прайсы вендоров подкидывали новые сюрпризы каждый день.

Часть 5. Финансовая декомпозиция: Честная стоимость инженерии

Для того чтобы зафиксировать точку невозврата и показать реальную стоимость ИТ-продукта, который я создал, ниже приведены две финальные таблицы, отправленные руководству. Это сухие цифры, против которых у менеджмента нет аргументов.

Таблица 1: Рыночная стоимость разработанного ИТ-продукта (Генератор КП)

Архитектурный модуль Техническое содержание выполненных работ Часы Рыночная стоимость (?)
Backend (FastAPI) Асинхронная архитектура, роутинг, сессионный менеджмент, авторизация на bcrypt, логирование через systemd. 30 45 000
ETL-движок парсинга Модуль чтения данных, интеграция с LibreOffice в headless-режиме, регулярные выражения для маппинга хаотичных артикулов вендоров. 35 52 500
Генератор документов Манипуляции с XML-структурой Word, динамические таблицы спецификаций, жесткая привязка слоев печати и подписи, расчет сумм прописью. 30 45 000
Frontend & SPA Интерфейс на чистом JS/HTML/CSS без раздутых фреймворков. Интерактивная корзина, управление маржой (0-100%), поисковый движок по базе. 25 37 500
DevOps & Инфраструктура Развертывание на Linux, веб-сервер Caddy (HTTP/3, SSL), systemd-сервисы, митигация критической CVE-2026-49975 в отпуске. 20 30 000
ИТОГО ПО СИСТЕМЕ Готовый автоматизированный комплекс в продакшене под ключ 140 210 000 ?

Таблица 2: Смета правок версии v2.0, от которых компания отказалась

Задача по доработке v2.0 Инженерная сложность и контур изменений Часы Стоимость (?)
Гибкое ценообразование Реструктуризация JSON-БД корзины, логики бэкенда и фронта под 3 независимых режима цен (РРЦ / Мин. цена / Ручной ввод для каждой позиции). 12 18 000
Рефакторинг парсера МС Debug регулярных выражений, восстановление маппинга сломанных артикулов дистрибьютора. 5 7 500
Динамическая логика НДС Модификация алгоритма сборки строк таблицы Word в модуле генерации в зависимости от флагов фронтенда. 4 6 000
Коррекция UI/UX CSS-сетка, принудительная интеграция корпоративных шрифтов размером 11pt, фикс верстки карточек. 4 6 000
QA и Деплой Регрессионные тесты генерации тяжелых документов, обновление продакшен-сервера. 3 4 500
ИТОГО ЗА ПРАВКИ Пакет обновлений для финализации системы до идеала 28 42 000 ?

Часть 6. Точка отчуждения: Открытое предложение для рынка

ИТ-директор принял решение забрать архив версии v1.0 и развивать его силами «внутренних инженеров». Я закрыл доступ к репозиторию на GitHub, удалил его из коллабораторов и передал файлы. На этом мои обязательства по коду перед этой компанией аннулированы. Никакой поддержки, никаких консультаций и бесплатных фиксов багов с моей стороны больше не будет. Лавочка закрыта.

Но поскольку я являюсь полноправным автором и создателем этого программного комплекса, а компания отказалась выкупать его по полной рыночной стоимости, **я объявляю о продаже готового бизнес-решения «Генератор КП» на открытом рынке**.

Я глубоко и искренне уважаю Влада — собственника бизнеса. Он построил сильную компанию, и этот софт создавался для того, чтобы умножить эффективность его бизнеса. Но я не могу позволить обесценивать свой инженерный труд линейным ИТ-менеджментом. Поэтому я забираю свой продукт с собой.

ОТКРЫТЫЙ ОФФЕР: За фиксированную стоимость в 210 000 рублей я продаю полную кодовую базу «Генератора КП» со всеми модулями парсинга, бэкендом на FastAPI и адаптивным фронтендом. Система полностью отчуждаема и автономна. Я готов адаптировать, переписать регулярные выражения, переверстать шаблоны документов и развернуть эту платформу под инфраструктуру любой другой компании на рынке. Любые дополнительные кастомные правки и расширение функционала под ваши бизнес-процессы оплачиваются отдельно по договоренности.

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

👁️ 19

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

6 + 13 =

root@phoenix901:~# connect
[×]

Получай дайджест раз в неделю.
Без спама.