22 830
02 сентября 2019 в 10:51
Источник: Александр Кунцевич. Фото: Влад Борисевич

«Аутсорс — это когда тебя отдают на растерзание клиенту». Разработчик ушел из аутсорса в продукт и не жалеет

Источник: Александр Кунцевич. Фото: Влад Борисевич

Александр Кунцевич в тринадцать лет поднял через BIOS частоту процессора на второй день после покупки компьютера — «железо» сгорело, а подросток понял, что электроника ему очень интересна. Так увлечение привело парня в IT: уже десять лет Александр работает программистом, а сейчас занимает должность руководителя команды дата-инженеров. Специалист успел сменить несколько аутсорс-компаний и впервые пришел в продуктовую фирму — Profitero. Александр видел обе бизнес-модели и теперь убежден, что продуктовая компания намного лучше аутсорсной.

Первый опыт, бесплатные баги и Ruby

— Первым языком программирования, с которым я познакомился, был Pascal. Потом начался Web: HTML/CSS, PHP, немножко Perl. Я не думал, что это занятие может быть прибыльным и перспективным, мне оно просто нравилось. Тогда еще не было повсеместного «войти в айти», да и деньги были другие: моя первая зарплата — $220.

Карьеру программиста я начинал в маленькой компании. Около двух лет писал на PHP сайты-визитки и небольшие интернет-магазины под CMS Bitrix. У компании был очень оригинальный подход к оплате: часы, потраченные на исправление багов, не учитывались! Сейчас вспоминаю это со смехом, но тогда я мог по факту отработать 200 часов за месяц, а зарплату получить за 150. Когда сменил работу, получил настоящий шок: «О господи, так за багфиксинг тоже платят!»

В 2010-м стал искать новое место работы: большой интересный проект на Bitrix не напишешь, а мне хотелось набраться опыта, поработать на каком-нибудь MVC-фреймворке. В одной компании пообещали, что я буду писать веб-приложения на Symfony. Я согласился: «Круто, выучу что-то интересное и перспективное!» Но в итоге меня посадили на поддержку старых проектов, написанных на собственной CMS компании.

Опыт все равно был отличный: я впервые поработал в компании с устоявшимися процессами и сильными разработчиками, мне пришлось изучить Linux, познакомиться с системой контроля версий — SVN. Но месяцев через пять я подумал: что толку сидеть на поддержке американских интернет-магазинов, сделанных на самописной CMS? Пошел увольняться — решил, что зарплата и так небольшая, а за те же деньги я найду что-то перспективнее.

Отпускать меня не захотели — может, видели, что хорошо обучаюсь. Вместо этого предложили перейти джуниором в Ruby-отдел. Дали месяц на обучение, я сделал тестовый проект под наблюдением «рубистов», а через две недели получил свою первую коммерческую задачу.

Переход с PHP на Ruby был очень радужным: мне нравился сам язык, нравился Ruby on Rails, нравилось то, как можно собрать нужный функционал из гемов. Плюс в Ruby-отделе работали очень клевые опытные ребята: у одного из них даже было около ста «коммитов» (внесение изменений. — Прим. Onliner) в сами «рельсы».

Вскоре я попал в крупный проект для российских риелторов и банков, на котором и получил свой первый серьезный опыт. Но проект закончился, а других интересных дел у компании не появилось. Люди начали активно уходить, особенно костяк Ruby-отдела. Я тоже стал ходить на собеседования и в итоге получил предложение от крупной аутсорс-компании. Пошел туда с удовольствием: местная Ruby-команда тогда была самой сильной в Беларуси.

Как работает «большой» аутсорс

— К тому времени мое понимание аутсорса было на уровне «в компанию приходит клиент, он что-то хочет сделать, и мы это делаем». Первый проект на новом месте вписывался в эту схему: мы делали навороченную ERP-систему по прямому заказу, работали цельной командой из четырех программистов, тестировщика и менеджера. А когда этот проект закрылся, ресурс-менеджер рассказал мне, что у каждого программиста в компании есть личная анкета «для клиентов», и предупредил, что мне нужно будет пройти несколько собеседований с заказчиками.

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

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

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

На третьем месте работы я прошел через десяток проектов. Трудился на ныне успешный нью-йоркский медицинский стартап, поработал на интересном проекте на D3.js — библиотеке для векторной графики в браузере. Получил серьезный опыт прохождения собеседований, общения с клиентами, здорово подтянул английский язык, повысил навык оценки проектов.

К концу я понимал, что способен пойти на удаленку. Вот только аутсорс мне к тому времени поднадоел. Я выгорел на частой смене мелких проектов, на сайтиках на три страницы, которые мы делали в ожидании крупного заказчика. Опыта нового не получаешь, еще и клиенты голову дурят за каждый час — работать стало откровенно неинтересно.

Чем аутсорс плох и чем хорош

— Больше всего в аутсорсе меня напрягала постоянная возня с отчетностью. Фиксировать время и писать отчеты приходилось сразу в нескольких системах: во внутренней, по которой наши аккаунт-менеджеры выставляли счета клиентам и считали зарплаты, и в системе заказчика, а иногда — даже в нескольких. Запутаешься, впишешь в одну из систем на два часа больше — сидишь и полчаса разбираешься, что пошло не так.

Еще одна вечная проблема — множество удаленных переговоров. Техзадания приходят сырыми, начинаешь их изучать — и видишь нестыковки. Списываешься с клиентом, обсуждаешь, ожидаешь решения, снова пишешь отчеты о каждом кусочке работы. Платят тебе за программирование, а фактически ты «подрабатываешь» и бизнес-аналитиком, и менеджером.

В аутсорсе слишком много зависит от проекта и от клиента. Бывали суперадекватные заказчики, которые дают достаточно времени, чтобы написать хороший код и полностью его вычистить. А другие проекты были настоящей каторгой: кривой legacy-код, отчеты в три системы, постоянные попытки срезать оценки, возня с трекингом времени, неизбежные переработки. Доходило до того, что ты уходишь в отпуск, а клиент спрашивает: «Слушай, а ты как, в отпуске работаешь?»

К тому же твой проект может в любой момент закрыться. Бывает, три месяца поработаешь — и опять новый клиент, собеседования, снова вникаешь в домен, в legacy-код, знакомишься с новой командой. Многие ребята уходили из-за постоянного стресса. Конечно, компания пыталась по возможности вмешиваться и защищать своих программистов от «сложных» клиентов, но иногда им не хватало реального контроля над тем, что происходило в проектах.

Один из самых значительных плюсов аутсорса — возможность удаленной работы. Если ты работаешь на проекте один, можно и по полгода в офис не приходить. Правда, лично я работать из дома не люблю: пробовал, но меня хватило только на две недели. Стирается граница между рабочим местом и домом, отвлекаешься на домашние дела и в итоге начинаешь работать в десять утра, а заканчиваешь в одиннадцать вечера. Еще один плюс аутсорса — можно ездить в командировки. Некоторые мои коллеги уезжали работать в Бостон на три месяца.

Я не жалею, что поработал в аутсорс-компаниях. Во-первых, я начинал в 2008 году — даже не знаю, какие продуктовые компании были тогда в Беларуси. Во-вторых, я был зеленым джуниором, и аутсорс стал для меня хорошей школой. На втором месте работы была потрясающая команда «рубистов» моего возраста. Я многому у них научился, мы до сих пор общаемся, многие из них — очень сильные программисты. Третья работа тоже пошла на пользу: я отполировал знания, научился хорошо оценивать время, активно поработал с клиентами, натренировался в прохождении интервью и, опять же, познакомился с многими хорошими специалистами. Но когда знакомый из Profitero позвал на собеседование, я долго не раздумывал: уже давно хотелось попробовать себя в продуктовой компании.

«За первый месяц не трекнул ни одного часа»

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

До перехода я знал только то, что компания занимается e-commerce-аналитикой, основанной на открытых данных в интернете. Про себя думал: «Парсеры, что ли, пишут?» Уже потом, когда влился, понял, как все упрощал. С одного только Amazon мы каждый день скачиваем терабайты данных. Логично, что такие процессы требуют и особого стиля программирования. Если запустишь свой скрипт на терабайтной базе и он упадет через восемь часов, ты не сможешь его отладить и воспроизвести ошибку. Нужно заранее думать про обработку всех сигналов и исключений, логировать каждое движение, сохранять текущие состояния — все для того, чтобы не терять серверное время. К тому же многие скрипты здесь исполняются в конкурентной среде, и это тоже нужно учитывать в коде.

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

Чем продукт интереснее аутсорса

— Существует стереотип, что в аутсорсе ты получаешь разнообразный технический опыт, а в продуктовой компании годами работаешь с одним и тем же кодом. Это неправда! За два года попробовал больше технологий, языков программирования и фреймворков, чем за восемь предыдущих лет аутсорса.

Как правило, на аутсорсе ты не можешь влиять на выбор инструмента — работаешь с тем, что выбирает клиент. Так и выходит, что проектов много, а внутри — одни и те же «рельсы», те же «гемы», только под разным соусом. А здесь — один продукт, зато огромный набор решений, интересные внутренние проекты. Каждый день что-то новое: инструменты, подходы, технологии. Это тебе не очередной сайтик на Ruby on Rails клепать. Правда, это разнообразие может быть проблемой для новичков. Продукт очень сложный, в нем много кода.

Мне кажется, продуктовая компания не подойдет людям, которые любят сидеть и ждать у моря погоды. В аутсорсе ты — просто рабочие руки на продажу, а не специалист, который решает проблемы клиента. Как правило, твой карьерный максимум — стать тимлидом или супервайзером на каком-то большом проекте. Потому многие застывают на одном месте и годами ничего не меняют.

В продуктовой компании есть настоящие карьерные перспективы: руководство заинтересовано в твоем росте, видит твою активность, и все зависит только от того, насколько ты сам готов быстро расти.

Ради чего стоит поработать в продуктовой компании

— Еще один момент, который мне очень нравится в продуктовой компании, — ощущение соучастия. В аутсорсе случается, что результаты твоего труда даже не выливаются в интернет.

Клепаешь какую-то социальную сеть и знаешь, что технически она и тысячу уникальных пользователей не выдержит, а всем плевать: и клиентам, и менеджерам. Такие проекты выглядят как распил денег, и меня это всегда задевало.

В случае с продуктом ежедневно вижу результат своей работы, читаю отзывы клиентов. Я понимаю, что делаю что-то полезное, и для меня это очень важный аспект.

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


— О том, что ушел из аутсорса, я ни капли не жалею. Считаю, что активным людям с хорошим опытом просто необходимо попробовать себя в продукте, да и для новичков это отличная возможность быстро наработать полезные навыки.

Читайте также:

Onliner рекомендует
14.0" 1920 x 1080 IPS, Intel Core i5 8265U 1600 МГц, 8 ГБ, SSD 256 ГБ, граф. адаптер: NVIDIA GeForce MX250 2 ГБ, Windows 10, цвет крышки серебристый
Нет в наличии
15.6" 1920 x 1080 TN+Film, Intel Core i5 8300H 2300 МГц, 8 ГБ, HDD 1000 ГБ, граф. адаптер: NVIDIA GeForce GTX 1050 4 ГБ, без ОС, цвет крышки черный

Библиотека Onliner: лучшие материалы и циклы статей

Наш канал в Telegram. Присоединяйтесь!

Быстрая связь с редакцией: читайте паблик-чат Onliner и пишите нам в Viber!

Перепечатка текста и фотографий Onliner без разрешения редакции запрещена. nak@onliner.by