«И швец, и жнец, и на дуде игрец» — это ли не мечта любого работодателя? Данное выражение, как нельзя лучше подходит к позиции Full Stack developer….
СТОП. Но все ли так однозначно? Стоит ли рассматривать такого специалиста, как мастера на все руки, приняв на работу которого, вы можете «дать пинка под зад» двум (а то и более) узким спецам? Чего требовать от Full Stack ?Поговорим об этом, и не тольков разрезе web-разработки.
Кто он такой, этот герой?
Кто же такой Full Stack developer? Нет, это не тот чел, который способен заменить собой целую команду специалистов, и в одиночку выдать готовый продукт. Хотя и этого отвергать полностью не стоит — MVP толковый фул стэк сделает. Но каким он будет — это уже вопрос. Ведь, как говорят «дьявол кроется в мелочах». А как раз-таки в этих самых мелочах может досконально разобраться только узкий специалист (в нашем случае Frontend и Backend). И что получается? А выходит, что настоящий Full Stack — это такой человек, который может принимать продуктивное участие в работе специалистов разных направлений. Он должен эффективно взаимодействовать со всеми членами команды, иметь представление о работе спецов разных направления и уметь изъясняться языком, доступным каждому из них.
Если же соискатель, выдающий себя за фул стэк девелопера, утверждает, что он может все сделать сам (и им можно хоть «бутылки открывать» J), без команды, здесь два варианта:
- Вам дико повезло. Это как найти белого носорога.
- Специалист немного лукавит: он либо не до конца оценивает свои возможности, либо тупо врет.
Т. е. нужно понимать, что Full Stack не стоит рассматривать, как супергероя, который возьмет все на себя, и поможет вам сэкономить кучу баблища. Такого не бывает.
Так кому и зачем могут быть нужны такие «универсальные солдаты»
А тут уже все зависит от обстоятельств, ваших хотелок, и того, что вы вкладываете в это понятие.
Подумать о поиске Full Stack разработчика стоит, если:
- Вам по каким-либо причинам нужно сократить количество сотрудников компании без потери продуктивности. Но стоит понимать, что чудес не бывает, и какие-нибудь показатели да просядут.
- У вас стартап с ограниченным бюджетом. Но стоит понимать, что создаваемый «многостаночником» MVP будет развиваться дальше. Соответственно, в него нужно заложить определенный потенциал. Поэтому и задача фул стэку должна ставиться не на решение проблемы здесь и сейчас, а на перспективу.
- Вы ищете перспективного разработчика, которого готовы продвигать в своей компании. Плюс Full Stack в том, что имеющийся у него базис дает возможность развиваться в разных направлениях. При правильном подходе (и конечно же, должной мотивации разработчика) их такого спеца можно вырастить «мега монстра» в определенной области.
- Вам нужно скоординировать команду, исключить недопонимание и разногласия. Вот тут-то и приходит на пользу умение фул стек мастера продуктивно работать со специалистами в разных направлениях.
Как искать Full Stack специалистов?
Чтобы найти достойного кандидата, вам нужно знать кого искать. Как показывает практика и современные реалии Full Stack developer, должен ориентироваться в следующих направлениях (перечень очень и очень примерный):
- Администрирование серверов и хостинг. Вот малая часть скиллов в этом направлении: работа с базами, использование файловой системы, масштабирование, управления серверными программами и оболочками, работа с разрешениями и брандмауэрами и пр. Зачастую фул стеку требуется и знание DevOps.
- Бизнес логика. Как минимум, такой специалист должен понимать суть приносимой приложением пользу, как реализовать поставленные задачи для получения прибыли и пр.
- Моделирование данных. Здесь, как минимум, специалист должен предусмотреть различные ситуации и минимизировать использование в готовом продукте всевозможных «костылей» на уровне бизнес-логики и более высоких классов.
- Back End. Здесь не обойтись без знаний языка (как вариант — PHP), фреймворков, технологий кеширования, API и т. д.
- Базы данных. Здесь важно, чтобы разработчик был знаком с концепциями реляционных и не реляционных баз и знал их отличия, возможности и случаи, когда что применять.
- Front End. В современных реалиях в список знаний должны входить NodeJS и NPM, Webpack, Browserify, Rollup, Yarn, транспиллеры и препроцессоры для разных языков, фреймворки и много чего другого «фронт эндовского».
Кроме того, требуются познания в дизайне, логировании, мобильной разработке, написании юнит-тестов, информационной безопасности и т. д. и т. п.
Возможно, углубиться в знания и навыки таких специалистов вам поможет иллюстрация из статьи Скотта Хадфилда, являющегося CTO и со-основателем стартапа «Hello Pretty» (опять же, перечень далеко не полный):
Если Full Stack чего-то не знает…
Видим, что знаний у такого специалиста должно быть «мама не горюй». Поэтому важно уяснить, что требовать от него владения всеми технологиями, языками программирования и прочими вещами на уровне мега-профи не стоит. Если человек имеет представление о предмете, и может быстро разобраться в нем на углубленном уровне, возможно это — тот самый Full Stack, которого ищете вы. А вообще, как показывает практика, такому специалисту очень редко приходится применять прямо все-все навыки и знания в каждой из областей. Как ни крути, но у каждой компании есть своя специфика.
Нелегкая забота — заполучить Full Stack к себе на работу
Распространено мнение, что найти Full Stack очень и очень сложно. И наш опыт это подтверждает. Действительно, такие специалисты сегодня на вес золота. Они либо уже трудоустроены, либо придирчиво перебирают предложения от выстроившихся в очередь работодателей.
И не смотрите, что на том же LinkedIn по соответствующему запросу выдается свыше 2000 анкет. Фул-стек фул-стеку рознь. Многие, освоив когда-то LAMP, считают себя «универсальными солдатами», готовыми на подвиги. Ан-нет. Мы же знаем, как активно развивается сегодня IT в общем, и каждое направление, в частности. При поиске таких спецов нужен, как говорится, творческий подход, и даже некоторый опыт в хантинг-браконьерстве.
Все это есть у Indigo. Обращайтесь, и мы окажем посильную помощь в поиске вашего Full Stack developer.
автор: Денис Малов