ЭПИЦЕНТРЫ

Питер Коффи    

Питер Коффи

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

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

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

Комментируя проблему поддержания уровня квалификации, я писал: "В докладе отмечается, что на протяжении последних 30 лет Индия предпринимает согласованные усилия для повышения качества подготовки программистов в университетах. В результате там готовят специалистов, допускающих гораздо меньше ошибок в исходных текстах, чем их коллеги из США".

В ответ я получил массу писем с вежливыми (как правило) вариациями на тему "Неужели?".

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

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

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

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

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

В ответ на мой запрос "software "defect rate" india programmers" поисковая машина Google уже во второй строке выдала ссылку на доклад, опубликованный всего лишь в июне прошлого года группой ученых из Массачусетского технологического института, Гарвардского и Питсбургского университетов, компании Hewlett-Packard.

Изучив свыше 100 проектов, созданных программистами в Индии, Японии, США, а также в Европе и других регионах, составители доклада рассчитали относительную частоту ошибок (количество ошибок, выявляемых в течение первого года, на тысячу строк исходного текста). Среднемировой показатель при этом оказался равным 3%, что соответствует трем ошибкам на 100 тыс. строк. А вот по отдельным регионам картина оказалась весьма интересной. В Индии этот показатель превысил среднее значение и составил 3,3%, тогда как в США остался на среднемировом уровне - всего 3%. Европа и пр. продемонстрировали 5%, а Япония дала на удивление отличный результат - всего 0,5%.

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

С редактором Питером Коффи можно связаться по адресу: peter_coffee@ziffdavis.com.

Версия для печати