Как стать автором
Обновить

Аутсорсинг разработки электроники: обзор подходов и тенденций в России и за рубежом

Время на прочтение 6 мин
Количество просмотров 27K
Блог компании Promwad Производство и разработка электроники *


Опираясь на историю рынка ИТ-аутсорсинга и опыт российских компаний, мы расскажем о появлении первых контрактных разработчиков и дизайн-центров электроники в России и СНГ, объясним, как можно сократить и удешевить цикл разработки электронного устройства, а также попробуем ответить на важный вопрос о том, как сделать свой продукт конкурентоспособным на рынке электроники.
Читать дальше →
Всего голосов 26: ↑21 и ↓5 +16
Комментарии 42

Устройство удаленного контроля и питания

Время на прочтение 2 мин
Количество просмотров 6.4K
Блог компании Широкий взгляд
В любой лаборатории или даже при производстве различных сложных устройств возникает необходимость в дополнительных, так сказать дебажных устройствах, а также всего остального, что помогает делать это самое — главное устройство. Понятно, что без паяльника или осциллографа никак не обойтись любой более-менее серьезной лаборатории, но на практике периодически возникает потребность в особых устройствах, которые в силу нашей слабо развитой промышлености либо не продаются, либо изготавливаются кое-как на коленке. Более того, всю информацию нужно собирать по кусочкам на различных форумах и сайтах DIY. Буду рад, если кто-нибудь подскажет, где конкретно можно поискать такие общие устройства, которые путем небольшой доработки можно успешно применять во многих проектах.
Наверно многим на хабре приходили такие мысли, предлагаю обсудить их в этом треде – кому какие устройства приходили на ум и есть ли у нас магазины, которые бы специализировались на продаже таких устройств. Не найдя такового устройства для наших нужд ни в магазине, ни забугром мы решили сделать свой собственный.
Читать дальше →
Всего голосов 22: ↑15 и ↓7 +8
Комментарии 12

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

Время на прочтение 13 мин
Количество просмотров 177K
Разработка веб-сайтов *
Из песочницы

Введение


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

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

Проекты, над которыми я работаю, чаще всего связаны с разработкой заказного или инвестиционного программного обеспечения. Также мне приходилось работать с встроенным ПО и программами, ориентированными на выпуск «хитов» (что, с лёгкой руки Джоэля Спольски, я называю далее игровым ПО, хотя на самом деле некоторые игровые проекты ближе к инвестиционным).

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

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

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

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

Нашими заказчиками являются органы власти, крупные государственные и коммерческие организации и, конечно, мы сами. Поэтому в смысле заказного ПО в нашем процессе часто присутствует некоторая разница между процессами разработки продуктов для внутреннего и для внешнего заказчиков. Некоторые нюансы я укажу в этой статье. Уровень формализации отношений с заказчиком у нас варьируется от проекта к проекту очень широко. В целом, чем больше бюджет проекта, тем выше формальность. Государственный заказчик или крупные коммерческие предприятия (особенно с государственным участием) обычно имеют законодательные ограничения на формирование, размещение заказа и приёмку результатов работ. Ещё одним ограничением крупных организаций является тот факт, что их персонал, являющийся источником требований и основным пользователем наших систем, имеет очень ограниченную доступность для исполнителей, хотя бы вследствие своей занятости. Однако для небольших организаций уровень формализации падает и иногда уходит в противоположную крайность, где возникает недостаточный уровень ответственности заказчика в рамках проекта.

Другая сторона наших заказных проектов – высокие требования к функциональности. Это и высокая нагрузка на все системы, и большая географическая распределённость, и высокие требования к точности вычислений при очень ограниченных временных рамках. Часто в наших проектах появляются элементы исследовательской работы и творческого поиска, направленного на решение нетривиальных проектных задач. Иногда нам приходится комбинировать в рамках одного процесса разработки разные методологии, например, вставляя в общий процесс, близкий к RUP, один или несколько этапов почти чистого scrum, порождая что-то вроде проекта в проекте. Это позволяет нам сохранять невысокий уровень вовлеченности пользователей, связанный с природой проекта, с гибкостью разработки в условиях высокой неопределённости требований. В этом плане для меня важен именно подготовительный этап, во время которого можно выбрать необходимую методологию и выстроить оптимальный процесс разработки. Один из примеров применения гибкой методологии я описал в статье «Применение agile при разработке проекта для государственного заказчика».

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

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

Важно понимать, что переход процесса от одного этапа к другому не имеет чёткой границы. Как правило, работы следующего этапа начинаются по мере выполнения 80-90% работ по предыдущему этапу. Особенно это касается разработки требований, когда в ряде случаев снятие неопределённости происходит лишь к концу проекта. Безусловно, наличие такой неопределённости в проекте является существенным риском и должно находиться под постоянным контролем.
Читать дальше →
Всего голосов 19: ↑13 и ↓6 +7
Комментарии 45

Трансформация аутсорсинговых компаний в инженерные — путь смелых из Беларуси, Украины и России

Время на прочтение 8 мин
Количество просмотров 4K
Исследования и прогнозы в IT *Развитие стартапа Карьера в IT-индустрии Бизнес-модели *Производство и разработка электроники *

В ИТ-сообществе слово «аутсорсинг» часто воспринимается как обидное. Руководители компаний и команд, которые занимаются заказной разработкой ПО или электроники, и сами разработчики предпочитают не называть себя аутсорсерами. Даже из моих предыдущих статей об инженерных командах и их пути могло показаться, что я против этой бизнес-модели. Так что давайте разберемся, почему аутсорсинг стал для нас — инженеров из Беларуси, Украины и России — важной школой, и почему лидеры ИТ-рынка больше не хотят называть себя этим словом. 

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 1