Запись обязана быть фотографией, а не зеркалом
Анкета, заполненная на приёме, подставляет уже известное о клиенте, а при сохранении часть ответов пишет обратно — карточка клиента должна отражать последние мерки. Но сама анкета хранится снимком, привязанным к этому приёму, и после него меняться не может. Если клиента обмерили заново через год, прошлогодняя запись обязана по-прежнему говорить то, что говорила, иначе нельзя ни сравнить два приёма, ни защитить переделку, ни объяснить кому-либо, из чего вы исходили. Заставить снимок и живые данные ужиться в одной форме — заметная часть проектной работы в этом классе продуктов.
Работа не останавливается из-за того, что остановилась сеть
Приёмы идут в помещениях с толстыми стенами. Платформа работает офлайн-первой: клиенты, приёмы, анкеты, снимки и заказы пишутся в локальные таблицы и очередь операций, а затем повторяются на сервер, когда связь вернулась, с видимой возможностью повторить то, что не прошло. Последнее важнее, чем кажется: синхронизация, которая молча теряет одну операцию, хуже её отсутствия, потому что об этом никто не узнает, пока изделие не сделают неправильно.
Доступ — это не роль, а область
Кто что видит и меняет, решается сразу по нескольким измерениям: бренд, филиал, город, юридическое лицо, — причём чтение и запись выдаются отдельно. Сверху у персональных данных свой признак: сотрудник без него видит телефон клиента замаскированным, а не скрытым, потому что запись всё равно нужно узнавать. Ролями это не выражается, а привинтить области к системе, построенной на ролях, почти равно переписыванию.
Два человека, одно рабочее место, одна смена
Рабочим местом в цехе пользуется тот, кто на смене. Поэтому платформа позволяет второму сотруднику войти рядом с первым и переключаться между ними, не теряя своё место. Описывается коротко, а строится широко: каждый экран, каждый черновик и каждая офлайн-операция в очереди обязаны знать, кому из вошедших они принадлежат.
Заказ не заканчивается отгрузкой
Позаказное производство означает, что часть изделий возвращается. Рекламации, переделки и корректировки — полноценные объекты, каждый прослеживается до исходного приёма и мерок, которые он дал. Интересен не способ записать переделку, а вопрос, что она наследует, чего намеренно не наследует и кто вправе это решать. Ответить на него поздно — значит сводить историю руками.
Мерки снимает компьютерное зрение, оператор только проверяет
Платформа отделяет объект от фона, находит контуры, сама расставляет опорные точки и выводит из них измерения — длины, ширины, ось и угол отклонения — до того, как человек к чему-либо прикоснулся. Оператор не расставляет точки с нуля, он смотрит на предложенное и поправляет, если что-то не так. Коммерческий смысл не в сэкономленных секундах: два оператора в двух городах начинают получать одно и то же число для одного человека, а это разница между мерками, которые можно сравнивать между визитами, и мерками, которые понятны только тому, кто их снял.
Миллиметр обязан пережить путь от стекла до станка
Съёмка идёт на планшетных TWAIN-сканерах — среди них Plustek A320L, причём в филиалах стоят разные модели, — а также на веб-камерах и камерах телефонов. Все трое выдают пиксели, и только один из них представляет, сколько пиксель стоит. Поскольку результат изготавливается и печатается один к одному, масштаб — не деталь отрисовки, а сам продукт. Поэтому каждое изображение несёт свою калибровку: миллиметры на пиксель, способ, которым она получена, и уверенность в ней.
Метаданные врут, и знать об этом надо заранее
Эталонная выгрузка с оборудования сообщала в своих же заголовках 72 DPI, тогда как настоящее эффективное разрешение было около 114 — реальный масштаб жил в разметке страницы, а не в файле. Система, которая верит числу внутри изображения, уверенно производит изделия неправильного размера, и замечают это, только когда их физически изготовили. Носить масштаб явно — как значение, которое платформа вычислила и сохранила, а не прочитала, — это и есть разница между системой измерений и дорогим фотоальбомом.
Кликами правильный миллиметр не получить
Система, результат которой изготавливают, проверяется числами, а не экранами, поэтому тесты стоят там, где числа рождаются: 276 проверок на конвейере зрения, офлайн-очереди и правилах риска, 1060 на бэкенде в трёх сьютах — юниты, сквозные и те, которым нужна настоящая база, — и 717 на веб-клиенте: 2053 в сумме по трём репозиториям, и каждый гоняет свои на каждый пуш. Прокликанный релиз не сообщит, что контур сместился на два пикселя, а два пикселя здесь — это изделие, которое не подойдёт.
Оборудование, курьеры и бухгалтерия говорят по-разному
С одной стороны измерительная техника, с другой — курьерская служба с накладными и отслеживанием, шлюз рассылки для отправки документов клиентам и учётная система для заказов и справочников. Оборудование намеренно сделано адаптером над настраиваемым типом устройства, а не жёсткой зависимостью: филиалы не покупают одинаковые сканеры в один и тот же год, и платформа, приваренная к одной модели, превращает каждое обновление техники в программный проект.