Для начала давайте кратко разберем, какие типы компаний существуют на рынке IT, то есть каким именно организациям необходимы хорошие IT-специалисты (которых вы, по результатам прочтения этой книги, будете подбирать еще быстрее, увереннее и качественнее).
IT-компании условно можно разделить по следующим типам деятельности:
Также существуют компании-вендоры, IT-консалтинг и IT-отделы в организациях, напрямую не связанных с разработкой ПО.
Мы рассмотрим их деятельность с акцентом на то, как их воспринимают кандидаты: какие плюсы и минусы они видят в трудоустройстве в организацию того или иного типа и вида.
Продуктовая/собственная разработка. Компании, занимающиеся этим видом деятельности, разрабатывают и продают свой продукт. Среди классических примеров — всем известные Microsoft, «Лаборатория Касперского», Google, «Яндекс», Cian, Avito и др. Такие организации или развивают один продукт, или реализуют сразу несколько проектов — главное, что все задачи по разработке, маркетингу, исследованию рынков и ценообразованию фирма решает сама.
Можно выделить два подтипа продуктовых компаний:
В первом случае компания производит собственный IT-продукт — некий софт, который продается и является основным источником прибыли: операционные системы, онлайн-бухгалтерия, антивирусы и т.д.
Во втором — компания изначально занимается офлайн-бизнесом, например розничными продажами, доставкой товаров, финансовыми операциями, строительством. Ее программные продукты идут не на продажу, а обеспечивают собственные нужды организации: для розничной продажи, например, нужен интернет-магазин, и т.д.
Какие преимущества видят кандидаты в продуктовых компаниях? В первую очередь стабильность и перспективы роста (пусть не быстрого, но планомерного). Однажды устроившись в «Яндекс», можно провести там всю жизнь, постепенно развиваясь в своей специализации или осваивая смежные профессии.
В крупных продуктовых компаниях есть время и средства, чтобы отлаживать бизнес-процессы, повышать квалификацию персонала, обучать и мотивировать сотрудников. Отсюда — комфорт и устойчивое ощущение, что «в Багдаде все спокойно». Но давайте не будем идеализировать большие продуктовые команды: у них достаточно времени, чтобы выстроить процессы, но вы же не думаете, что все компании реально выстраивают процессы? Нет, разумеется. И среди больших продуктовых компаний есть те, которые так и не внедрили изменения, уже считающиеся условной нормой на рынке. Так что тут все всегда зависит от конкретной компании.
С психологической точки зрения для разработчиков такие компании привлекательны тем, что они видят результат своих трудов, а значит, есть чувство моральной удовлетворенности. Часто программисты уходят из заказной разработки в продуктовые фирмы именно по этой причине: «Я хочу гордиться тем, что делаю».
Кроме того, в продуктовых компаниях у сотрудников часто есть больше возможностей влиять на этот продукт, то есть над ними нет заказчика, который просто диктует условия, а сотрудник становится тупым исполнителем.
Но, бесспорно, есть и весомые минусы. Самый главный из них — скука. Порой работа внутри продуктовой компании не отличается разнообразием: программист может несколько лет заниматься одним и тем же продуктом или модулем. Или работать в поддержке старых продуктов: бесконечно «фиксить баги» — исправлять ошибки, разрабатывать дополнительные внутренние инструменты. Такая монотонная деятельность без дополнительных интересных задач может деморализовывать. Ну и в конце концов, если компания крупная, то она может обрасти бюрократией, от которой будут мухи дохнуть.
Заказная разработка — это аутсорсинговые или сервисные организации, которые, как и следует из их названия, разрабатывают программное обеспечение под заказ для других фирм. Компании передают определенные бизнес-процессы или производственные функции на аутсорс, а фирмы-аутсорсеры «продают» им собственных специалистов в качестве рабочей силы. Примеры таких компаний: ICL, SimbirSoft, «ЛАНИТ», «Ай-Теко» и др.
В каких случаях для бизнеса актуален именно такой вид сотрудничества? Есть несколько характерных ситуаций, при которых, как правило, обращаются к аутсорсерам:
Какие плюсы существуют в аутсорсинговых компаниях? Здесь потенциального сотрудника ждет большое разнообразие проектов, что позволяет быстро повысить свою квалификацию и стать многопрофильным специалистом. У разработчиков нет необходимости думать о конечном пользователе: они ориентируются на ТЗ заказчика, а не на переменчивые вкусы потенциальных покупателей софта.
В этот вид компаний легче войти при наличии небольшого опыта, и, как уже было сказано выше, есть возможность быстро расти по мере увеличения клиентов компании.
Однако большое количество различных задач имеет обратную сторону: нередко разработчики отзываются об аутсорс-компаниях как о конвейерах. Ты меняешь несколько проектов за год, делаешь какую-то «свою» часть работ — и не видишь конечного результата. Это негативно влияет на мотивацию, и многие решаются по этой причине менять работу.
Кроме того, в аутсорсе очень сложно общаться с заказчиком. Далеко не всегда от лица компании с разработчиками коммуницирует технически грамотный специалист, и тогда общение происходит в прямом смысле слова на разных языках — с соответствующими печальными результатами работ. Или же заказчик бывает таким упертым и негибким (или чересчур гибким), что подрядчикам приходится пилить уже неактуальный, но согласованный в ТЗ функционал или регулярно менять курс, не понимая, с чем это связано.
Плюс к этому есть аутсорсинговые компании, которые работают по ТЗ заказчика, поддерживая legacy-код — то есть систему, которая была написана кем-то раньше (возможно, на устаревшем языке программирования). В обиходе программистов такой вид деятельности называется «работой на галерах». Представьте, вы сталкиваетесь с некоей программной сущностью, которую написал кто-то — возможно, не очень талантливый и одаренный — много лет назад. Это своеобразный программный лабиринт, в котором даже сориентироваться не всегда возможно, не говоря уже о том, чтобы поддерживать его в порядке. Поэтому есть компании, которые полностью отказываются от такой деятельности и берутся за разработку только с нуля. В таком случае уровень «страдания на галерах» можно значительно снизить.
Кстати, по-хорошему разработчики должны покрывать свой код документацией, которая объясняет, что делает тот или иной кусок кода. Тогда новому сотруднику будет понятно, что для чего нужно. Но в случае с legacy такой документации зачастую нет. Вместо нее — костыли, то есть временные решения каких-то проблем: изначально хотели сделать всё хорошо и грамотно, но разработка требовала слишком много времени — и от глобальной переделки отказались. Что-то вроде заклеенного изолентой шлема живущего на Марсе Мэтта Деймона в фильме «Марсианин».
Вендор — это компания, разрабатывающая технологии под собственным брендом. На базе их разработок другие организации могут создавать свои продукты. К такому виду компаний относятся Intel, IBM, Oracle, а наиболее известный российский вендор — фирма «1С».
С точки зрения трудоустройства вендоры очень похожи на продуктовые компании: здесь так же стабильно и спокойно, но иногда скучновато.
IT-консалтинг — эти компании занимаются внедрением уже готового программного обеспечения. Организации, не связанные с разработкой ПО, но нуждающиеся в нем для обеспечения своих нужд, нанимают консалтинговые компании, чтобы те выбрали, предоставили и внедрили им коробочные решения для сопровождения бизнес-процессов.
Работа консалтинговой компании состоит из следующих этапов:
Примеры организаций, которые успешно занимаются консалтингом на российском рынке: «ЛАНИТ», «Ай-Теко», «Компьюлинк», «Террасофт», «ЭкоСофт».
В IT-консалтинге есть несколько неоспоримых преимуществ. В частности, финансовая мотивация в этом секторе порой выше среднего. А удовлетворенность работой высокая: вы чувствуете свою сопричастность к развитию крупных, известных компаний — это настоящая помощь, которая не просто оплачивается. За нее искренне благодарят! При хорошем развитии событий, конечно же.
Что же может пойти не так? Консалтинг — это работа с людьми: представители заказчика могут быть некомпетентны в технологических вопросах. Из-за этого возникают разногласия, требования в процессе работы могут многократно меняться, сроки внедрения — откладываться. Это важный стрессообразующий фактор, который не всегда окупается даже самыми высокими зарплатами.
Наверно, важно также отметить, что консалтинг — понятие чуть более широкое, чем заказная разработка, потому что, помимо непосредственно разработки, консалтеры предоставляют инфраструктурные решения. Но четкого разделения на рынке чаще всего нет.
IT-отделы в компаниях. На сегодняшний день практически не осталось организаций, которым не нужны технологии. Поэтому в компаниях, не связанных с производством ПО, стали появляться IT-отделы, а в некоторых случаях даже дочерние IT-компании. Крупные подразделения разработки есть в банках, страховых фирмах, в организациях, занимающихся строительством и продажей недвижимости.
Преимущества работы в таких структурах обычно измеряются финансовой мотивацией, стабильностью компании и брендом работодателя.
Недостатки же похожи на те, с которыми сталкиваются сотрудники продуктовых компаний: однотипные задачи, постоянная доработка существующего софта, бюрократия, регламенты и фиксированный график (не всегда, разумеется, но бывает).
Чаще всего IT-специалисты хотят работать в продуктовых компаниях. Даже если там есть бюрократия и какие-то куски legacy-кода, все же причастности к продукту и возможностей для развития там зачастую больше. Но, безусловно, важно помнить, что все зависит от каждого конкретного человека. Некоторых, например, драйвит и хороший аутсорсер. А потому не делаем выводы за кандидата и задаем вопросы!