Управление бизнес-процессами и развитием информационных технологий

16. Аутсорсинг разработки программного обеспечения

Н. Елманова А.К. Коптелов IT News, № 16 (август 2006)

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

 

Введение

Сейчас, в бизнесе одним из популярных ныне терминов стал «аутсорсинг». Outsourcing в переводе с английского дословно означает «пользоваться внешним, сторонним источником». Применительно к коммерческой деятельности аутсорсинг можно определить как отказ от собственного бизнес-процесса и приобретение услуг по его реализации у сторонних организаций.  В любой сфере бизнеса, к аутсорсингу обычно прибегают в ситуациях, когда требуется выполнить определенный объем работ, являющийся непрофильными или второстепенными для компании-заказчика и поэтому аутсорсинг в сфере информационных технологий  - явление довольно распространенное. Специализированным ИТ-компаниям сейчас заказывают самые разнообразные проекты, начиная от разработки стратегий развития информационных технологий, заканчивая разработкой приложений и это вызвано определенными преимуществами.

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

Тем не менее, аутсорсинг разработки программного обеспечения обладает рядом специфических особенностей, при этом они существенно различаются для случаев, когда компания-заказчик не занимается разработкой программного обеспечения (ПО), и когда компания-заказчик сама специализируется на разработке ПО.

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

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

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

 

Аутсорсинг разработки ПО внутренним ИТ-подразделением

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

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

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

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

Минусами данного решения являются увеличение затрат на развитие информационных технологий, необходимость отстраивать процессы внутренней разработки программного кода и проблема текучки  разработчиков. Однако в данном случае есть один существенный плюс, который заключается в полном контроле над работой разработчиков, и при грамотном управлении ими, возможно получение требуемого результата при меньших затратах.  Если управление процессом разработки и командой разработчиков не выстроено, то плохое качество приложений и невозможность их обновления будет постоянно напоминать о себе. Для совершенствования процессов  разработки  и управления жизненным циклом ПО  возможно использование мировых практик организации процессов разработки ПО – CMM/CMMI, RUP. Однако заметим, что через организацию собственных команд разработчиков ПО в 90-х годах прошли многие компании. Сегодня многие из них, осознав нецелесообразность содержания собственных разработчиков, являются клиентами компаний, специализирующихся на разработке программного обеспечения или специализированных решений на базе готовых продуктов.  Поэтому вопрос аутсорсинга разработки программного обеспечения должен решаться с учетом особенностей бизнес-процессов компании и системы управления развитием информационных технологий. Можно сказать, что сейчас, для среднестатистической компании более эффективен аутсорсинг разработки ПО.

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

o       стоимость собственных разработок в соотношении со стоимостью услуг аутсорсинга;

o       риски нарушения режима информационной безопасности;

o       риски разрыва отношений с аутсорсинговой компанией и дальнейшее развитие созданного приложения;

o       особенности организации и управления процессами разработки внутри компании;

o       отличие собственных бизнес-процессов от процессов автоматизируемых в типовых корпоративных системах управления предприятием.

 

Аутсорсинг разработки ПО компаниями-разработчиками

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

Например, компания-разработчик, специализирующаяся на разработке наукоемкого ПО (к примеру, приложений, обрабатывающих трехмерную графику), может взяться за выполнение проекта по разработке и внедрению бизнес-приложения, содержащего как наукоемкую функциональность, так и достаточно типичные составные части наподобие форм ввода в базу данных. В этом случае разработку типичных составных частей, не связанных с предоставлением ее собственного «know-how», подобная компания вполне может поручить другой компании, нуждающейся в заказах и не специализирующейся на наукоемких разработках. Известны примеры, когда подобный аутсорсинг диктовался не столько экономической выгодой, сколько нежеланием поручать «типовую» работу высококвалифицированным разработчикам, специализирующимся на наукоемких решениях, ни нанимать на работу программистов среднего уровня.

Еще один вариант заключается в передаче сторонней компании подряда на написание всего кода приложения и  широко практикуется американскими компаниями, хотя встречается и в Европе, и в России. Подобные компании имеют в своем штате менеджеров и бизнес-аналитиков, осуществляющих постановку задачи на автоматизацию бизнес-процессов (к примеру, с помощью инструментов ARIS) и управление требованиями (например, с применением Rational Requisite Pro или Borland Caliber RM),  но не имеют ни разработчиков приложений, ни специалистов по написанию серверного кода, ни специалистов по тестированию.  Готовые же требования и модели отправляются другим компаниям (иногда расположенным в другом регионе или в другой стране), которые и создают код самих приложений c помощью предназначенных для этой цели инструментов.

Довольно часто сторонним компаниям передаются более «отчуждаемые»  части проектов, нежели фрагменты кода. Так, создание руководства пользователя к «коробочным» продуктам нередко поручается компаниям, специализирующимся исключительно  на данном виде работ (в России имеется немало компаний, специализирующихся на подобных услугах). Дело в том, что подобные компании обычно имеют в штате не только технических писателей и специалистов по встраиванию справочных систем в приложения, но и редакторов и корректоров с филологическим образованием, а зачастую — и переводчиков на иностранные языки, и редакторов, способных править иностранный текст. Причина распространенности подобного аутсорсинга проста. Технический писатель в штате компании-разработчика может и быть (хотя в небольших компаниях он, как правило, все равно окажется недогружен). Но содержать в  штате компании-разработчика редакторов, корректоров, верстальщиков, переводчиков, как правило, совершенно невыгодно, равно как и поручать их функции руководителям проектов или менеджерам.

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

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

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

 

Международный аутсорсинг разработки ПО

В настоящее время, в  мире существует определенное распределение аутсорсинга разработки ПО по регионам, обусловленное в первую очередь экономическими причинами.  Так, многие западные компании успешно заказывают аутсорсинг своих проектов или их частей китайским, индийским, российским и украинским разработчикам. Например, среди американских производителей компонентов, инструментов моделирования, компьютерных игр и даже корпоративных приложений довольно много компаний, менеджмент которых находится в США, а подразделения разработки — в Санкт-Петербурге, Туле, Москве, Томске.

 

 

По данным опроса, проведенного компанией AMR Research, отечественная индустрия аутсорсинга имеет годовой оборот около 750 млн. долл., что существенно ниже годового оборота аналогичной индийской индустрии. Однако в России имеется ряд поставщиков услуг аутсорсинга  по разработке ПО  с оборотом свыше 20 млн. долл. По мнению AMR Research, российские компании обладают определенными преимуществами, важнейшим из которых является высокая квалификация специалистов и стабильность штата таких компаний, обусловленная тем, что соответствующий сегмент рынка труда не подвержен гиперактивности, как, например, в Индии. Кроме того, в отличие от индийских поставщиков услуг, российские характеризуются более трезвым подходом к управлению проектами, в связи с чем аналитики рекомендуют обращаться к последним с проектами, сопряженными с высокими рисками.

Аналитики AMR Research также рекомендуют обращаться к услугам российского аутсорсинга компаниям, которые нуждаются в относительно недорогих  проектах разработки и сопровождения специализированных приложений; либо в поддержке проектов в Западной Европе, особенно в Германии и скандинавских странах; а также компаниям, ищущим альтернативу Индии в связи с потребностями в минимизации геополитического риска и культурных различий.

 Источник: http://www.silicontaiga.ru/

 

 

Недавний опрос американских компаний, специализирующихся на разработке ПО, проведенный компанией Evans Data Corporation, показал, что 37% североамериканских компаний заказывают оффшорную разработку ПО. При этом многие из опрошенных компаний имеют в своем штате бизнес-аналитиков, осуществляющих работу с заказчиком, управление требованиями и моделирование бизнес-процессов.  Отметим, что в последнее время подобной модели бизнеса стали придерживаться некоторые  российские компании-разработчики, отдающие работу по написанию кода в города с меньшим уровнем оплаты труда или в страны СНГ.

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

 

Аусорсинг с точки зрения разработчика ПО

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

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

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

***

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

 

 

Besucherza blackplanet
счетчик посещений
Контактная информация: koptelovak@yandex.ru

Используются технологии uCoz