Ж у р н а л   о   к о м п ь ю т е р н ы х   с е т я х   и   т е л е к о м м у н и к а ц и о н н ы х   т е х н о л о г и я х
СЕТИ И СИСТЕМЫ СВЯЗИ on-line
  ПОИСК: ПОДПИСКА НА НОВОСТИ: НОМЕР:
    ДОМОЙ • Архив: Новостей | Конференций | НомеровПодписка
 
   
 
   
    
РЕДАКЦИЯ
 
Все о журнале
Подписка
Как проехать
Где купить
Отдел рекламы
График выхода журнала
Адреса в Интернет

РУБРИКАТОР
   
• Инфраструктура
• Информационные
   системы

• Сети связи
• Защита данных
• Кабельные системы
• Бизнес
• Колонка редактора
• Электронная
   коммерция

• Только на сервере
• Системы
   учрежденческой
   связи

• Новые продукты


Rambler's Top100

  

Импортируем Java-код

Дон Маквитти

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

Наш список поставщиков услуг по офшорному программированию включал такие организации, как Axmor Software, InfoSys Technologies, Infovision, NIIT, Patni Systems, Satyam Technologies, Tata Group и WiPro Technologies. Мы направили им письма, в которых содержался запрос на выполнение указанной работы, разумеется, в кратчайшие сроки. Но только Patni Systems взялась разработать проект на предложенных нами условиях. Жаль, что нам так и не удалось понаблюдать за конкуренцией в действии. Тем не менее, продолжая начатое дело, мы тщательно задокументировали весь процесс офшорной разработки, чтобы дать вам возможность взглянуть на возникающие проблемы нашими глазами.

Содержание проекта

Итак, представляем вам компанию NWC Inc. Это небольшое предприятие со штаб-квартирой в Грин-Бее (шт. Висконсин) и фабрикой в Сиракузах (шт. Нью-Йорк). Автоматизированная система размещения заказов позволяет клиентам в онлайновом режиме покупать изделия, произведенные на фабрике. Под “изделиями” можно подразумевать все, что угодно, главное, чтобы система обеспечивала непрерывность бизнеса. С ее помощью также можно контролировать сроки и способы доставки товара заказчику. В определенный момент возникла потребность расширить функциональность системы — дополнить ее возможностями отслеживания всех заказов какого-нибудь одного клиента и контроля статуса каждого заказа.

Система размещения заказов базируется на ПО Oracle с использованием технологии JSP (Java Server Pages), а система управления их выполнением и доставкой — на базе ПО Microsoft SQL Server с использованием технологии ASP.Net. Мы попросили компанию Patni Systems разработать программный продукт, позволяющий с помощью обеих этих систем отображать на экране монитора все заказы, их текущее состояние, способ и дату доставки товара конкретному клиенту. Мы составили список соответствующих требований и передали его подрядчику. На исполнение проекта отводилось шесть недель, за это время требовалось написать несколько страниц кода JSP для взаимодействия с БД Oracle и SQL Server. Приложение должно было обеспечивать доступ к БД и их обновление, при этом сами разработчики этих БД, что называется, в глаза не видели и могли использовать только выбранную нами среду разработки Web-приложений, включающую поддерживаемую Oracle версию ПО Apache с Tomcat Java Application Server. Имитируя рыночную конъюнктуру, мы несколько раз меняли версии ПО и в конце концов остановились на Oracle 9ias. И хотя нас, как говорится, так и подмывало, но мы не стали излишне усложнять задачу, поскольку сами потребовали выполнить работу в кратчайший срок.

Первые проблемы

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

Однако в скором времени выяснилось, что наши затраты неизбежно превысят смету, поскольку нам все-таки придется допустить разработчиков Patni Systems к нашим системам, чтобы разрешить проблемы удаленного доступа к БД, и предоставить им соответствующую документацию. Кроме того, нам пришлось организовать отдельную среду для тестирования нового приложения, специально реплицировав для нее БД и Web-службы наших производственных систем с целью не нарушать их нормальное функционирование.

Кроме того, мы быстро осознали, что компания Patni Systems привыкла иметь дело с крупными заказчиками — ее специалисты уже были готовы начать работу и ждали только, когда мы предоставим им VPN-доступ. Однако наш VPN-шлюз, будучи самодельным, оказался несовместимым с VPN-сетью Patni Systems, полностью построенной на продуктах Cisco. Разумеется, такие же трудности возникли бы у нас с любым поставщиком услуг аутсорсинга, тем не менее, решая проблему совместимости, мы на день выбились из графика и компании пришлось ждать.

Мы надеялись, что конфигурирование прав доступа к нужным машинам займет у нас всего пару часов, но просчитались. Patni Systems долго не могла связаться по VPN с нашим SQL-сервером. У нас ушло целых два дня на то, чтобы понять, что нашей VPN-сети требовались права регистрации на этом сервере с поддержкой ODBC для удаленных пользователей. Это заставило нас серьезно усомниться в достоинствах доморощенного VPN-решения, а вот проявленное компанией Patni Systems терпение, напротив, приятно удивило нас. В итоге придуманная нами фирма NWC Inc, что называется, взяла фальстарт, и сроки выполнения проекта пришлось сдвинуть на две недели, а, кроме того, сама Patni Systems на неделю замешкалась с доставкой ПО. Таким образом, от первой строки написанного кода до приемочного тестирования прошли пять недель.

Время против денег

Преимущества аутсорсинга в данном конкретном случае оказались для нас минимальными. Имея в штате всего двух специалистов по ИТ, компания NWC Inc смогла собственными силами разработать и развернуть СУБД и Web-приложения, и написание нового кода отняло бы у нас едва ли больше времени, чем у Patni Systems, поскольку мы были хорошо знакомы с нашей программной архитектурой и располагали собственной тестовой средой. Словом, нашему виртуальному малому предприятию почти не удалось сэкономить время, зато оно отдало на сторону деньги.

Наши затраты были обусловлены в основном размерами проекта и фиксированными накладными расходами. Нам пришлось на две недели пригласить к себе менеджера проекта от Patni Systems. Для небольшого проекта это слишком долгий срок, в более же крупном проекте накладные расходы не сопоставимы с его постепенно возрастающей стоимостью. Если бы нам пришлось-таки платить за выполненную работу, то расходы на проживание в гостиницах и авиабилеты на перелеты из Индии в США и обратно наверняка были бы еще больше, не говоря уж о стоимости телефонных переговоров, но эти расходы едва бы превысили стоимость развертывания нового приложения.

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

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

Скачка с препятствиями

Аутсорсинг разработки приложений часто порождает больше проблем, чем их программирование собственными силами — офшорные программисты в отличие от штатных гораздо менее до-ступны. Самым большим неудобством для нас оказалась разница во временных поясах, составившая 11 часов. Это означает, что телефонные переговоры приходилось проводить в нерабочее время, а в случае возникновения срочных вопросов, на решение их уходили целые сутки. Здесь, правда, имеется и оборотная сторона. Вы знаете, сколько проектов не удалось удержать в их бюджетных рамках и они не были выполнены в надлежащие сроки по причине того, что у разработчиков были еще и другие обязанности? А вот программиста на другом конце света просто так с места не сдернешь и не направишь на ликвидацию очередного аврала.

Вот что поможет вам избежать многих подводных камней при аутсорсинге:

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

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

• Оговоренные сроки доставки. Мы оставили их на усмотрение компании Patni Systems, поскольку нас интересовал главным образом тот объем работ, который она готова взять на себя, не беспокоясь о сроках. Поэтому мы описали его в самых общих чертах, а именно: “анализ, проектирование, код”. На вопрос специалистов Patni Systems о стандартах кодирования мы предоставили им свободу выбора, с тем чтобы потом посмотреть, что из этого выйдет. А вот вам следует направить исполнителю копию требований к стандартам кодирования и добиться, чтобы он в письменной форме согласился следовать им.

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

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

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

Доставка продукта

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

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

И наконец, вам следует обдумать то, как обеспечить поддержку проекта со своей стороны. Ваш персонал, в частности менеджер проекта, должен отдавать себе отчет в том, что ему не придется работать только с 9 ч до 17 ч. Индия находится “впереди” США на девять, а то и на все 13 часовых поясов. Нам приходилось отвечать на звонки и в 11 часов вечера и в пять утра. Сеансы конференц-связи проводились по вторникам и четвергам в 7 ч утра, что вполне терпимо, если знать об этом заранее.

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

Оттенки серого

Итак, можем ли мы рекомендовать вам использовать офшорных программистов? Ответ будет неоднозначным, подразумевающим множество всяких “если”...

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

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

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

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





  
6 '2005
СОДЕРЖАНИЕ

бизнес

• Аутсорсинг разработки ПО: опасения и выгоды

• Импортируем Java-код

инфраструктура

• Выбор коммутатора сети SAN

• Разберемся в стандартах на беспроводные сети

• Недорогие IP-системы хранения данных

• Пять слагаемых успеха PoE

информационные системы

• Изучаем передовой ИТ-опыт

• Перспективы развития технологий для call-центров

• Повышение отказоустойчивости сетевых приложений реального времени

сети связи

• IP-услуги в России

• Мир выбирает технологию TETRA

• Распределенная архитектура опорной сети мобильной связи

• Чистые каналы

• FMC и IMS — будущее телекоммуникаций?

кабельные системы

• Защита от воздействия молнии

• Маркирование кабельных систем — дело полезное

защита данных

• Тестируем системы предотвращения вторжений уровня сети

новые продукты

• Кабельные лотки «Эвантэр»; Кабельная система EuroLAN 6; ИБП Powerware 9390 компании Eaton; Новые четырехпроцессорные серверы компании R-Style Computers; Axxmetro — для SDH и Ethernet


• Калейдоскоп



 Copyright © 1997-2007 ООО "Сети и Системы Связи". Тел. (495) 234-53-21. Факс (495) 974-7110. вверх