- Перевод: Кто такой Full Stack разработчик?
- Кто такой Full Stack разработчик?
- Уровни Full Stack разработки:
- Другие важные моменты
- Заключительные мысли
- Fullstack-дизайнер: кто такой и чем занимается
- Кто такой fullstack-дизайнер
- Предпосылки возникновения профессии
- Чем занимается fullstack-дизайнер
- Проработка задачи и потребностей пользователя
- Создание концепта интерфейсов
- Разработка прототипов
- Тестирование прототипов
- Детальная проработка и участие в интеграции
- Пост-анализ
- Веб-дизайнер с нуля до PRO
- Где пригодится fullstack-дизайн
- Фриланс
- Корпорации
- Стартапы
- Как понять, что вам может подойти профессия fullstack-дизайнера
- Вы любите работать с цифровыми продуктами
- Вы умеете широко видеть задачу
- Вы мыслите и логически, и эмоционально
- Вы готовы к трудностям
- Вы амбициозны
Перевод: Кто такой Full Stack разработчик?
Привет, Хабр! Представляю вашему вниманию перевод статьи «What is a Full Stack developer?» автора Laurence Gellert.
Кто такой Full Stack разработчик?
Разумно ли ожидать, что простые смертные будут владеть всеми аспектами разработки? Скорее всего нет, но в Facebook могут попросить об этом. На OSCON (O’Reilly Open Source Convention — ежегодный съезд, посвящённый обсуждению открытому и свободному программному обеспечению) один из сотрудников Facebook сказал, что они нанимают только Full Stack разработчиков. Что это значит?
Для меня Full Stack разработчик — это человек с хорошим пониманием каждого уровня разработки и искренне интересующийся всеми программными технологиями.
Хорошие разработчики, знакомые со всем стеком, знают, как облегчить жизнь тем, кто их окружает. Вот почему я так против разрозненности на рабочем месте. Конечно, политические и коммуникационные проблемы мешают в больших организациях. Я думаю суть политики найма в Facebook заключается в том, что если умные люди используют свои головы и слушаются своего сердца, то лучший продукт создается за меньшее время.
Уровни Full Stack разработки:
Сервер, сеть и среда хостинга
A. Это включает в себя понимание того, что может сломаться и почему, не принимая никаких ресурсов как должное.
B. Необходимо надлежащее использование файловой системы, облачного хранилища, сетевых ресурсов, а также понимание избыточности и доступности данных.
C. Как приложение масштабируется с учетом аппаратных ограничений?
D. Как насчет многопоточности и состояния гонки? Скорее всего вы не примените их в своей разработке, но они используются в мире.
E. Full stack разработчики могут работать бок о бок с DevOps. Системы должна представлять полезные сообщения об ошибках и возможность логирования.
Моделирование данных
A. Если модель данных несовершенна, бизнес логике и более высокие уровни начинают нуждаться в странном (уродливом) коде, чтобы компенсировать случаи, которые модель данных не охватывает.
B. Full stack разработчики знают, как создать разумно нормализированную реляционную модель, дополненную внешними ключами, индексами, представлениями, таблицами поиска и т.д.
С. Full stack разработчики знакомы с концепцией нереляционных баз данных и понимают в чем они превосходят реляционные базы данных.
Бизнес логика
A. Понимание ценности, которую представляет приложение.
B. Знание твердых объектно-ориентированные принципов.
С. Знание фреймворков, которые могут использоваться.
Уровень API / Уровень действий / MVC
A. Как внешний мир влияет на бизнес логику и модель данных.
B. Фреймворки должны активно использоваться на этом уровне.
С. Full stack разработчики имеют способность писать четкие, последовательные, простые в использовании интерфейсы. Меня отталкивает степень запутанности некоторых API.
Пользовательский интерфейс (UI)
A. Full stack разработчики: а) понимают, как сделать читаемый макет, или b) признают, что им нужна помощь художников и графических дизайнеров. В любом случае, реализация хорошего визуального дизайна является ключевым моментом.
B. Владение HTML5 / CSS.
С. JavaScript это перспективный язык будущего и в мире JavaScript делается много захватывающих проектов (node, backbone, knockout. ).
Пользовательский опыт (UX)
A. Full stack разработчики ценят, что пользователи просто хотят, чтобы всё работало.
B. Хорошая система не дает своим пользователям синдром запястного канала или воспаления глаз.
С. Full stack разработчики пишут читаемые сообщения об ошибках. Если что-то сломалось, извинитесь за это. Иногда программисты непреднамеренно пишут сообщения об ошибках, читая которые пользователь чувствует себя глупым.
Понимание что нужно клиенту и бизнесу
A. Сейчас мы размываем черту архитектора, но это слишком большая роль.
B. Full stack разработчики имеют представление о том, что происходит, когда пользователь использует программное обеспечение. Они также имеют представление о бизнесе.
Другие важные моменты
Заключительные мысли
Очень плохая практика — жестко привязывать код к конкретной реализации (библиотека, ОС, аппаратное обеспечение и т.д.). Тот факт, что full stack разработчик понимает весь спектр технологий, не означает, что у него есть разрешение на использование самого простого пути. На самом деле они делают это, если это «проект на выброс».
Технологические стартапы нуждаются в full stack разработчиках из-за их универсальности! Однако, по мере развития организации, ей требуется всё больше и больше целенаправленных специалистов.
Я не уверен, что вы можете называть себя full stack разработчиком пока вы не поработаете на нескольких языках, платформах и даже отраслях в своей профессиональной карьере. Full stack выходит за рамки «senior engineer», поскольку он находится в том же направлении, что и программист-полиглот, но с более высоким представлением всех соединительных частей. Обратите внимание, что в моем списке только 3-5 пунктов, связанных с написанием кода.
Источник
Fullstack-дизайнер: кто такой и чем занимается
Fullstack-дизайнер — это кросс-дисциплинарный специалист, который разбирается и в дизайне, и в программировании. Это универсальный боец, способный самостоятельно разработать сайт или небольшое приложение. Профессия появилась не так давно — повлиял общемировой тренд на специалистов широкого профиля.
Рассказываем, кого называют fullstack-дизайнерами, какие задачи они решают, в каких сферах могут работать и с чего начать путь fullstack-дизайнера, если компетенций пока маловато.
Редактор Нетологии.
Оформила опыт экспертов в статью
Кто такой fullstack-дизайнер
В среде разработчиков цифровых продуктов fullstack (фулстек) означает полный набор технологий для создания веб- или мобильного приложения. Делится на две части: frontend (фронтенд) и backend (бэкенд), где frontend — технологии для построения интерфейсов (UI), а backend — технологии для создания внутренних механизмов (API) для работы с данными.
Fullstack-дизайн — работа на стыке веб-дизайна и fullstack-разработки.
Fullstack-дизайнер — веб-дизайнер с навыками вёрстки и программирования, который может полностью сделать сайт или приложение.
Fullstack-дизайнер может вести проект от начала и до конца. Это не значит брать на себя все роли в разработке продукта. Имеется в виду, что у fullstack-дизайнера достаточно знаний и навыков на каждом этапе разработки, чтобы при необходимости взять на себя другую роль.
На некоторых проектах fullstack-дизайнер может выступать только в роли дизайнера, разработчика или даже менеджера проекта.
Быть экспертом во всех областях невероятно сложно, но иметь достаточно опыта в разных сферах вполне реально. Это то, к чему должен стремиться fullstack-дизайнер, если хочет выпускать функциональный продукт.
Кори Ли, креативный директор The Collective, в своей статье The Full-Stack Designer …and why you need to be one пишет, что fullstack-дизайнер понимает каждую часть процесса разработки продукта: «Это позволяет создавать дизайн, который не только улучшает продукт, но и повышает эффективность всей команды. Fullstack-дизайнер — многопрофильный полиглот, который может говорить на родном языке с каждым членом команды».
В отличие от веб-дизайнеров fullstack-дизайнеры видят полную картину и могут изменять набор своих навыков в зависимости от проекта. Например, в одном случае могут понадобиться знания UI-дизайна и процессов разработки, в другом — разработка UX-потоков. Как правило, в арсенале fullstack-дизайнеров есть все эти навыки, что позволяет создать лучший продукт, экономя при этом время и деньги.
Что касается степени владения инструментами дизайна и разработки, она может варьироваться. Например, сейчас распространена точка зрения, что fullstack-дизайн больше про комбинацию дизайна и frontend.
Всесторонний взгляд на продукт — главное преимущество fullstack-дизайнера. Знание разработки и дизайна продукта позволяет предвидеть ограничения, которые накладываются на продукт, ⟶ fullstack-дизайнер может чётко контролировать ожидания от него.
Product Lead в Росбанке, глава Гильдии вольных проектировщиков
До прихода в Росбанк я в течение 5 лет работал на рынке заказной разработки и часто сталкивался с такой ситуацией: один специалист занимался проектированием интерфейсов, а другой — их отрисовкой.
UX-проектировщик общался с пользователями, заказчиком, накидывал прототипы, согласовывал их и отдавал UI-дизайнеру.
UI-дизайнер принимал прототипы, к которым он не имел никакого отношения, но на основе которых он должен был что-то нарисовать. И воспринимал это так, как будто ему подкинули чужого ребёнка.
Проектировщик был недоволен: результат его труда отдали дизайнеру, который там что-то отрисовал, но проектировщик видел это по-другому. И чувствовал себя как человек, у которого ребёнка отняли.
Получалось так, что продукт проваливался между несколькими специалистами.
Да, мы старались, чтобы UI-дизайнер принимал участие в создании прототипов, а UX-проектировщик — в отрисовке макета. Но при контакте специалистов неизбежно возникали конфликты и проблемы.
Чем больше людей погружается в продукт, тем больше возникает шероховатостей и больше времени уходит на исправление, ручное решение и прочее балансирование.
Альтернативное мнение. Кто-то применяет термин «fullstack-дизайнер» к специалисту, который может выполнить полный спектр услуг дизайнера: например, нарисовать лого и иллюстрации, создавать брендбуки и презентации.
Предпосылки возникновения профессии
Появление fullstack-дизайнеров не произошло в один момент. В самом начале в связи с взрывным ростом популярности мобильных приложений и большим потоком частных предпринимателей появилось много небольших команд разработки, которые не могли позволить себе отдельных специалистов. Поэтому специалист, занимая одну должность, вынужден был брать на себя несколько ролей. Например, разработчик не только писал код, но и собирал прототипы в специальных программах.
Сегодня главной причиной объединения навыков можно назвать упрощение процесса программирования. Планка вхождения в дизайн интерфейсов и разработку с каждым годом снижается, и смежные специалисты — например, маркетологи — вполне могут их освоить. А тот, кто уже занимается дизайном или разработкой, может «подключить» вторую специальность и стать универсальным специалистом.
Профессия fullstack-дизайнера — профессия на стыке. Вас ждёт увлекательный путь. При этом нужно быть готовым к тому, что вас будет периодически клонить то в сторону дизайна, то в сторону разработки.
Чем занимается fullstack-дизайнер
Поскольку fullstack-дизайнер забирает под своё крыло целый блок продуктовой разработки, в его зону ответственности входит достаточно много разноплановых задач.
Проработка задачи и потребностей пользователя
Сюда входит общение с заказчиком, проведение микроисследования для анализа желаний пользователей. Вы должны понимать, какие есть ограничения, — чем больше таких ограничений, тем лучше получится продукт.
Создание концепта интерфейсов
С учётом вышеуказанных ограничений по той или иной методологии — Customer Journey Map, методу персон, Jobs to be done — подбирается решение, которое удовлетворит пользователей.
На первых порах интерфейсное решение будет определять логику взаимодействия пользователя с продуктом, но может быть ещё не проработанным.
Разработка прототипов
На базе концепта разрабатывается прототип. Прототип — любой незавершённый образ продукта. Это может быть что-то нарисованное ручкой или глубоко проработанное и свёрстанное — то, что можно показать пользователю и получить фидбек.
Для обычного дизайнера разработка детальных «живых» прототипов, как правило, головная боль: нужно сделать интерактивный прототип в Figma или в другом инструменте. В отличие от fullstack-дизайнера, для которого вопрос разработки прототипов не вызывает сложностей — он может сам легко и быстро сверстать, по ходу внося улучшения.
Тестирование прототипов
В роль fullstack-дизайнера входит также понимание, как тестировать прототип: изучать, как пользователи работают с интерфейсами и вовремя вносить коррективы. На ранних стадиях разработки коррективы можно внести быстро и — что немаловажно — дешевле. Позднее цена каждого изменения увеличивается.
Детальная проработка и участие в интеграции
«Ошибайся раньше, ошибайся чаще» — так гласит старая поговорка продактов. Этот цикл может замыкаться достаточно долго — разработали прототип, протестировали, сделали, усовершенствовали и опять протестировали. Пока это экономически целесообразно, затраченное время оправдывает себя.
Далее прототип в виде свёрстанного макета передаётся разработчикам для включения в продукт и дальнейшей работы.
Пост-анализ
После выхода продукта fullstack-дизайнеры принимают участие в пост-анализе. Собираются данные по метрикам, исследованиям, обратной связи. По результатам планируются изменения на следующий цикл.
Fullstack-дизайнер сопровождает весь цикл проработки интерфейсов — от постановки задачи до улучшений вёрстки. Это большой и сложный пласт задач. И если его грамотно ведёт один специалист, это значительно облегчает работу всей команды.
Отличный дизайн начинается с концепции и продолжается через разработку, маркетинг и другие области. Вместо того, чтобы концентрироваться на улучшении узких навыков, применимых только к дизайну, цель fullstack-дизайнера — выход из узкой сферы и влияние на другие области для улучшения продукта.
Профессия
Веб-дизайнер с нуля до PRO
- Готовим дизайнеров со знанием кода и разработчиков со знанием дизайна
- Научим самостоятельно выполнять полный цикл работ по созданию сайтов
- Выполните два больших дипломных проекта и семь курсовых работ
Где пригодится fullstack-дизайн
Раскроем каждую сферу.
Фриланс
Позволяет не зависеть от исполнителей
Если вы только дизайнер, а заказчик хочет получить сайт целиком, вы делаете дизайн-макет, а остальную часть работы поручаете разработчику. И если разработчик не справляется, вы попадаете — в том числе и на деньги.
С fullstack-дизайнером такой ситуации не случится, потому что он может себя подстраховать и в случае чего сам сделать весь проект — дизайн и разработку. Да и денег получить больше ?
Даёт большой простор для развития
Не так страшно, когда мало платят (можно повысить цены или найти других клиентов), как страшно отсутствие развития. Можно сказать, что саморазвитие — обязанность для фрилансера. Это позволяет брать сложные задачи, интересные проекты, развиваться в профессии и как следствие — больше зарабатывать.
К тому же, из года в год делать одно и то же скучно, что плохо сказывается и на мотивации.
Fullstack-дизайнер, разработчик статичных сайтов на Gridsome и Airtable
В своё время мне уже стало неинтересно заниматься разработкой на WordPress и появление статичных сайтов стало для меня спасением.
В английском комьюнити даже появился такой девиз: «Let’s make websites fun again!» ⟶ «Создание сайтов снова должно приносить удовольствие!».
Я с этим согласен. За счёт того, что вы развиваетесь в разных областях, фулстек-дизайн позволяет сделать работу интереснее.
Корпорации
Позволяет формировать небольшие подразделения
Например, если корпорации нужно быстро проверить гипотезу, экспериментальный продукт, то внутри неё возникает команда, мини-стартап, где можно быстро принимать решения и реализовывать идеи.
Даёт большой простор для развития
Хорошему специалисту, который ориентирован на самообучение, быть человеком функции неинтересно. Важно иметь перспективу и понимать, что в этой компании можно вырасти, расширить навыки, инструментарий. В дальнейшем это поможет в том числе сменить работу.
Стартапы
То же, что для корпорации, но бывает, что без зарплат
Плюсы те же: маленькие команды из универсальных специалистов позволяют быстро двигаться в проверке гипотез на пути к созданию нового продукта. Единственное — никто не гарантирует зарплату, это зависит только от вас.
Простор для развития тут не так важен — скорее наоборот
Если вы решили заниматься бизнесом, то сразу возьмёте на себя функции менеджера. Вам придётся вовлекаться в управление проектом и одновременно решать технические задачи.
Совмещать позицию менеджера и специалиста сложно и получается только какое-то время, пока такая комбинация оправдана необходимостью — некому заниматься и тем, и тем.
Управленческие компетенции для fullstack-дизайнера нужны в любом случае. Иногда нужно часть работ делегировать — потребуется понятно сформулировать задачу, определить срок исполнения и добиться своевременной реализации.
Как понять, что вам может подойти профессия fullstack-дизайнера
Вы любите работать с цифровыми продуктами
Fullstack-дизайнер продумывает весь продукт, поэтому важно любить работать широко, а не с отдельным блоком задач (допустим, только с отрисовкой иллюстраций).
Вы умеете широко видеть задачу
Цифровой продукт строится на базе интересов бизнеса, пользователей и с учётом технической базы. У каждой группы есть хотелки, набор ограничений, проблематик и других условий. Эту взаимосвязь называют «табуреткой Нормана» — стоит убрать один элемент и полетит вся конструкция.
В свою очередь разработка любого цифрового продукта опирается на 4 составляющие:
- информационная архитектура — определяет, какой контент есть в нашем приложении, сайте или решении и как он запакован внутри;
- функциональность — отвечает за то, как продукт работает в динамике;
- интерфейсы — отвечают за то, чтобы пользователю было понятно, привычно и удобно взаимодействовать с продуктом;
- пользовательский опыт — выражается в общем субъективном ощущении пользователя от продукта, который он воспринимает через призму воспитания, привычек, художественного вкуса, опыта использования других продуктов, даже в зависимости от настроения и в каком контексте он находится — в метро или дома на диване в выходной.
Дизайн во многом определяет, насколько продукт придётся пользователям по душе. При этом никогда нельзя быть уверенным в стопроцентном попадании в цель.
Цифровой продукт — это живой организм, который нужно рассматривать в комплексе, с разных сторон. В нём всё взаимосвязано между собой.
Вы мыслите и логически, и эмоционально
Fullstack-дизайнер должен мыслить в том числе как пользователь продукта. Более того, ему нужно прочувствовать пользователя — пропустить через себя и осмыслить его боли.
А дальше нужно подвести под это логическую базу — дизайн математичен. Всё имеет логические предпосылки, всё можно доказать и опровергнуть логическими выкладками и данными, которые эти выкладки обогащают. Умение логически мыслить пригодится и для понимания, как выглядят структурированные процессы разработки и вёрстки.
Поэтому чтобы эффективно работать с продуктом, нужно мыслить одновременно и как логик, и как эмпатичный человек. Не у всех получается, но это не такая редкая штука, как может показаться.
Вы готовы к трудностям
Fullstack-дизайнер — профессия относительно новая. Трудности будут ожидать на каждом шагу — в процессе обучения, общения с коллегами и разработки продукта. Любовь к своему делу, навыки и амбиции помогут преодолеть любые трудности.
Вы амбициозны
Профессия междисциплинарная в квадрате: нужно взаимодействовать с разработкой, заказчиками, пользователями и отвечать за результат. Для этого нужно иметь желание занимать важную роль в разработке продукта.
Источник