Saturday, January 13, 2007

Preview Жизнь Программиста

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

Friday, January 12, 2007

Пятница №15 - Кто такие программисты

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

Кто такие программисты

Нас тьмы...

За последние 25 лет в России (думаю, аналогично и в Украине, Казахстане и других «советских» странах) появилось просто невероятное количество программистов. Со времен описанного Стругацкими уникального программиста-математика, который решал серьезные мировые задачи совместно с магами и кудесниками, прошло уже почти полвека, со времен первых PC и фидошников – лет 20, и теперь программист перестал вроде бы быть экзотикой и «живет» в практически каждой конторе.

Многие люди, работающие в ИТ, не любят слова «программист» и открещиваются от него, говоря: «мы (вы) – аналитики, архитекторы, кодеры, тестеры и т.д.». Что и говорить, слово «программист» дискредитировано его широким и несколько бездумным употреблением – программистами называют всех кто что-то делает связанное с компьютерами (чинит, настраивает, управляет). Но есть в этом обобщении и доля правды – практически каждый из нас прошел длинный путь и побывал и в роли сборщика компьютера (хотя бы своего!), и конечно же, совмещал в себе роли и аналитика и тестера и саппортера и сисадмина.

Конечно, не стоит искать что-то особенно хорошее в таком смешении обязанностей, которое происходило (да и часто происходит) в основном либо от неграмотности ИТ-боссов, либо от бедности работодателя. Просто приходили к тебе люди и говорили – «Надо решить эту задачу». И мы решали, не задумываясь о ролях, процессах и распределении обязанностей. Часто это было чертовски трудно, часто практически невозможно, и, хотя преодоление трудностей быстро надоедает, была в этом и известная доля романтики.

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

Имя? Звание? Где находятся ваши ракеты?!

И как прикажете называть 2 миллиона человек? ИТ-специалисты? Мне кажется, что название «программисты» именно в таком контексте, с целью самоидентификации все же лучше, чем ничего или набор из десятка терминов.

Армейские спрашивают «Ты где служил?», а мы спрашиваем «Ты кто?». Тем более нужно иметь какое-то название, что жизнь в ИТ продолжается гораздо длиннее стандартного армейского срока службы.

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

Ну и самое главное – распознавание термина «программист» остальными слоями населения практически 100%-ное. Да, неприятно, когда архитектора системы в 5 миллионов строк, который «на ты» с докторами в Оксфорде, его нефтяной босс представляет зарубежным партнерам «А это наш программист», но зато нет никаких проблем как объяснить подругам жены или даже ее бабушке, чем вы занимаетесь. В конце концов, с босса за это дело можно стрясти еще какой-нибудь скрытый бонус на обновление ментальных конфигураций отдела разработки или банально убедить купить новые ноутбуки всему отделу.

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

Программисты бывают разные, синие, белые, красные?

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

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


Продолжение следует...

Thursday, January 11, 2007

Добрые Инвесторы, Чужие деньги и Cыры

В последнее время очень много говорят, пишут и обсуждают про инвесторов и инвестирование в ИТ. На слуху у всех сделка Softkey и IBS, а Андрей Зотов на ITBlogs TV дал Михаилу Елашкину отличное интервью, которое и спровоцировало все нижеследующие рассуждения. Конечно, ведь когда видишь, как лидеры бизнеса что-то делают, вполне естественно захотеть «построиться» в очередь за ними и отхватить кусочек. Прямо mainstream?

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

Отходя от красивых литературных сравнений, зададимся простым вопросом – единственный ли путь для ИТ-предприятия развиваться это найти инвестора на определенном пути? Ок, с точки зрения консалтеров все выглядит замечательно: правильная exit strategy, увеличение стоимости компании, а далее IPO, взлет на NASDAQ и.... ух, нирвана.

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

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

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

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

Поэтому обычно ИТ-компания покупается вместе с ключевыми людьми и командой.. И одно дело, если команда участвует в «распиле» прибылей (в виде выплат или менее осязаемых морковок в виде stock options), а другое когда на ее плечи ложится тяжесть освоения инвестиционного бюджета – т.е. обучение и адаптация новых людей, документирование новых (или старых) бизнес-процессов.

Конечно, все это можно организовать, поднапрячься владельцу-организатору продаваемого бизнеса, мотивировать управленцев и даже программистов (если бизнес сильно зависит от технологий), но вот вопрос – это точно лучший выход?

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

Так вот – не получится ли, что применив ту же энергию, которую потребуется применить в случае привлечения инвестиций, можно добиться лучших (и, что немаловажно, единолично используемых) результатов? Может, нужда в абсолютно необходимых инвестициях может быть покрыта кредитами малому бизнесу или займом у бабушки (под ее квартиру на Остоженке)?

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

Да и продаваться в целом или по частям... Как это не по-нашему, а? Хата маленькая да моя?