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