Тварь ли я дрожащая или право имею? о трудностях самоопределения

предыдущие главы Книги Откровений Капитана Очевидности неожиданно стали поводом для мук душевных подрастающего поколения, а именно - кто виноват и что делать? Леймотив всего этого мучения крутится вокруг “я хочу Творить Нетленку”, что подразумевает некоторое ЧСВ вида “вы все быдлокодеры на крестах/жабе/пхп/рубипетоне, а Я Знаю Хаскель”. Так вот, дорогие читатели уютненького, я буду Вещать™ о классификации известных мне типов украинского (и частично - белоруссого) софтостроя.

Итак, тора гие мои знатоки целых расширений Галуа, вы устали сидеть с папой-мамой в одной квартире, вам хочется Славы, Признания - но в первую очередь вам хочется банально Бабла (чтобы клеить танчики, или просыпаться утром с незнакомой телкой и думать - а не царев ли я, или например сидя в домике под Минском подкуривать от них косяк с дурью на камеру, вызывая очередной щитсторм гуманитарных журналистов в бай-арии) - да мало ли зачем. По каким-то своим причинам вы презрительно отвергли разные позывы написать новый правильный Microsoft Office или сделать очередной дистрибутив болгенос - и пошли смотреть объявления о найме. Здесь начинается фигура первая, внезапная. Оказывается, на одного сферического программиста случается N сферических вакансий, причем N сильно больше 1. Далее, ваш сосед Вася, которого вы считали лохом за его пристрастие к EJB - внезапно уже тимлид в EPAM-е, в свои 21.5 года-то. Тут у многих срывает башню в ключе “я всем нужен, я могу выбирать”, и это бустит ЧСВ до невероятных значений, причем со старта.

И вот вы такой сидите с пачкой вакансий в инбоксе, рекрутерши готовы на почти все что угодно за акцепнутый офер, но что-то оно все не то. Предложения какие-то странные. Никто почему-то не интересуется Галуа, а в основном пытают за спринговый хибернейт. Ну или там парное программирование и “напишите мне тест несуществующего интерфейса для высосанной из пальца задачи из книжки ‘Бухгалтерия для имбецилов за 21 укол’”. Тут наступает фигура вторая - туманная. Вроде как и вакансий дохера, и кажется даже платят больше чем слесарю 6-го разряда на МКС. Но - не то. Не Галуа.

Что ж так?

Ответ, как водится, стоит поискать в том, как именно работает та или иная контора, куда вы хотите идтить в интервью. А вариантов тут масса, остановлюсь на наиболее известных.

Бодишоп

. Пожалуй, самое распространенное явление во всем пространстве постсовка. Уже в самом названии заключена мудрость поколений кастового общества - “магазин тел”. Телами, мой тора гой друк, там принято называть вот собственно программистов, которые ваяют нетленку лячкают говнокод конкретно указанному дяде Арчи из асашай, или дяде Тилю из голландии, или похуй кому, абы платили. Форма интеллектуальной проституции. Компания выступает в роли такого себе сутенера, который смотрит чтоб клиент не сильно бил девочек, платил вовремя и придумывал другие, более дорогие извращенные способы коитуса. Доход компании заключается в разнице между цифрами A и B, где А - рейт, выставляемый заказчикам. А B - рейт, который платится программистам. Соответственно основное правило бодишопа (да впрочем и любого бизнеса, основанного на эксплуатации человека человеком) - максимизирование А и минимизирование B. А отсюда следует парадоксальный, но неоднократно проверенный многими конторами вывод (и я имел “счастье” убедитсья в этом) - наиболее выгоден программист, которого можно заказчику продать как сеньора с рейтом например 100 в час, а платить ему как миддложуниору - 10 в час. И вот на эти 9% и жить. Особенно ярко это все проявляется в небольших местечковых конторках численностью в человек 10-15, из которых есть 2-3 нормальных пацана, и остальные - постстуденты, неприкаянные вечные программисты HelloWorld - и другая массовка. Там нет никакого Галуа, как правило.

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

Нетрудно понять, что в целом бодишопу (особенно если они сидят на елансах, одесках и прочих биржах неквалифицированного труда) нужнее всего люди, способные взяться за любой проект. Вот буквально - любой. Потому что если Васю можно будет заменить Петей, а Петю - Колей, а Колю - Васей, без ущерба производству - то ни Вася, ни Коля, ни Петя - рыпаться не будут, особенно если это их Последний Шанс™ Чтобы отобрать и вырастить таких персонажей, вводится так называемая “матричная” практика. Это когда сегодня Вася работает над проектом А, а завтра - над проектом Б, в то время как сегодня Петя работает над проектом Б сегодня, и будет работать над проектом А завтра. Пример конечно слегка утрирован (но только слегка), но идея об универсальном механике, который может чинит болид Формулы-1 и затем - тягач Булавы, а в случае чего еще может и заменить пилота того самого болида - ясна. Хорошо ли это для бизнеса? Безусловно, это еще товарищ Сталин сказал про “незаменимых нет”. Хорошо ли это для программиста? Не все так однозначно. Если вы - постстудент, который знает чуть меньше чем ничего - то такая контора для вас идеальное место попробовать все и сразу, причем часто в экстремальных условиях - вас кинут на продакшн и поставят дедлайн. После того как вы выясните, что HTML/CSS не айс, хотя ничего особо сложного там и нет, а вот PHP нравится больше - вот тут начнутся когнитивные диссонансы.

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

Вообще, если вы действительно хотите начать как все с нуля - то стОит выбирать бодишоп побольше, потому как там

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

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

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

Какой там карьерный рост?

Как правило, есть два пути

  • джуниор-мидл-сеньор-тимлид-манагер-ресурсманагер-проджектманагер-программанагер ну и так далее. То есть вкратце “из грязи в князи”. Причем неважно - есть ли у вас склонность к манагерству, хотите больше бабла - пойдете в туда.
  • второй путь - это вгрызться в глубину сибирских руд, понять ходы мозга заказчика и проникнуться самой мякоткой проекта, чтобы заказчик сказал - Вася охуенен, без Васи жизни нет. Если вы это освоите - то все, пока заказчик жив - у вас все хорошо. В перспективе вы можете валить из бодишопа и организовывать свой собственный, с преферансом и гимназистками. Или убалтывать заказчика на онсайт и релокацию в теплые края. В бодишопе с вами уже ничего не сделают - вы ключевая фигура на проекте, вы можете посылать всех нахуй и открывать любые двери с ноги (ну, в пределах разумного), набирать себе команды и выбирать методологии. Минус - вы досконально знаете все о бизнесе заказчика, а это уйма информации, которая практически бесполезна при переходе на другой проект или другую работу. Ну не скажете же вы, что 5 лет пилили OTF-фреймворк, который вне конторы Х нахуй никому не упал, правда? Где ваши доказательства?

Как туда отправлять резюме и что ожидать на интервью? Короткий ответ - хуй его знает. Все зависит от степени упоротости заказчиков, от менеджмента. Но стоит присмотреться к требованиям по стеку технологий на адекватность. Например если там ассемблер для x86 и JVM - то что-то тут не так. Или наоборот, так. Также есть ДОУ, где можно проникнуться и приобщиться.

Аффилиированные конторы, или прямой консалтинг

Вкратце - заказчик Адам из Сан-Франциско понял, что он может выгнать своего программиста на мороз и платить половину его зарплаты команде из 10 человек в Украине, причем в Украине все будут счастливы. Связываться с бодишопом из-за маржи - ему невыгодно, поэтому нанимается команда под проект и херачит. Как правило, онсайт есть какой-то Богдан, который умеет коммуницировать как с командой, так и с Адамом.

В неявном виде такие аффилиированные конторы присутствуют в составе любого бодишопа, поэтому все, что написано выше - относится и к данному случаю. Особенностями является

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

в качестве плюшек

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

в качестве карьерного роста

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

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

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