воскресенье, февраля 18, 2007

От искусства к индустрии, или Путь русского камикадзе.

Да простит меня Эдвард Йордон за заголовок, и все же: От чего у нас такие искусные программисты, и такая слабенькая индустрия ПО?

«Идем дорогой длинной, дорогой не прямой».


Как обычно на тему размышлений меня навело сообщение в форуме, на этот раз на Gotdotnet.ru “Командная разработка .net приложений.” Цитирую:

«Привет. Каким образом можно командно разрабатывать сложное приложение? Например используется multi-tier архитектура, то каким образом можно одновременно вносить изменения в программный код, скажем редактировать различные формы одно уровня представления несколькими людьми. Опыта такой разработки нет, почитал документацию по visualSourceSafe, но так и не понял, каким образом там поддерживается версионность.
Если не трудно, посоветуйте ПО, технологии, статьи. Спасибо.»

Дальше, во флейме, еще веселее. Оказывается, у них организация купила Microsoft Team Foundation Server (весьма дорогая, замечу, штуковина) и теперь никто не знает, что с ней делать.
В общем, сначала я посмеялся чуть не до слез. А потом до меня дошло, что ведь это проблема не только конкретного парня. Это проблема всей нашей отрасли.
Обратите внимание, автор вопроса вполне свободно оперирует такими понятиями, как «multi-tier архитектура» с одной стороны. А с другой стороны он совершенно беспомощен в вопросах касающихся организации процесса разработки. Сколько же у нас еще таких программистов, вполне на ты с последними технологиями, с блестящей математической и алгоритмической подготовкой, лабающих свой код, извините, на коленке. Вот представляете, какая силища пропадает! А руководителю даже в голову не пришло, что помимо закупки дорогостоящего TFS, в бюджет следовало заложить обучение людей работе с ним. Действительно, а зачем! Разобрались же они как то с multi-tier архитектурой, разбируться и с этим. Программисты у нас умные!

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

И что? Сегодня за своей спиной мы слышим стуки и крики – это следующие поколения русских программистов пробираются той же тернистой дорогой, и наступают на те же самые грабли, о которые когда-то набивали шишки мы. Многие скажут, красиво загнул, но неправда это. Сегодня уже все слышали о методологиях разработки, таких как RUP, MSF. XP, Agile и т.д., а некоторые их даже используют. Я сам был такого же мнения до недавнего времени. До тех пор пока не столкнулся с нормально поставленным процессом разработки в компании с CMM пятого уровня. После того, как прошел первый шок :), я стал по другому оценивать весь свой прежний опыт, равно как и опыт своих коллег. Загляните на форум посвященный работе и карьере на RSDN.ru, где народ делится, так сказать, производственными моментами: «можно ли править чужой код», «нужны ли архитекторы», «сдавали ли вы проект в срок», «как общаться с заказчиком». «как управлять программистами» (недавний опус на эту тему ), «как проходить собеседование». Многие темы и обсуждения свидетельствует о том, что большинство людей просто никогда в жизни не видели нормального поставленного процесса разработки, а вот негативного опыта имеют в достатке. Отсюда и все проблемы.
Но все же, за последние 10 лет в этой области прогресс на лицо. О чем свидетельствует хотя бы тот факт, что я работаю на компанию с CMM 5 уровня и рассуждаю сейчас на эту тему. И тут возникает вопрос:

Если вы такие умные, то почему такие бедные?



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

Порой мне кажется, что ничего не изменилось с тех времен, когда Леша Пажитнов написал свой Тетрис. С тех пор, тетрис разошелся по всему миру, а Россия, вместо экспорта программ, технологий и сервисов занялась массовым экспортом мозгов с силиконовую долину. Пресловутый «русский программист» стал узнаваемым брендом именно потому, что мы занимались экспортом мозгов. По своей сути процесс этот мало чем отличается от экспорта нефти, за исключением того, что мозги – ресурс отчасти возобновляемый. Вычерпали его еще явно не до дна. Несмотря на то, что темпы утечки мозгов в последние годы значительно снизились, до сих пор, крупнейшие корпорации, типа Microsoft, Samsung, etc., ежегодно устраивают выездные сессии в Москве по отбору и вывозу лучших из лучших. Тем временем внутренний рынок успешно заполнился западным программным продуктом, а отечественному разработчику достались только ниши обусловленные нашей национальной спецификой (типа бухгалтерского и банковского ПО). И все-таки рынок живет, дышит и развивается. Об этом говорит, например нешуточный кадровый голод, который испытывает отрасль уже не первый год. А это говорит о росте. Открываются R&D центры крупнейших западных компаний. Аутсорсы растут, как грибы после дождя. Код с комментариями на русском языке работает сейчас в Deutsche Bank и в Boeing, в Motorolla и в Intel. И пишут его (к счастью) теперь в Москве, Питере и Нижнем.

Массовый вывоз специалистов, воровство интеллектуальной собственности, как с нашей, так и с их стороны (Тетрис тому живой пример) были приметами первого, дикого этапа становления нашего IT рынка. Второй этап можно связать с массовым ростом сначала компаний офшорной разработки, а затем и R&D центров западных технологических компаний, а также с ростом рынка легального ПО и усилением борьбы с контрафактом. Мне кажется, не за горами третий этап. О его наступлении мы узнаем по массовому росту чисто Российских софтверных стартапов. Первоначально многие из них будут ориентированы на западный рынок, и возможно некоторые из них будут куплены крупными западными брендами. Внутренний рынок, наконец, подрастет до таких размеров, что позволит российским оффшорам работать не только на западных заказчиков но и на внутренних.
Может, будет и четвертый этап? Когда следующее поколение языков программирования, процессоров, или сетевых протоколов выйдут из стен Российских лабораторий и будут предложены мировому технологическому сообществу. Кто знает? Будем надеяться на лучшее, тенденция есть, мы ее видим. Иначе зачем все эти парни побеждают сейчас на программистских олимпиадах?

Комментариев нет: