Как программисту найти компанию мечты?
Где вам лучше работать — в стартапе, компании, которая создает софт для себя, или в команде, специализирующейся на разработке для сторонних организаций?
5К открытий5К показов
Рассказывает Вячеслав Муханов, .NET Developer в DD Planet
В начале карьеры далеко не каждый программист понимает, какой формат работы ему подходит. В результате он часто меняет места работы, пока не находит идеальную компанию. Куда и почему лучше идти работать — в небольшой стартап, в компанию, которая создает софт для себя, или в команду, специализирующуюся на разработке для сторонних организаций?
Найти идеальные условия, в которых бы хотелось работать изо дня в день, — главная задача программиста. Чтобы понять, какая обстановка вам ближе, рассмотрим несколько распространённых бизнес-стратегий.
Небольшие группы людей, которые работают над собственным проектом
Обычно команды стартапов состоят из руководителей и менеджеров по продажам. При этом на проекте обязательно есть один или два технически грамотных специалиста или даже программиста, которые отвечают за общую организацию разработки продукта и распределяют задачи между привлечёнными фрилансерами.
Если программиста берут в команду на фултайм, значит его оценивают, как важный актив. От него будут ждать полного погружения в проект и большой отдачи. Соглашаясь на такой формат работы, специалист должен быть готов к тому, что общий результат будет зависеть от его умения «сколотить команду» и заставить её трудиться. Фрилансеры обычно слабо организованы и не представляют себе, как выстроен целостный процесс разработки продукта. Их нужно постоянно контролировать: формулировать задачи, устанавливать сроки, корректировать действия.
Фултайм-разработчик в стартапе выполняет задачи, связанные с построением архитектуры ПО, а также занимается технической реализацией идей руководства и менеджеров по продажам. Это прекрасная возможность развить потенциал IT-специалиста. Особенно, если он уже приобрёл достаточный опыт работы в профессии и горит желанием создавать новый продукт. Работа идеально подойдёт программисту, которому нравится общение не только с «коллегами по цеху», но и с менеджерами. Это поможет развить управленческие навыки.
Главный плюс таких команд в том, что здесь обычно приветствуют внедрение новых подходов, технологий, языков разработки и фреймворков. Можно экспериментировать и учиться, развивать навыки оперативного решения нестандартных задач.
Звучит заманчиво, однако статистика неумолима: многие стартапы быстро исчезают. Команда растрачивает инвестиции, но так и не находит экономически эффективного применения своему продукту. Программисту нужно быть готовым к нестабильности: частой смене курса, нерегулярной оплате труда. А главное, понимать, что реальные пользователи могут никогда не увидеть проект, в который вложено столько сил и ресурсов. Пожалуй, это основной недостаток стартапов.
Компании, которые делают проекты на заказ
Иногда стартапы окончательно разочаровываются в своей бизнес-идее, но, сохранив костяк персонала и получив хороший опыт разработки, начинают брать проекты на заказ. Появляется стабильное финансирование, формируется более-менее постоянный коллектив. Но и здесь не всё гладко. Рынок диктует свои условия: почти всем клиентам полностью готовый продукт нужен «ещё вчера». К тому же работа с заказчиками всегда стрессовая: придётся запастись терпением, научиться обосновывать свою позицию, работать с возражениями.
Для программиста начинается рутина. Сегодня он занят своим проектом, а завтра всеми силами пытается помочь коллегам, которые не успевают сдать продукт в срок. Ну а в редкие свободные минуты приходится заниматься оценкой временных затрат на очередной потенциальный проект и работать не с кодом, а с таблицами Excel. Новые технологии приветствуются, только если они помогают сократить объём рутины и автоматизировать стандартные процессы. Посидеть и обдумать эффективность кода получается редко. Перфекционистам в такой обстановке придётся нелегко.
И всё же есть свои плюсы: программист научится делать всё. Конечно, поначалу будет тяжело переключаться с бэкенда на фронтэнд, а в перерывах проектировать базы данных. Зато появится шанс сделать наработки на будущее — накопить множество шаблонов проектов-заготовок под любые задачи. Ещё один плюс: работая в таком ритме, придётся постоянно следить за развитием актуальных языков и фреймворков.
Компании, которые работают над собственным экономически успешным проектом
Чаще всего такой продукт создаётся годами. Закономерно, что компания-разработчик накапливает огромный legacy-код своего продукта — неповоротливый и скучный, но стабильный и предсказуемый.
Программисту не придётся делать что-то в спешке: все задачи — глубокие, на внимание. Процессы давно отлажены. Нужно лишь кропотливо внедрять интеллектуальную функциональность, улучшать производительность, заниматься масштабированием продукта. Запускать тесты и продумывать мониторинг. Именно здесь разработчику пригодятся фундаментальные знания алгоритмов и математики. Будет лучше досконально изучить какое-то одно направление или фреймворк и использовать его максимально эффективно.
Работая над живым и масштабным проектом с тысячами пользователей, можно приобрести уникальный опыт. Например, научиться создавать алгоритмы машинного обучения или качественно анализировать Big Data. Это прекрасный фундамент для успешной и долгосрочной карьеры.
Наконец, это оптимальный вариант для интроверта: не нужно отвечать на внезапные вопросы клиентов и менеджеров. Текучки персонала в таких компаниях почти нет, и коллеги могут стать «второй семьёй».
Компании, которые работают над собственными проектами и параллельно делают работы на заказ
Компания, успешно развивающая собственный крупный продукт, может похвастаться опытными руководителями, грамотными исполнителями и мощной технологической базой. Это позволяет бизнесу расширяться и брать в разработку сторонние проекты. Чаще всего такую бизнес-стратегию выбирает тот, кто хочет снизить риски за счёт диверсификации.
Для компании внешние проекты — прекрасная тестовая площадка. Здесь можно «обкатать» новые технологии, а затем внедрить их в собственный продукт. Для программистов клиентские заказы — возможность периодически переключаться с поддержки основного проекта на разработку нового.
Проекты, которые нужно разрабатывать «с нуля», привлекают в штат молодых разработчиков и помогают опытным сотрудникам выйти за рамки привычных технологий, освоить что-то новое.
В компании, которая специализируется на внешней и внутренней разработке, раскрыть свой потенциал сможет и новичок, и профессионал. Ведь у программиста всегда есть возможность заняться тем, что ему интересно. И для этого вовсе не обязательно менять место работы.
Вместо заключения
Задумываясь о трудоустройстве, честно ответьте себе на вопрос, какой путь вам ближе: участие в стартапе, многозадачность и постоянная динамика или стабильная команда и работа над фундаментальными задачами, анализ больших данных, поддержка проектов с историей и возможность стать высококвалифицированным специалистом?
Идеальный вариант, когда темп и подход компании сочетаются с темпераментом программиста и его представлениями об идеальной организации процесса разработки.
5К открытий5К показов