ГлавнаяЗаметки → Как мы используем Trello в производстве и тестировании наших симкоматов
Апрель 2020

Как мы используем Trello в производстве и тестировании наших симкоматов

Тысяча первый способ применения привычного молотка не по назначению.

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

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

Зачем вообще что-то логгировать?

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

1 Другими словами: дорогая, правильно посчитанная, автоматизация может сэкономить очень много денег.

Дорогая, правильно посчитанная, автоматизация может сэкономить очень много денег.

Всё, описанное ниже, применимо к мелко- и среднесерийному производству. Это десятки и сотни единиц, соответственно. Для по-настоящему массового производства десятков тысяч юнитов используются те же базовые принципы и подходы, но совершенно другие технологии т.к. капитальные вложения в производственную и тестовую линии дают наибольший «выхлоп» именно на больших числах1.

Trello вместо очередного proizvodstvo.xls

2 На самом деле в дерево.

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

На больших проектах мы полагаемся на ERP, или PLM системы, которые используются на любом серьёзном производстве. Чаще всего мы не лезем в потроха внутренних бизнес-процессов китайских фабрик и попросту просим «выгрузить» результаты, которые обработаем сами.

Одна лицензия TeamCenter, или хотя бы Arena, стоит дороже, чем весь ижевский гараж

Для того чтобы тесты помогали производить качественно, а не мешали жить, помимо их логгирования необходимо:

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

3 В шортлисте уверенных в себе кандидатов, помимо Trello, был ещё Airtable.

В шортлисте уверенных в себе кандидатов, помимо Trello, был ещё Airtable.

Когда пришлось выбирать инструмент логгирования мы остановились на Trello3 по нескольким причинам:

  • Не умрёт даже под тысячей карточек
  • Есть документированный API с какими-то готовыми обёртками
  • Визуальный контроль карточек и простая канбан-концепция с ручным управлением записями с которой многие уже знакомы
  • Неплохо реализованный поиск с возможностью искать по кастомным полям
  • Аккуратное приложение для смартфонов, которое будет удобно операторам
  • Всё бесплатно.

Мы планировали производить симкоматы сотнями и Trello отлично подошла нам по размеру.

Как это работает на практике

Выходной контроль симкоматов проводится независимой QA командой на смежной с производителем территории. Весь процесс проверки одного устройства живым человеком занимает примерно 18 минут чистого времени, однако продолжается примерно сутки. Бо́льшую часть этих суток устройство проходит aging — самостоятельно выполняет автоматизированные тесты будучи привязанным к тестовому серверу. Изредка, в случайном порядке QA-инженеры показывают симкоматам на эйджинге QR-коды, заставляя устройства взаимодействовать с сервером и выдавать сим-карты.

SN shield
Такая табличка с серийным номером есть на внутренней раме каждого симкомата.

Каждый симкомат пришедший на тестирование уже имеет уникальный серийный номер на своей внутренней раме. Забирая очередной симкомат на тестирование ребята создают в Trello карточку с этим серийником. Эта карточка создаётся на основе готового шаблона, так что оформлять её «с нуля» не нужно, достаточно просто тапнуть в нужный лист и вбить серийник в заголовок карточки. Все чеклисты и кастомные поля будут перенесены из шаблона автоматически. Шаблоны — родная для Trello фича.

Примерно так создаётся карточка из шаблона с автоматическим переносом всех чеклистов

4 В следующем году мы выясним, что для этого можно использовать кастомную кнопку «Этап пройден».

Сама карточка представляет из себя набор чеклистов по которым движутся тестировщики выполняя различные проверки. Эта карточка перемещается по этапам тестового процесса которые представлены другой канбан-абстракцией — листами, которые часто называют колонками. После того как устройство проходит все проверки на одном этапе-колонке, его карточку руками переносят на следующий4.

App report

В нашем процессе приёмки и выпуска всего 6 этапов:

  1. Косметика и механика. Этап на котором проверяется внешний вид устройства и качество его сборки. Все аномалии здесь проверяются согласно специальному документу с допусками. Проверяются выкат рамы, защёлки, кнопки, зазоры, качество окраски, отсутствие царапин и пр. С самыми первыми образцами случается больше всего проблем именно на этом этапе.
  2. Автоматизированный тест. На этом этапе симкомат подключается к тестовому серверу, а инженеры используют специально написанное мобильное приложение, которое за руку проводит их по всему тестовому процессу во время которого проверяется всё: от версии установленной на аппарат прошивки, до индикаторных светодиодов и моторов диспенсора. Приложение генерирует QR коды, которые нужно показывать симкомату и тапать в нужные кнопки в зависимости от результата. Результаты всех тестов распечатываются на отдельном бланке проверки, который прикладывается к каждому устройству.
  3. Нагрузочное тестирование. На этом этапе симкомат помещается на стеллаж, подключается к тестовому серверу и работает в течение суток. Сервер периодически запускает на нём какие-то скрипты, обновляет ПО, а операторы изредка показывают машине QR-коды, получая в ответ сим-карты.
  4. Контрольный тест. Финальный тест после после нагрузочного. Нужно убедиться что устройство за сутки работы осталось в полном порядке. Проверяется калибровка батарей, целостность нагреваемых деталей, кабели. Из устройства удаляются все тестовые оснастки и сим-карты из всех отсеков.
  5. Упаковка. Предпродажная подготовка. Прошивка сбрасывается в «заводское» состояние. У нас же завод! Девайс чистится-обезжиривается, комплектуется всем необходимым, переводится в транспортировочное состояние и упаковывается в индивидуальную пену.
  6. Отправка. Правильно этот этап называется shipping. Устройства штабелируются в ящики-палеты по 40 шт.
trello workflow
Все этапы в виде колонок

Есть ещё дополнительная колонка На доработку. Туда попадают все карточки с проблемными устройствами, которые по каким-то причинам не прошли все этапы тестирования. У этой колонки есть даже собственный стеллаж, который ребята используют как буфер между командой QA и мастерской. Раз в день производитель забирает с этого стеллажа все не принятые симкоматы и уносит обратно к себе в мастерскую. Там команда сборщиков открывает Trello и из соответствующей карточки выясняет причину по которой устройство вернули, устраняет проблемы и снова приносит симкомат на тест. Так запускает новый круг Ада тестирования, а команда QA снова возвращает карточку устройства на исходную позицию.

Ramp-up chart

Ramp-up chart

Обычное производство по-настоящему большой партии выглядит так

Разумеется, сокращение количества кругов тестирования — приоритетная производственная задача. В идеале устройства должны производиться в мастерской так, чтобы успешно проходить QA с первого раза. Однако на ранних этапах всегда много брака, который в определённый момент резко падает, после чего можно ускорять выпуск. Этот момент называется Ramp-up.

При выпуске больших партий в Китае, мы вообще делаем несколько отдельных тестовых запусков, чтобы отладить линию и финальное качество. У этого этапа производства есть даже собственное название: Production Verification Test, или просто PVT.

OQC workflow
Процесс приёмки полностью совпадает с этапами на доске Trello

Каждый раз когда тестировщики отправляют устройство на доработку, они не только перемещают карточку в колонку «Отклонено», но ещё изменяют состояние кастомного поля «круг тестирования» в ней. Каждый раз увеличивают его на 1. При создании шаблона мы настроили максимально возможное кол-во кругов: 6, пометив их соответствующим эмодзи, чтобы немного мотивировать мастерскую. Сразу скажу, что 6 раз симкоматы никогда не возвращали, но было одно несчастливое устройство которое пережило 5 возвратов. В нём, как в том анекдоте: 1 баг фиксили, 2 новых добавляли.

Помимо отметок в чеклистах тестировщики прикладывали фотографии дефектов и делали короткие описания того что их не устроило. При необходимости пинговали в карточках нужных специалистов и привязывали сроки, если мастерская обещала починить что-то к определённому моменту. Сразу после того как команда QA выявила некоторые повторяющиеся проблемы, они стали использовать теги для карточек. По ним можно было отфильтровать устройства и быстро оценить узкие места производства, на которые нужно будет обратить внимание в будущей партии.

‼️ Лайфхак: Trello по умолчанию логгирует все изменения карточки включая её перемещения, добавление чеклистов и пр. Эти данные создают много шума, но их отображение можно отключить самой незаметной в мире кнопкой “Hide Details”, которая находится справа-вверху в разделе Activity.

Сложно?! Кажется, вовсе нет. Получился довольно интуитивный процесс, в который очень легко погрузиться. Причём даже тому, кто впервые слышит слово «канбан». Несомненно, там есть место человеческому фактору, но на средней партии и в компактной команде этот риск не очень крупный.

Так что там с отчётом?

Trello умеет показывать количество карточек в каждой колонке-этапе. Для этого нужно в поисковую строку ввести #. Даже этого достаточно чтобы понять сколько устройств на каком этапе находится и как близка команда к запаковке заказа, но ведь чатик — лучший интерфейс для чего угодно в 2020. Поэтому я за вечер написал бота для Телеграма.

OQC bot
А: Автоматизация

Бот умеет приблизительно то же самое, что и поиск в Trello. По единственной команде /show он показывает сколько устройств на каком этапе находится и на сколько мы близки к завершению. На бэке он использует библиотеку py-trello, которая парсит доску раз в 10 минут, а бот лишь возвращает закэшированные значения по запросу от пользователя.

Дворецкий 2021

Уже через несколько месяцев после первой партии из 100 шт, мы принялись за более крупную. В этот раз Trello использовалась не только в QA, но и во время производства: мастерская быстро смекнула что эта штука должна упростить и их работу тоже. Вместо этапов производства ребята использовали серию чеклистов и разные сборщики коммуницировали между собой через карточки делая пометки об особенностях устройств для будущих смен. Конечно же нам захотелось следить за тем, что происходит в мастерской.

Сначала бот работал так:

MP bot
Традиционная версия

А потом я решил добавить ему визуальный режим:

MP bot
RAD версия, отчитывающаяся картинками, которые генерит imagemagick. Как вам прогрессбар на слэшах?

С тех пор обычным режимом никто не пользовался. Шутка появилась из того, что в мастерской раньше очень любили менеджмент на разноцвеных стикерах. На скриншоте выше я замазал Арсения, потому что я ответственный пират и не спрашивал его разрешения на публикацию фотки.

Ещё одно важное нововведение 2021: в Trello появилась возможность создавать собственные кнопки с привязанными к ним сложными процессами. Теперь не нужно возвращать карточку в «требуют доработки» руками и руками же увеличивать счётчик «кругов тестирования» рискуя промахнуться. Всё это делается автоматически после нажатия кнопки «на доработку».

Butler Trello
Это что у нас тут, кастомные воркфлоу?

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

simkomat box

⚠️ Каменты в режиме эксперимента. Нужна регистрация на GitHub и необходимо дать разрешение боту Giscus. Если это неприемлемо, можно комментировать прямо на GitHub.

Сообщение об ошибке: