Стажер, тестировщик, разработчик – как устроена команда профессиональной web-студии

Студию по разработке web и мобильных предложений многие представляют собой как команду программистов, сидящих за ноутбуками в модном опенспейсе. Но на самом деле web-студия, по крайней мере та, что способна делать не только лендинги, но и сложные программы вроде торговых ботов и CRM-систем, объединяет в себе самых разных профессионалов. Об этом рассказывают совладельцы web-студии «Ананас» из Екатеринбурга Евгений Гавриляк и Егор Таланцев.

Команда web-студии "Ананас"
Команда web-студии "Ананас"

Стажеры

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

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

Евгений Гавриляк

Задачи мы даем настоящие, связанные с каким-либо клиентским проектом. Только они не горящие. Стажер спокойно работает в одном проекте с другими коллегами, общается, наблюдает за их действиями, смотрит их код. Он понимает, что общий успех зависит и от его усилий, видит живой результат своего труда. Одновременно он проникается нашей атмосферой – все это мотивирует остаться и развиваться вместе с нами. К тому же мы разрешаем определенную свободу действий: хочешь – работай удаленно, хочешь – сиди рядом с коллегой, а не в своем отделе, можешь в перерыв или в конце дня сыграть в PlayStation. Лишь бы был результат.

Егор Таланцев
Стажер, тестировщик, разработчик – как устроена команда профессиональной web-студии

Разработчики

Разработчики составляют ядро команды web-студии. Они подразделяются на две группы – одна отвечает за создание внешнего интерфейса сайта или мобильного предложения (frontend- разработка), вторая – за программно-аппаратную часть, скрытую от пользователя (backend – разработка). Внутри каждая из этих групп делится на три профессиональных уровня: джуниор (junior), миддл (middle) и сеньор (senior).

Трое наших программистов – начинающие разработчики. Они на уровне Junior и еще только получают необходимый опыт. Но не стоит думать, что такой сотрудник приходит совсем «зеленым» новичком. Наоборот, он, как правило, имеет профильное высшее образование, владеет языками программирования, знает теорию и потому может вполне эффективно решать типовые рабочие задачи. Еще четверо сотрудников являются middle-разработчиками. В отличие от Junior такой специалист обладает более полным видением всего продукта в целом, совершает меньше ошибок, потому что может их прогнозировать; его код менее запутанный (сложный код – признак как раз новичка). Он может делать обзор кода и его оптимизацию, оценивать время, необходимое на решение той или иной задачи и т.п. Другими словами, ошибки Junior для него уже пройденный этап. Senior – это уже эксперт. В любой студии такие сотрудники на вес золота, потому что на рынке их в принципе мало. У нас их три. Senior не просто очень хороший, опытный программист. Он является руководителем всего процесса разработки – организует работу внутри команды, распределяет задачи, задает путь развития проекта и т.д.

Егор Таланцев

Поскольку нанять разработчика уровня миддл или синьор сложно и дорого, большинство web-студий предпочитает их выращивать. Профессиональный рост идет через наставничество. В web-студии "Ананас" стажеры и программисты – джуниоры наблюдают за тем, как пишут код миддлы и сеньоры (если они все-таки появляются в команде), стараются перенять их опыт. Чтобы избежать практики бездумного копирования, применяются регулярные code-rewiew (обзоры кода): разработчики собираются вместе, и опытные сотрудники комментируют сделанное новичками, указывая на удачные моменты и разбирая основные ошибки. Так, участвуя в каком-либо проекте, разработчик получает возможность повышать свой уровень.

У нас стажер становится программистом-джуниором за три месяца. А переход в категорию миддл занимает в среднем 1,5-2 года. Скорость роста зависит от сложности проекта: можно несколько лет делать лендинги, постепенно изучая что-то новое, а можно работать на интересном проекте и за год стать хорошим миддлом, обучаясь у коллег. Плюс мы покупаем образовательные материалы, в том числе на английском, периодически проводим учебные сессии. Самая трудная задача – стать сеньором. Отличный программист может оказаться совершенно никаким руководителем команды. Либо студия занимается достаточно простыми проектами, работая на которых уровня эксперта достигнуть невозможно.

Евгений Гавриляк

Тестировщики

Тестировщики обязательно есть в штате любой профессиональной web-студии, потому что тестирование – один из ключевых этапов разработки программы. Иногда позицию тестировщика рассматривают как старт карьеры разработчика, однако это неверно.Тестировщики обязательно есть в штате любой профессиональной web-студии, потому что тестирование – один из ключевых этапов разработки программы. Иногда позицию тестировщика рассматривают как старт карьеры разработчика, однако это неверно.

Тестировщик – отдельная специальность и профессия, где есть свои джуниоры, миддлы и сеньоры. Опытный тестировщик может владеть навыками программирования, используя их, к примеру, их для автоматизации своей работы. Почему тестировщик рассматривается как начальная должность, с которой можно перейти в разработчики? Потому что многие web-студии так ее и позиционируют, что неправильно. Подобный переход, конечно, возможен, но он не обязательно происходит. Вот как это работает у нас. Случается, что к нам приходит человек, который точно хочет развиваться в IT, но еще не определился с конкретным направлением. Тогда мы на период стажировки (о ней – чуть позже) можем поставить его тестировщиком, при этом даем возможность параллельно экспериментировать с другими задачами. Если видим, что у него неплохо получается проектировать UX-интерфейсы или писать код, и ему это очень интересно, то можем перевести в разработчики или дизайнеры. Бывает, получается мультиспециалист – тестировщик, способный подменять коллег из других направлений при необходимости. Рабочий процесс не тормозится.

Евгений Гавриляк

Иногда крупные компании вроде Google проводят открытые наборы тестировщиков для своих продуктов. Сейчас, например, соцсети завалены рекламой корпорации – человеку, независимо от возраста и специальности предлагают обучиться, стать тестировщиком Google, работать из дома и получать зарплату в долларах. Это вовсе не мошенничество, просто у Google огромное количество продуктов, которые надо массово тестировать по заданному алгоритму. Представляете, что будет, если корпорация вдруг выпустит на рынок неработающий сервис? Или начнет сбоить Google Adwords? Сколько денег потеряют клиенты и сама компания на немедленном падении стоимости ее акций? Но отсюда тоже рождается стереотип, что тестировщиком может стать кто угодно, а затем строить дальнейшую карьеру как разработчик. Конечно же, нет. Вообще любая компания, создающая программные продукты, заинтересована в том, чтобы тестировщик оставался на своей работе постоянно, повышая профессионализм. Если обещать ему непременную карьеру разработчика, он будет меньше ориентирован на качество и рост – этого трудно достигать в деле, которое воспринимаешь как временное.

Егор Таланцев

Дизайнер

Дизайнер в web-студии – тоже отдельный профессионал, который отвечает за готовый вид приложения, то есть за графическое оформление и функциональность пользовательского интерфейса (User Experience или UX-дизайн). Линии, шрифты, цветовая гамма должна обязательно соответствовать концепции приложения, передавать определенное настроение, правильно позиционировать бренд заказчика. Крайне важно и то, чтобы конечный пользователь мог взаимодействовать с приложением быстро и просто, на интуитивно понятном уровне. Особенно, если оно создается для b2c - клиентов, а в этом сегменте даже слишком сложная регистрация может привести к тому, что приложением никто не будет пользоваться, тем более за плату.

Представьте себе мобильное приложение для доставки еды. Вы запускаете его и добрых полчаса перебираете вкладки в поисках кнопки «Сделать заказ». Или она есть на главном экране, но очень маленькая, палец вместо нее нажимает что-то еще. Или уведомление о регистрации приходит спустя сутки. Или вы не можете ввести свое имя русскими буквами. Или система не в состоянии определить ваше местонахождение. Подобных мелочей может быть много. Они раздражают. В итоге вы просто удалите приложение и скачаете такое же, но лучшего качества, у конкурента. Чаще всего такое происходит, когда у создателя приложения в штате отсутствует дизайнер, а его функции возложены на разработчика. В конце концов, именно разработчик пишет код и должен отвечать за его работоспособность, верно? На самом деле нет. Разработчику достаточно сделать кнопку и убедиться, что она действует. Все. Такова его психология. Где расположена эта кнопка, удобно ли на нее нажимать – разработчик над этим обычно просто не задумывается, поэтому приложение выходит неудобным в использовании. Любой разработчик – ужасный дизайнер!

Егор Таланцев

Менеджер проекта

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

Менеджер проекта – буфер между заказчиком и командой разработчиков. Он также важен, как переводчик на переговорах о сделке между компаниями из разных стран. Это специалист, который находится в постоянной коммуникации клиентом, получает от него техническое задание, доносит его до программистов на понятном им языке. А встречные идеи и предложения программистов, наоборот, грамотно излагает клиенту. Более того, менеджер проекта владеет навыками бизнес-аналитика. Он может приехать в гости к заказчику, глубоко изучить работу его компании, погрузиться в нее. Это важно, например, если необходимо автоматизировать какой-нибудь бизнес-процесс через приложение. И такое плотное общение происходит в течение всего процесса разработки – от согласования промежуточных результатов до сдачи готового проекта. В итоге заказчик получает продукт, который точно работает.

Евгений Гавриляк
66
1 комментарий

Интересная статья, хотелось бы тоже попробовать себя в сфере it