Безработный из Сибири
Ступай на Запад, Иванушка
Российская подготовка дает качественные результаты
Высшее качество по низшей цене
Культурные различия и программирование
Чем меньше гласности, тем лучше
 
Заметки об американском программировании

В начале 90-х годов доктор Джордж Фуллер фон Боззэй к программистам предъявлял лишь два требования - высочайший интеллект и умеренные аппетиты в отношении заработной платы. Фон Боззэй намеревался создать небольшое устройство биологической обратной связи Neurodata, подключаемое к последовательному порту ПК.

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

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

Безработный из Сибири

У российских программистов три проблемы: безработица, малый размер локального рынка и нелегальное распространение ПО.

"Я работал в одном из учреждений, принадлежавших Министерству авиационной промышленности, - рассказывает Николай Бабинцев, 37-летний программист из санкт-петербургской компании Reksoft, занимающейся разработкой ПО. - Когда развалился Советский Союз, мне пришлось искать новую работу".

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

Между тем непрерывный рост числа западных компаний оставляет все меньше места российскому ПО и на локальном, и на внешнем рынках. По словам Леонида Малкова из компании ParaGraph International, три-четыре года назад российские компании продавали на Запад программного обеспечения на сумму 30 млн. долл., то теперь это число сократилось до 15 млн. долл.

До эмиграции в Канаду, сотрудник компании Corel Сергей Строганов пытался создать компанию, занимающуюся разработкой ПО. В начале 90-х годов вместе с коллегами из НИИ, где он работал, Строганов открыл фирму, которая просуществовала всего два года. "Мы не смогли добиться успеха из-за недостатка средств и фактического отсутствия программного рынка в России", - сказал Строганов.

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

"Пять лет назад в России было более 200 тыс. программистов, - считает Александр Прокин, руководитель агентства Dator. - Однако безработица сыграла свою роковую роль. Сегодня их всего 50-60 тысяч". По словам Прокина, лишь десять-двадцать российских компаний выпускают ПО для массового потребителя. Работают они в основном в областях, характерных для локального рынка, где конкуренция западных компаний невелика - выпускают бухгалтерские системы и продукты, связанные с русским языком, в частности словари. Около ста с небольшим компаний разрабатывают ПО на заказ (главным образом бухгалтерские программы и системы автоматизации офисной работы). Кроме того, существует 50-70 компаний, занимающихся системной интеграцией.

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

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

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

Ступай на Запад, Иванушка

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

"Сказать, сколько именно программистов сейчас нанято зарубежными компаниями, крайне затруднительно, но мы считаем, что не менее 25% от общего числа российских разработчиков", - предполагает Дмитрий Рудаков, директор по исследованиям и разработке компании Reksoft.

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

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

"Лишь 10% выпускников находят работу по специальности, а остальные идут торговать", - признается Егоров из Reksoft.

"Ситуация вокруг студентов, будущих программистов складывается безрадостная, - огорчается Сергей Лебедев, заканчивающий институт и работающий в Агропромбанке. - Многие вообще никогда не будут работать по специальности".

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

Файона Рочестер-Хеннеси из Corel рассказывает: "В 1994 году мы обратились в ряд агентств по трудоустройству, которые предоставили нам десять разработчиков из России и Болгарии. Семеро из них получили постоянную работу и занимались всеми нашими продуктами, от CorelDraw до CorelVideo. Мы были просто поражены широтой их познаний. В Канаде нелегко найти столь талантливых программистов. Конечно, нам далеко до солнечной перенаселенной Калифорнии. Но Оттава тоже является центром разработки высоких технологий, и за местных программистов ведется ожесточенная борьба".

Российская подготовка дает качественные результаты

Соотношение затраты/производительность для российских программистов выгодно отличает их от западных коллег.

"Русские очень легко обучаются", - сказал Арвинд Деогирикар, до недавнего времени работавший менеджером по маркетингу в представительстве компании Sun Microsystems в СНГ.

Sun открыла офис в России и заключает трудовые соглашения с местными специалистами через Московский центр SPARC-технологий.

"Это не эксплуатация дешевой рабочей силы - мы приглашаем способных программистов", - объясняет Деогирикар, проживший два года в Москве.

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

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

"Серьезные программы надо писать на Си++, - считает Александр Егоров, генеральный директор Reksoft. - Сколь бы широкое хождение ни имели CASE-средства высокого уровня и графические инструменты вроде Visual Basic, для создания программ все равно нужны программисты".

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

По словам недавних выпускников ВУЗов, российские программисты способны при необходимости быстро освоить новые языки программирования. Это связано с тем, что при обучении упор делается на основы разработки программ, а не на преподавание определенного языка.

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

"Русские с их образованием отлично подготовлены к изучению и пониманию быстроразвивающихся и перспективных областей, - утверждает Деогирикар. - К тому же они еще и хорошо адаптируются".

Высшее качество по низшей цене

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

"В США за 5 тыс. долл. в месяц вы сможете нанять одного человека. Здесь за эту же плату вы получите от пяти до семи программистов", - отмечает Чернин.

Для российского программиста хорошей считается зарплата в 12 тыс. долл. в год, хотя в зависимости от квалификации специалист может получать от 4000 до 24000 долл. в год.

"В начале 90-х годов обменный курс рубля был таков, что программисты из Новосибирска были готовы работать за 15 долл. в месяц, - говорит фон Боззэй. - Мы не хотели быть эксплуататорами и договорились об окладе, который их устраивал. Мы платили около 25 долл. в день за то, что в Калифорнии вполне могло стоить 200 долл. в час".

Культурные различия и программирование

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

Культурные различия также создавали определенные проблемы. После выпуска в 1993 году Neurodata на рынок, фон Боззэй продолжил поиск коммерческих применений MindDrive (созданной им технологии). Во время разработки игрового ПО для MindDrive разница в культурах проявилась особенно резко.

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

Чем меньше гласности, тем лучше

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

"Основная причина - собственная безопасность и интересы наших западных партнеров, которые не любят открыто заявлять о сотрудничестве с российскими производителями ПО", - отметил Александр Егоров. Компания Reksoft, куда входит 35 человек, работает по контракту с крупной западноевропейской телекоммуникационной группой, экспортирует системы управления гостиницами в западную Европу и разрабатывает системы управления производством для российского рынка.

Другая причина, толкающая на сокрытие информации, - нежелание иметь конфликты с организованной преступностью.

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

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

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

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

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

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

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


Заметки об американском программировании

Алексей Васильев

Проработав 20 лет в российском программировании, я попал в американскую программистскую компанию, и мне, конечно, было интересно посмотреть, как тут работают. И сравнить. Первые пару месяцев я радовался каждому новому свидетельству того, что в программистской технике я сильнее. Это могло, безусловно, относиться только к моей первой команде, но постепенно стало выглядеть как общий закон. Я всегда считал себя неплохим программистом, но чтоб настолько... Не говоря уж о "computer science". Если им, беднягам, нужна была компрессия, шифровка, картография или машгеометрия, они плелись ко мне, сдаваться большевикам... Догадываюсь, впрочем, что и тут есть классные "технари" и "теоретики". Это очевидно из общих соображений - здесь тьма всего напахана, можно видеть высокий класс во многих текстах, опубликованных в книгах и т.п. Но пока речь пойдет о "типичном" американском программисте.

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

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

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

Из работающих на фирме лишь 20-30% на ней числятся, это employees - служащие. Остальные - консультанты, они служащие других фирм, их как бы сдали внаем. Примечательна их высокая текучесть и полная к ним бесцеремонность со стороны основной фирмы. Некомпетентность или просто отсутствие работы - я сразу уволен. Консультант тоже не склонен со мной возиться, если я оказался "high maintanance guy". Это не трагедия, я могу найти лучшую работу или, почувствовав, что без меня им никак, также бесцеремонно сказать: "Деньги на бочку или уйду". Однако люди с рабочей визой, данной на проект, без грин-карты, которых фирма нашла в Индии или Китае и "импортировала", оказываются в бесправном положении. Они вынуждены ладить с хозяином любой ценой. Консультант получает более высокую зарплату, чем служащий, даже с вычетом того, что забирает фирма. Часто если консультант "хороший парень", т.е. у него высокая самомотивация и очевидно, что его не надо будет погонять, то ему могут предложить перейти в служащие. Это означает падение в зарплате, но зато и почти полную безопасность и существенные "бенефиты": 4-х дневная неделя, пенсионный план, отпуск... Фирме это выгодно, и руководство часто нажимает, повелевая избавляться от консультантов. Но каждый понимает, что использование консультантов дает свободу в управлении кадрами и повышает гибкость.

Вся работа проводится бригадами. Как и везде, они организованы вокруг "задач", например, подсистемам, либо же по проектам, или по этапам в проектном цикле (планирование - разработка - тестирование - обслуживание. Сбыт не берем). Еще вариант - по потокам управленческих данных. Бригада имеет лидера, как правило, из служащих. Хотя это начальник, или, скорее, координатор, часто он получает меньше всех в бригаде. Так же часто он уже и не программист. Невозможно кодировать, если надо отвечать на 40-100 (и больше!) электронных писем в день. В эту ловушку немедленно и неизбежно попадает любой "координирующий" человек. Плюс совещания, на которых высший слой менеджеров решает, что надо делать.

Оттуда лидер приносит в клюве свежие ЦУ, собирает совещание команды и начинает планировать. Обсуждение довольно свободное, добиваться консенсуса не требуется. Если нет нависающего крайнего срока, применяется приоритетное планирование, т.е. говорят, что эта задача имеет высший приоритет, когда она стоит - делаем вот эту и т.д. Иногда говорят: "Вот ты трать на эту работу 2 часа в день". Если крайний срок есть, используется довольно мелочное планирование для каждого по дням и даже часам, хотя контроля за соблюдением я что-то не видел. Если крайний срок горит, все сидят до упора. Действует принцип перегрузки: все всегда должны быть заняты и "не успевать". Только для лидера, в виде исключения, допустима несанкционированная деятельность. Почему это так? Высшее звено менеджеров владеет деньгами вполне реально, у них есть бюджет и они его тратят вполне бесконтрольно, до поры до времени, пока им не отчитываться. За работой неважно, служащий я или консультант, я списываю свое время на те или иные проекты, на счет которых есть обширная классификация, т.е. на чей-то бюджет, указывая и "вид деятельности". ВСЕ время должно быть куда-то списано... Тот менеджер, чей это проект, должен подписаться за мои расходы. Может и не подписаться, и лучше до этого не доводить. Где вовлечены деньги, ошибки не допускаются. Дисциплина, "дедикейшн", "мотивейшн"... Страшновато?

Конечно, не все и не всегда происходит так. Сильные специалисты могут выбирать, "чем бы сегодня заняться", к ним стоит длинная очередь задач, на все вкусы... Кому не спишут, тот рад будет...

Хочу отметить, что высший слой менеджеров технически уже давно "clueless" (без понятия), они это сознают и никто не видит в такой ситуации недостатка. Их сила (или отсутствие таковой) в связи с заказчиками, от которых приходят деньги, и в видении будущего (чем будем платить людям через два года?). Средний слой, лидеры групп, должны быть технически сильны, им не дают все забыть, посылая подучиваться. Этим людям положено знать "как" и "почем", но не "что". Функции не смешиваются, чтобы не допускать кадровых передвижек. Редко когда техническое решение навязывают сверху. Если это происходит, значит, решение было навязано заказчиком. Или что начальник дурачок. И ему скоро конец.

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

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

Полностью заметки Алексея Васильева публикуются в журнале "Открытые Системы", #5 1996