Перейти к основному содержимому

Инженерия ПО в Manufacturing: Agile встречает железо

· 7 мин. чтения
Artur Pan
CTO & Co-Founder at PanDev

Крупный автопоставщик, с которым я консультировал в 2024, получил production-баг во вторник в 03:15. Фикс написали за 8 минут и выкатывали 19 дней — потому что требовался софт-апдейт PLC на 14 производственных ячейках, каждую из которых можно было обновить только в 4-минутное окно между сменами. Средний lead time инженерной команды на офисной IT-стороне — 31 час. На shop-floor-стороне — 14 дней. Та же команда, тот же репозиторий, две разные вселенные constraint'ов delivery.

Manufacturing software engineering — это Agile, столкнувшийся с железом. Практики, работающие в SaaS-стартапе — deploy-whenever, feature flags, canary-релизы — сталкиваются с регулируемой реальностью plant floor: цели OEE, стоимость changeover, разделение OT/IT и production-линии, которые нельзя остановить ради деплоя. Исследование Deloitte Smart Factory 2023 обнаружило, что 73% производителей называют «интеграцию IT/OT» главным барьером цифровизации. Дело не в технологии — дело в том, что метрики и ритуалы, придуманные для чистого софта, ломаются, когда софт касается физического процесса.

{/* truncate */}

Почему инженерия в manufacturing другая

Manufacturing-софт охватывает четыре слоя, каждый со своей моделью деплоя, режимом отказа и реальностью измерения:

Архитектура: Shop floor (PLC, SCADA, сенсоры) → MES-слой (OEE, downtime, quality) → ERP + analytics-слой. Dev-команды касаются MES + ERP-интеграций. Четырёхслойный manufacturing-стек. Два нижних слоя накладывают ограничения на два верхних так, как чистые SaaS-команды редко предвидят.

СлойТипичная технологияCadence деплояBlast radius
Shop floor (PLC / SCADA)Rockwell, Siemens, CodesysНедели — месяцыОстановка линии, брак, безопасность
MES (execution)GE Proficy, Siemens Opcenter, customДни — неделиРазрывы traceability, задержки смен
ERP-интеграцияSAP, Oracle, custom middlewareНеделя — месяцОшибки биллинга, лаг отчётности
Analytics / BISnowflake, дашборды, customЕжедневно (офис IT)Косметика до задержки решения

Верхние слои выглядят как SaaS. Нижние — как аэрокосмос. Dev-команда живёт во всех четырёх.

Метрики, которые здесь важны

1. Lead time, разрезанный по слоям

DORA lead time сжимает полезный сигнал в manufacturing. 4-часовая медиана по команде маскирует 2-часовой MES-lead и 14-дневный PLC-lead. Разрезайте их — или спрячете настоящее узкое место.

СлойРеалистичный lead-timeElite-диапазон
Analytics / BI2-24 ч< 2 ч
ERP-интеграция1-7 дн< 1 дн
MES3-14 дн1-3 дн
Shop floor / PLC7-60 дн3-7 дн

Статья IEEE 2022 по моделям delivery в Industry 4.0 подтвердила бимодальное распределение: команды, шипящие в оба слоя, имеют 2 пика lead time, а не один.

2. Change failure rate, взвешенный по production-импакту

Фейл в BI-дашборде стоит инженеру полдня. Фейл в MES — срывает отгрузки. Change failure rate нужно взвешивать по blast radius — иначе он пропустит рискованный PLC-change, потому что «фикс дашборда сработал».

Схема весов, которую мы видели рабочей:

  • Analytics / BI-фейл = 1x
  • ERP-интеграция-фейл = 3x
  • MES-фейл = 10x
  • Shop-floor-фейл = 50x (потенциальная остановка + rework + брак)

Команды, отслеживающие взвешенный CFR, расставляют тестовые инвестиции на слои, которые бьют.

3. OEE-aware deployment windows

OEE (Overall Equipment Effectiveness) — священная метрика shop floor. Это произведение Availability × Performance × Quality, фабрики целятся в 85%+ («world-class»). Любой софт-деплой, не вытягивающий 85% OEE на пост-change-линии, считается failed независимо от того, что говорит CI.

Это меняет инженерный вопрос с «деплой прошёл?» на «деплой деградировал OEE?» — и ответить может только интеграция с production-данными.

Как manufacturing-ограничения меняют playbook

Deployment-окна — результат переговоров, а не инженерного решения

В SaaS-платформе инженерия выбирает, когда деплоить. На shop floor инженерия получает окно от plant operations:

  • Changeover смены (обычно 5-15 мин каждые 8 часов)
  • Плановое обслуживание (еженедельно, 2-4 часа)
  • Квартальный shutdown (единственное окно для крупных изменений)

Это значит, deploy-автоматизация — не про «пушим в прод когда угодно», а про подготовку изменений так, чтобы они помещались в предварительно согласованное окно без человеческого bottleneck. Команды, пропускающие это, до сих пор делают ручные deploy PR, подписанные plant-менеджерами в 14:00 в пятницу.

Минимум две Git-ветки

Manufacturing-команды, с которыми я работал, приходили к двух-branch-модели:

  • office-it/* ветки — cloud/SaaS-pipeline, деплой много раз в день
  • ot/* ветки — батчи, гейт через plant-floor review, медленнее cadence

Попытка пропустить все изменения через один pipeline замедляет офисную cadence до OT-скорости. Разделение даёт каждому слою двигаться в своём ритме.

Feature flags работают по-разному на shop floor

Нельзя feature-flag'нуть PLC ladder-logic change. Можно — MES UI, analytics-слой и ERP-middleware. Команда должна явно знать, какие слои поддерживают флаги, а какие нет — иначе инженеры тратят усилия на SaaS-паттерны в embedded-коде.

Типовой паттерн: 40-инженерная manufacturing-команда

Из паттернов 6 customer-команд в automotive, food-processing и промышленном оборудовании:

  • 12 инженеров на офисном IT / analytics-слое — web-стек, стандартный CI/CD, DevOps-практики
  • 16 инженеров распределены на MES и ERP-интеграции — Java/.NET-heavy, медленнее cadence, сильнее интеграционные тесты
  • 8 инженеров на shop-floor-софте — PLC/SCADA-специалисты, глубокое знание железа, тестовые циклы на недели
  • 4 инженера на cross-cutting platform / infra — CI, data-pipeline, безопасность

Четыре популяции не смотрят одни и те же дашборды. Единый «team velocity» на все 40 маскирует реальное здоровье каждой подкоманды. Мы видели эту ловушку: руководство ставит OKR «deploy frequency +20%», офисная IT-команда перевыполняет, MES-команда перенапрягается, shop-floor-инженеры теряют мотивацию.

Какие метрики отслеживать (и не смешивать)

МетрикаОфис ITMESERPShop floor
Deploy frequencyЕжедневноЕженедельноЕженедельноЕжемесячно
Lead time< 24 ч1-5 дн3-7 дн7-30 дн
Change failure rate5-15%5-10%3-8%< 2% (стоимость остановки линии)
MTTR< 1 ч< 4 ч< 8 чЧасы — дни
Focus time (IDE heartbeat)1-2 ч/д1.5-2.5 ч/д1-2 ч/д< 1 ч/д (много workshop)

Числа IDE heartbeat — самое удивительное. Shop-floor-инженеры проводят меньше времени в редакторе, потому что 40-50% их работы — workshop, дебаг и on-site plant. Наши данные по manufacturing-customer'ам подтверждают этот паттерн. Судить shop-floor-инженеров по SaaS-бенчмаркам IDE-time — значит misrank'нуть ваши сильнейшие hardware-software-мозги.

Где вписывается PanDev Metrics

PanDev Metrics автоматически собирает IDE heartbeat и Git-события во всех четырёх слоях. Для manufacturing-команд хорошо работает маркировка репозиториев по слою (мы поддерживаем per-project labels) и сегментированные дашборды — lead-time для office-IT, для MES, для shop-floor — вместо единого усреднённого числа, не говорящего ничего.

Один клиент в automotive tier-1 supply обнаружил реальное узкое место shop-floor именно так: очередь code review, где 6 инженеров ждали одного domain-эксперта с медианой ревью PR 4,3 дня. Видно, когда сегментировано. Невидимо в смешанном view.

Типичные ошибки

  • Применение SaaS-порогов DORA к shop-floor-коду. 60-дневный lead time на PLC ladder logic — не провал, а физика plant-floor change control.
  • Один Grafana-дашборд на всю команду. Office-IT green прячет shop-floor red. Сегментируйте или слепните.
  • Найм только дженералистов. Manufacturing-софту нужны глубоко-доменные спецы. 5-инженерная shop-floor-подкоманда с 12-летним опытом PLC обыгрывает 15-инженерную подкоманду дженералистов — каждый раз.
  • Считать OT-проблемой pipeline. Это проблема change-control. Замедление не в CI — а в том, что PLC-изменение влияет на физическую линию и кто-то ответственный должен сказать «go».
  • Игнорировать OEE во время деплоя. Если post-deploy OEE падает на 5 пунктов и держится смену, это failed-релиз, пусть даже все тесты прошли.

Контр-тезис

Manufacturing-инженерным командам нужно не меньше Agile — а Agile, применённый послойно, с разным cadence и разными метриками на слой. Команды, пытающиеся подтянуть все четыре слоя к единому cadence, либо замедляют быстрые слои (office-IT), либо безрассудно ускоряют медленные (shop-floor). Правильный ответ — четыре pipeline, уважающих физику.

Честные ограничения

Наш manufacturing-датасет — 6 customer-команд (automotive, food-processing, промышленное оборудование) — значительный, но не широкий. У нас пока нет сильного сигнала по pharma / регулируемым FDA-cGMP-средам, где overhead валидации доминирует над cadence. PLC-специфичные метрики (строки ladder logic в день, затронутые tag-points) — пока вне нашего ядра измерения; мы коррелируем через Git-активность, но native ladder-logic-парсинга нет.

Дополнительное чтение

Попробуйте сами — бесплатно

Подключите IDE-плагин за 2 минуты и увидьте свои реальные метрики. Без карты, без обязательств.

Попробовать бесплатно