Информационные технологииStfw.Ru 🔍

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

🕛 15.09.2006, 15:50
Анна Штейн,
Андрей Коптелов,
IDS Scheer Россия и страны СНГ


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

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

Среди менеджеров и собственников российских компаний уже появляются сторонники IT-аутсорсинга, и в первую очередь используется аутсорсинг разработки программного обеспечения (по причине дороговизны собственной команды разработчиков).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

IT News

Программное обеспечение   Теги:

Читать IT-новости в Telegram
Информационные технологии
Мы в соцсетях ✉