Статьи о разработке продуктов в сфере электроники — это большая редкость на Хабре. Я говорю не о любительских проектах или прототипах, а об успешных коммерческих устройствах для массового рынка.
Ведь презентации новых гаджетов Apple, Samsung и других брендов — это только видимая часть айсберга, под которой скрывается человеко-десятилетия труда людей самых разных специализаций: инженеры, программисты, дизайнеры, логисты, руководители различных уровней, продавцы и так далее. Пока ты не погружаешься в эту внутреннюю кухню, может показаться, что процесс довольно простой и понятный: была бы идея, хорошая команда и достаточное финансирование. Однако не все так просто.
Хочу поделиться своим опытом и видением, которое было сформировано за время моего трудового пути от инженера до руководителя, в компаниях как продуктовых, так и сервисных.
Многие читатели Хабра знакомы с внутренней кухней разработки ПО, а ведь железо — это совсем другая история. Готовы? Тогда поехали.
Для начала расскажу, как идет процесс разработки электроники, и сравню его с разработкой ПО. Упрощенно этапы создания нового устройства выглядят так:
Фаза №1. Анализ
У всех эта фаза проходит и называется по-разному: «Расчеты», «Проектирование», «Сбор требований». Одни компании сразу же стартуют с тех. задания, написанного инженером «в теме», другие уделяют чертовски много времени планированию и проработке. Почему же это может быть важно? Причины просты:
- Планирование бюджета. Как правило, процесс разработки продукта довольно длинный и будет неприятно, если после 8—9 месяцев инвестирования у вас внезапно закончатся деньги. Матерые компании и продакт-менеджеры имеют собственные технологии планирования для новых продуктов, которые банки даже принимают в качестве гарантий по кредитам.
- Оптимизация себестоимости. Если вы производите 50 тыс. устройств в год, будет полезно экономить каждый доллар в себестоимости устройства.
- Управление. В разработку любого продукта, даже довольно простого, завязаны тысячи людей (прямо или косвенно: поставщики компонентов, инженеры, маркетологи, рабочие завода-изготовителя и т.д.). Задачи нужно будет делегировать правильным специалистам в правильное время.
- Цена ошибки, она очень высока, и чем раньше мы ее выявляем, тем лучше.
Главная задача фазы анализа — определить четкую концепцию продукта, над которым предстоит работа на последующих этапах, и синхронизировать ее с остальными участниками по мере необходимости. Следует учитывать вопросы конечных клиентов, себестоимость, требования производственных площадок, планы проекта, контрактные обязательства, бюджеты, финансирование, исполнителей, разрешающие и сертифицирующие документы, выбор материалов и компонентов.
Если говорить о планировании нового продукта, то это своего рода искусство, которым занимаются продакт-менеджеры. (Я хочу посвятить отдельный пост продакт-менеджменту в электронике).
Финальный этап фазы анализа — подготовка технического задания, в нем мы определяем функциональные и нефункциональные требования к продукту, прорабатываем технический дизайн и создаем скетчи устройства:
Пример: эскизы новых электронных устройств, созданные командой промдизайнеров компании Promwad
В электронике мы всегда говорим об ограниченности ресурса. Разработчики ПО вне темы embedded уже давно забыли про дефицит, например, оперативной памяти. А тем временем подобные ограничения делают работу инженера крайне увлекательной. Для инженеров-электронщиков технические параметры устройства — это рамки творчества.
Я уже говорил про цену ошибки, внесение изменений в электронике — это долго и дорого. Для ПО можно выпустить обновления, а что можно выпустить для реального предмета? Только другой реальный предмет, в котором недостатки устранены.
Некоторые продукты в сфере электроники «не взлетали» именно по причине нерабочего софта.
Даже самое тщательное планирование не защитит от ошибок на 100%. Вы наверняка читали подобные заголовки новостей:
- Apple отзывает iPod nano: в плеерах найден дефект аккумулятора
- Nokia отзывает 14 миллионов потенциально бракованных зарядных устройств
- Intel отзывает микроконтроллеры для процессоров из-за обнаруженного дефекта
- Garmin отзывает более миллиона GPS-навигаторов из-за перегрева аккумуляторов
- Lenovo отзывает свои компьютеры из-за риска внезапного возгорания
Итак, что мы получаем в итоге фазы проектирования? Набор документации, контрактных обязательств и команду, которая понимает продукт и заряжена на успех.
Фаза №2. Разработка
Как правило, электронное изделие состоит из следующих компонентов, которыми занимается инженерный отдел:
- Железо
- Корпус
- Софт
- Технологии производства
А вот эти компоненты остаются за границами инженерного отдела (мы к ним вернемся позже):
|
|
Железо. Благодаря современным САПРам разработка аппаратного обеспечения — это достаточно стандартизованный процесс, который при хорошо сформированных вводных не длится долго (от 2 недель до пары месяцев максимум). Самая сложная штука — это конструкция. Дело в том, что физическое расположение одних элементов относительно других играет большую роль и оказывает непосредственное влияние на работоспособность современного устройства.
Промышленный дизайн. Внешниий вид корпуса плотно привязан к технологии производства. Технология — это материалы, а значит — стоимость. Дизайнер может нарисовать абсолютно волшебную штуку, но для ее воплощения в жизнь понадобится труд конструктора и технолога. Технологические лидеры ставят уникальный дизайн во главу угла, и потому непрерывно создают новые технологии производства.
Программное обеспечение в электронике работает в условиях ограниченных ресурсов. Подход к его разработке кардинально отличается от подходов, принятых в индустрии разработки ПО для веба, десктопов и т.п. Используются другие инструменты и другая среда разработки: версии ОС для встраиваемых систем Windows CE, Linux Embedded и т.п.
Программисты-электронщики сильно завязаны на железе. Если разработчик десктопных приложений не задумывается о корректности работы своей аппаратной платформы, то инженер-программист сталкивается с этим постоянно, особенно при работе с новыми компонентами. У меня были проекты, в которых баги в программе возникали из-за ошибок в работе процессора либо от плохого монтажа. К слову последнее — это действительно серьезная проблема для дизайн-центров.
Еще пример: программист и дизайнер могут создать интерфейс пользователя, который будет отлично работать на тестовой платформе, но вызовет перегрузку оперативной памяти на реальном устройстве. Причем такие ошибки не всегда можно заметить сразу. Сутки устройство работает корректно, а потом перезагружается.
Все эти особенности существенно усложняют жизнь программистов, которые работают со встраиваемым ПО, хотя многие специалисты выбирают электронику как раз ради таких увлекательных задач.
Как правило, промежуточным результатом фазы разработки являются опытные образцы устройства. Процесс их сборки — это вообще отдельная история. Со всего мира в одну точку на карте съезжается сотня компонентов, каждый упакован в отдельную посылку. На специализированном предприятии по специальным технологиям делаются рабочие образцы, они могут выглядеть так:
Пример: образец бортового автомобильного самописца, разработанного в компании Promwad. Корпус выращен в 3D-принтере по технологии лазерной стереолитографии. За счет шлифовки и покраски внешний вид устройства был максимально приближен к заводской версии.
Ваше положение на карте мира практически не имеет значения при разработке софта. А вот при разработке железа сроки производства образца могут различаться в десятки раз в зависимости от положения разработчика и изготовителя. Компании в Китае собирают образец за 2 недели, в России этот срок может доходить до пары месяцев.
После сборки образцы уходят на тестирование. По его результатам мы можем повторить весь процесс с самого начала, чтобы исправить найденные косяки либо понять, что в таком исполнении продукт никому не нужен. Такой вот суровый scrum c циклом в год.
Конечно, мы рассчитываем на удачное завершение тестирования, т.к. хотим перейти к самой увлекательной части проекта — постановке на массовое производство…
Автор: ashby