Как избежать убытков при программировании МК


PDF версия

Многие разработки программного обеспечения для микроконтроллеров (МК) непреднамеренно становятся для компаний источниками больших убытков. Это происходит из-за того, что инженеры не обладают достаточными познаниями экономических аспектов разработки ПО и в управлении производством продукции. При реализации крупных проектов руководители программы и старшие менеджеры разработки ПО восполняют этот пробел, но в небольших проектах по созданию МК такие специалисты отсутствуют. В статье предлагаются рекомендации, позволяющие оптимизировать разработку, начиная с самых ранних ее этапов.

Для того чтобы лучше понять суть этого явления, во-первых, следует учесть то обстоятельство, что рынок микроконтроллеров изменился: в прошлом 80% этого рынка приходилось на оборудование и 20% — на программное обеспечение, а теперь — наоборот. Учитывая эти фундаментальные изменения, как добиться того, чтобы решения разработчиков были оптимальными для компании?

Во-вторых, мы исследуем структуру стоимости разработки программного обеспечения для МК. Как эффективно минимизировать стоимость разработки? Что позволяет свести к минимуму стоимость технической поддержки? Что минимизирует общие расходы на изготовление опытного образца, изделия, продуктовой линейки? Понимание этих вопросов позволит сделать правильный выбор.

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

Наконец, эти принципы применимы к программным продуктам для разработки МК. Для поиска наиболее эффективного способа разработки следует провести сравнение разных методов, применение которых зависит от сложности системы, лицензирования и стандартизации.

Изменения на рынке МК

Концепция перехода рынка от аппаратного к программному обеспечению (ПО) позволяет уменьшить совокупные расходы на оборудование за счет меньшего числа компонентов и в то же время повысить надежность. Рост памяти и производительности системы наряду с увеличением ее функциональности ставят новые задачи перед ПО. Как их решить? Опытным разработчикам оборудования следует осваивать методы разработки программного обеспечения. Те инженеры, которым это не удастся сделать, будут довольствоваться частично оптимизированными решениями, что приведет к значительным финансовым убыткам компании, а также к потере доле рынка.

На рисунке 1 оценивается совокупная стоимость владения (ССВ, сумма прямых и косвенных затрат, которые несет владелец системы за период ее жизненного цикла) при использовании четырех различных методов создания архитектуры ПО. Например, из рисунка становится понятным, как на совокупной стоимости владения сказывается выбор планировщика или цикла синхронизации при реализации примитивных систем. Видно также, как ядро для работы в реальном времени позволяет несколько увеличить ССВ, однако в сложной системе выбор полнофункциональной ОСРВ на основе POSIX (Portable Operating System Interface (for Unix) — интерфейс переносимых операционных систем, т.е. набор стандартов, призванных обеспечить как переносимость самих систем на различные архитектуры, так и работу приложений в различных ОС) является наилучшим решением. Очень часто из-за недостатка понимания вопросов разработки ПО и бизнес-аспектов разработчики выбирают намного менее мощные планировщики и независимые ядра, пригодные для использования в простых системах, но неэкономичные в современных средах.

Рис. 1. Стоимость владения различными программными архитектурами

Расходы на разработку ПО для МК

В таблице 1 перечислены факторы различной степени важности при создании опытных образцов, единичных изделий и линеек продукции.

Таблица 1. Влияние определяющих ССВ факторов на разработку различных типов систем

Опытный образец

Единичное изделие

Номенклатура изделий

Минимизация затрат на лицензию

Минимизация времени выхода на рынок

Минимизация времени обновления и стоимости монтажа

Расходы на техническую поддержку незначительны

Расходы на техническую поддержку значительны

Расходы на техническую поддержку имеют определяющее значение

Тестирование необязательно

Тестирование имеет определяющее значение

Адаптируемость очень важна

Адаптируемость важна

Адаптируемость очень важна

Архитектура ПО неважна

Архитектура ПО важна

Архитектура ПО очень важна

Стандартизация неважна

Стандартизация очень важна

Стандартизация имеет определяющее значение

Качество ПО несущественно

Качество ПО имеет важное значение

Качество ПО имеет определяющее значение

Параметры безопасности не существенны

Параметры безопасности важны

Параметры безопасности очень важны

Повторное использование ПО важно

Повторное использование ПО имеет определяющее значение

Переносимость ПО неважна

Переносимость ПО важна

Переносимость ПО имеет определяющее значение

Производительность ПО неважна

Производительность ПО очень важна

Производительность ПО имеет определяющее значение

Качество драйверов устройств
ввода-вывода неважно

Требуется хорошее качество драйверов

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

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

Наиболее распространенной и дорогостоящей ошибкой при разработке программного обеспечения для микроконтроллеров является выбор среды, которая ориентирована на создание опытного образца и в дальнейшем становится средой разработки конечного изделия без проведения повторного анализа.

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

В настоящее время ключевыми подходами при создании линейки продуктов являются следующие концепции рациональной разработки:

– проведение исследовательской работы параллельно разработке;

– обновление линейки продукции за счет усовершенствования монтажа;

– применение стандартных платформ;

– применение модульных систем;

– использование промышленных стандартов ПО.

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

Экономический аспект времени выхода на рынок

Время выхода изделия на рынок является основным параметром при выпуске OEM-продукции. Оно связано с жизненным циклом изделия и его проникновением на рынок. Опоздав с выводом продукта на рынок, компания теряет рыночную долю. Диаграмма на рисунке 2 показывает, что теряет компания, если она опаздывает с выходом продукта на рынок.

Владение долей рынка важно с точки зрения обеспечения доходности компании. Доходность находится в самой тесной связи с долей рынка. Область доступного рынка соответствует площади под кривой рисунка 2.

Рис. 2. Компромисс между проникновением продукта на рынок и его временем выхода

При задержке выхода продукта на рынок доходы от более продолжительных продаж и большей доли рынка нивелируются. В результате небольшая задержка может привести к большим потерям в доли рынка и громадным убыткам. Чем позже выйдет компания на рынок с продуктом, тем эти убытки ощутимее.

Насколько важен своевременный выход продукта на рынок? Чтобы это понять, следует учесть последствия потери доли рынка или объема продаж продукции компании. 10-% задержка с выводом продукта на рынок грозит обернуться 20—30-% потерей доли рынка, что, в свою очередь, может привести к потери лидирующей роли и значительным убыткам. Все расходы можно перечислить следующим образом.

Переменные расходы, влияющие на валовой доход:

– расходы на комплектующие;

– расходы на производство;

– торговые издержки.

Постоянные расходы:

– расходы на научно-исследовательскую деятельность;

– общие и административные расходы;

– стоимость установки.

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

Итак, задержка выхода продукта на рынок приводит к существенному падению чистой выручки компании при постоянных расходах. Кроме того, эта задержка влияет на количество реализуемой продукции или снижает долю рынка, что приводит к значительному сокращению доходов. Поэтому самое главное правило успешной реализации новой OEM-продукции гласит, что наиважнейшим фактором является минимизация времени ее выхода на рынок.

Экономический аспект разработки программного обеспечения

Как минимизация времени выхода продукта на рынок связана с издержками на разработку ПО? По существу, тот же ряд факторов, который позволяет свести к минимуму расходы на единичное изделие и линейки продуктов, является определяющим при минимизации времени выхода продукции на рынок (см. табл. 2)

Таблица 2. Связь между особенностями разработки ПО и снижением издержек

Особенности разработки ПО

Снижение временных и стоимостных издержек

Стандартные модули

Меньшие издержки на разработку и интеграцию

Повторно используемые приложения

Быстрое время выхода на рынок и низкая стоимость

Портируемые приложения

Стандартные модули

Приобретение готовых модулей намного дешевле собственной разработки

Модули с оптимизированными характеристиками

Устраняется необходимость дорогостоящей оптимизации, выполняемой пользователем

Система с настроенными параметрами

Исключение тренинга

Экономия времени

Простая технология монтажа

Низкая стоимость или бесплатно

Обновление простых модулей

Новые функции при низких расходах

Обеспечение качества и тестирование программных средств

Модульный стандартный подход максимально увеличивает качество и сводит к минимуму необходимость интеграции

Обновление и изменение функций ПО

Замена модулей для изменения функций – низкая стоимость или бесплатно

Функции безопасности

Встроены в модульные стандартные системы

Расходы на техническую поддержку

При минимальной технической поддержке модулей снижаются расходы

Известная платформа

Снижение стоимости разработки ПО

Драйверы устройств ввода-вывода

Упрощение интеграции за счет ПО от поставщиков полупроводников (например, CMSIS)

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

Практический аспект времени выхода продукта на рынок и разработки ПО

Рассмотренные в статье рекомендации можно свести к следующим нескольким правилам.

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

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

3. Следует понимать, что использование открытых стандартов сводит к минимуму необходимость в тренингах, максимально увеличивает производительность труда и повторное использование ПО. Такая стратегия наилучшим образом позволяет снизить издержки и время разработки.

4. Следует всегда применять систему управления качеством продукции и проводить комплексные испытания. Репутация компании стоит дорого.

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

6. Программное обеспечение от поставщика микроконтроллеров обеспечивает требуемые драйверы низкого уровня для поддержки системы (яркий пример — использование стандарта Cortex Microcontroller Software Interface Standard).

7. Расходы на техническую поддержку сводятся к минимуму за счет архитектур на основе модульных стандартов и высококачественных компонентов.

8. Обеспечение безопасности является важным требованием эксплуатации современных изделий, поэтому следует предусмотреть соответствующие опции.

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

Поскольку POSIX является самым распространенным промышленным стандартом, которого придерживаются все основные поставщики ОСРВ и ОС, его использование не только в качестве среды моделирования, но и среды разработки коммерческого продукта и линейки продуктов станет наилучшим выбором при реализации нового метода разработки программного обеспечения.

Оставьте отзыв

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