Как и любой другой сложный процесс, разработка электронного устройства или программного обеспечения требует тщательной подготовки и планирования. От того, насколько детально будет все проработано на старте, во многом зависит успех проекта.
В этой статье решили поделиться своим видением того, как закладывается фундамент удачного проекта.
Из каких этапов складывается предпроектная подготовка?
Сразу оговоримся – это гибкий процесс, который зависит от специфики, размера и сложности проекта. Некоторые этапы могут пропускаться, другие – сливаться или идти параллельно.
Тем не менее, говоря о подготовке к разработке, мы чаще всего подразумеваем следующие шаги:
Анализ концепции продукта
Перед тем, как приступать к разработке электронного устройства или ПО, на стороне потенциального заказчика проводится исследование рынка, анализируются конкурентные решения, выявляются сильные и слабые стороны. Определяется целевая аудитория, потребности пользователей и их ожидания. Как правило, клиент приходит к нам, уже имея видение продукта и концепцию, которая определяет особенности и преимущества будущего решения.
Пропустить этот этап – не лучшая идея. Высок риск потратить время и деньги впустую, пытаясь разработать то, что нереализуемо, не будет пользоваться спросом или уже давно в разнообразии присутствует на рынке.
При первом контакте с заказчиком мы выясняем технические моменты, желаемые сроки и стоимость. По ответам собеседника сразу понятно, было ли проведено минимальное исследование рынка и имеется ли представление о том, как будет работать устройство или ПО, какой будет бюджет проекта. Стараемся определить ценность идеи, конкурентоспособность продукта.
Приведем пример “сырой” идеи с туманными перспективами. Клиент пришел с запросом создать крохотное устройство, которое крепится к колпачку помады или туши для ресниц. Прибор работает как таймер и через определенное время предупреждает хозяйку, что у косметики истек срок годности. Клиенту понравилась идея, маркетингового исследования не было. Наша команда скептически отнеслась и к задумке, и к возможности ее осуществить. Проект не стартанул.
Другой пример – сроки или бюджет взяты с потолка. Разработка большого проекта (например, системы управления аккумуляторами мощностью несколько МВт) не может длиться пару месяцев и стоить 500 000 рублей. Если клиент настаивает на нереальных сроках и стоимости, диалога не получится.
Соглашение о неразглашении
Стандартный договор на разработку электроники и ПО содержит пункт о неразглашении конфиденциальных данных. Но еще до его заключения по просьбе клиента мы можем заключить соглашение о неразглашении информации (NDA). Компания обязуется не использовать и не передавать никому детали проекта (идеи, технические решения, коммерческую информацию и др.), которые получила в ходе переговоров.
Планирование сроков и бюджета
Точная оценка важна и заказчику, и разработчикам. Клиент планирует бюджет и календарь, поэтому хочет понимать, сколько будет стоить разработка и сколько времени займет. И, конечно, заказчик хочет быть уверен, что получит готовое решение вовремя.
Оценивая проект, разработчики планируют загрузку каждого специалиста команды. Просчет в оценке на данном шаге приведет к нехватке рук, спешке и, как следствие, ошибкам.
Первичная грубая оценка объема работ может быть дана клиенту уже на первых созвонах. Обычно это диапазон человеко-часов и стоимости, а также календарные сроки без привязки к датам.
Для небольшого или типового проекта “вилка” будет незначительной, например, 500–550 человеко-часов. Для крупных проектов или новых задач диапазон будет больше, так как в расчетное количество часов закладываются риски и неопределенность, которые неизбежны при масштабных работах.
Первая оценка основывается на нашем опыте подобных разработок. Если клиент согласен с ней, команда готовит детальный расчет.
В редких случаях оценку софтового проекта можно провести без технического задания. Это возможно при наличии подробного описания программы или аналогичного ПО.
Сбор требований и формирование технического задания (ТЗ)
Есть несколько вариантов как организовать процесс. Заказчик может самостоятельно подготовить ТЗ, где подробно опишет функциональные и нефункциональные требования к продукту, возможно, предпочтительные компоненты, сертификационные требования и т.д. Мы со своей стороны готовы оказать помощь в уточнении и дополнении этого документа, предложить оптимальные варианты технических решений, учитывая особенности проекта.
Клиент может прийти к нам с концепцией продукта или с образцом. В таком случае мы сами подготовим ТЗ с нуля, определим набор технологий и инструментов, согласуем детали и приступим к разработке.
Такой вариант возможен не для всех проектов. Например, при разработке медицинского устройства инженеры ждут от заказчика детальную спецификацию, где будут описаны все характеристики и функционал прибора.
Подробное техническое задание ускоряет начало проекта. Однако мы понимаем, что не всегда возможно сразу сформировать все детали. Поэтому готовы работать даже с самыми общими концепциями.
Например, наш клиент много лет производит и продает спа ванны, но совсем не разбирается в проектировании электроники. К нам он обратился с идеей автоматизировать управление, но не имел представления, каким образом это должно быть сделано.
Мы предложили заказчику создать контроллер и мобильное приложение для управления гидромассажной ванной и просмотра ее настроек. Да, работа заняла больше времени, чем если бы заказчик пришел к нам с детальным ТЗ, но такой вариант стал самым эффективным, так как не было возможности подготовить спецификацию своими силами.
В данном случае и нам было полезно погрузиться в проект и провести такую обширную работу. В дальнейшем в компанию поступил запрос на разработку похожего решения. Имея опыт создания подобной системы, мы предложили наиболее подходящий микроконтроллер и другие компоненты, доступные и с хорошим соотношением цена/качество, посоветовали отказаться от явно избыточных функций, которые давали удорожание решения.
Что обычно включается в ТЗ?
- Функциональные требования, сферы применения устройства, отличия от аналогов;
- Нефункциональные требования (источник питания, технологии передачи данных, периферия и т.д.);
- Условия эксплуатации решения (температурные режимы, влажность, давление, среда и т.д.);
- Сценарии использования устройства;
- Архитектура решения;
- Сертификационные требования.
- В развернутых ТЗ, которые становятся проектной документацией, могут быть такие пункты, как оценка каждого этапа разработки в человеко-часах, календарный план работ, соглашения, риски и результаты реализации (что получит заказчик по окончании работ).
Написание ТЗ – это совместная работа заказчика и разработчика. Вы рассказываете о своих идеях, а мы структурируем данные и добавляем технические детали.
Подготовка коммерческого предложения (КП)
КП готовится для объемных проектов. Это может быть как одностраничный документ с общими сведениями о разработке, так и большое КП с выдержками из ТЗ, оценкой проекта, календарным планом работ, информацией о компании, составе команды и примерами реализованных проектов.
Формирование команды
Параллельно с написанием ТЗ мы формируем проектную команду, куда могут входить один или несколько разработчиков, тестировщик, аналитик, руководитель проекта и др. Каждый специалист обладает глубокими знаниями в своей области. Благодаря их опыту и экспертизе мы гарантируем высокое качество и эффективность реализации проекта.
Исследование
Часто нас просят проанализировать концепцию, оценить ее жизнеспособность. Бывает так, что без предварительного анализа трудно сказать, осуществима ли идея, настолько она сложная или необычная. В таких случаях мы делаем предпроектное исследование, оцениваем выполнимость проекта и только потом приступаем к разработке.
Исследования проводим и когда требуется доработать существующий электронный прибор или нужно создать устройство по образцу. Например, заказчик разработки емкостной клавиатуры предоставил нам образец, а нашей задачей было создать решение с аналогичными характеристиками. Мы начали проект с исследования, в ходе которого определили возможные подходы к разработке и подобрали компоненты.
По результатам исследований готовим отчет, где описываем возможный подход или несколько вариантов. Решение о выборе принимает клиент.
Много времени на изучение требуют сложные и/или масштабные проекты. Несколько недель заняло у нас погружение в тонкости разработки системы управления аккумуляторными батареями, которая входит в состав аккумуляторной системы хранения энергии. Клиент пришел с подробной проектной документацией, однако задача была объемной, и только на подготовку ушел месяц, а сами работы длились несколько лет. Результатом стала система, которая по мощности сравнима со средней ГЭС.
Резюме: Почему предварительная подготовка важна?
- Дает понимание целей и задач. Если требования четко сформулированы, мы – разработчики – можем сосредоточиться на ключевых аспектах проекта, не тратя время и ресурсы на выяснение деталей.
- Детальное техническое задание позволяет подбирать оптимальную элементную и инструментальную базу: аппаратные компоненты, среды разработки, фреймворки, библиотеки, языки программирования и т.д. Правильный выбор влияет на производительность и надежность продукта.
- Сформированная на этом этапе спецификация служит основой для контроля качества продукта на всех этапах разработки.
- Четко сформулированные требования позволяют составить точный план работ и определить бюджет. Риски выйти за пределы расчетов сводятся к минимуму.
- Чем детальнее проработан проект на старте, тем меньше вероятность, что в ходе работ возникнут серьезные проблемы и ошибки, которые потребуют существенных изменений.
- Понятные задачи и план работы мотивируют команду и повышают эффективность.
Предварительная подготовка – это инвестиция в успех проекта. Она позволяет снизить риски, повысить эффективность разработки и получить продукт, который полностью отвечает потребностям заказчика.
Мы уделяем много внимания подготовке к проекту, чтобы избежать ошибок и получить наилучший результат. Вы всегда можете обратиться к нам не только за разработкой электроники и ПО, но и за консультацией или экспертной оценкой сторонней разработки.