Top.Mail.Ru
Колонки

Без этих навыков вы не построите успешную карьеру в разработке. Проверьте себя прямо сейчас

Колонки
Влад Куяне
Влад Куяне

Методист веб-факультета «Яндекс.Практикум»

Полина Константинова

Многие талантливые разработчики кажутся замкнутыми людьми. Но для эффективной работы им тоже требуется обращаться к другим специалистам, задавать вопросы и участвовать в совместных встречах и обсуждениях. Методист веб-факультета «Яндекс.Практикума» Влад Кяуне рассказал, почему хороший разработчик без навыков коммуникации — это миф, какие soft skills нужны для работы в продуктовой команде и как лучше их развивать. 

Без этих навыков вы не построите успешную карьеру в разработке. Проверьте себя прямо сейчас

Почему программисту нужно общаться  

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

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

Какие soft skills нужны в продуктовой команде 

Основные soft skills, которые нужны новичку, — это умение понять общие цели команды, задавать правильные вопросы и умение работать с обратной связью. Без таких навыков начинающий не выживет в организации даже полгода: он просто не сможет влиться в коллектив. В «Яндекс.Практикуме» у нас был студент, который ушел со стажировки из крупной IT-компании через две недели: оказалось, что ему дали сложную для него задачу, а он побоялся уточнить, чего от него хотят, и просто ушел.



Кроме этого, важно уметь работать по методологии scrum (многие специалисты, пришедшие в IT из других отраслей, впервые сталкиваются с этим понятием). Это гибкая методология разработки программного обеспечения, в соответствии с которой над каждым проектом работает несколько специалистов. Их работа делится на равные спринты — от недели до месяца в зависимости от проекта и команды. Перед спринтом формулируются задачи на данный спринт, в конце — обсуждаются результаты, а команда начинает новый спринт.

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

Как развивать soft skills


1. Вникать в общие цели команды 

В scrum-методологии у каждой команды есть общие цели и KPI (ключевые показатели эффективности). Бывает, заказчик требует разработать какую-то фичу, но не объясняет, зачем она нужна, или дает неполный бриф, из которого понятно не все. Если не выяснить этот вопрос сразу, может оказаться, что работа будет сделана зря. 

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


2. Грамотно формулировать свои вопросы 

У каждого джуниора возникают вопросы в начале работы. Чтобы более опытному специалисту было легко на них ответить, нужно научиться правильно задавать свой вопрос. Новичок должен помнить: время профессионала стоит дороже, так что следует позаботиться о том, чтобы тот смог понять суть проблемы как можно быстрее. 

Что делать: в «Яндекс.Практикуме» студент может проверить, не забыл ли он что-то указать в своем письме с просьбой о помощи, по специальному чек-листу. Пошаговая инструкция для составления запроса выглядит так: 

  • локализовать код c возможной ошибкой до минимального объема; 
  • прикрепить его к письму с помощью одного из инструментов: например, СodePen; 
  • написать, какую задачу вы решаете и что вы уже пробовали сделать, чтобы решить проблему. 

3. Вовремя сообщать о возможной проблеме  

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

Когда я сам был новичком, у меня была ситуация, когда заказчик потребовал сделать верстку большого сайта без использования фреймворков. И поначалу это казалось возможным. Но затем я понял, что если сайт разрастается, без фреймворка сложно поддерживать его работу (фреймворк — это, грубо говоря, конструкция, которая позволяет разделить код большого проекта на отдельные компоненты; такой код проще поддерживать и масштабировать).



Что делать: прежде всего, важно выбрать команду, где у тебя есть уверенность в том, что ты можешь сказать о проблеме, тебя услышат и придут на помощь. Для этого еще на этапе собеседования надо узнать, сколько человек работает в команде и будет ли у тебя ментор, к которому ты сможешь обращаться со своими проблемами, попытаться узнать об атмосфере в коллективе и о том, есть ли онбординг для новичков.

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


4. Воспринимать критику

Разработчик делает верстку, после этого приходит лист правок. Новичку кажется, что это ужасно: он некомпетентен и завтра его уволят. 

Что делать: на подобные вещи надо научиться реагировать адекватно: правки — это критика твоей работы, но не тебя самого. Такие же листы, может быть немного короче, получают опытные фронтендеры.


5. Соблюдать дедлайны 

Тайм-менеджмент тоже можно считать одним из soft skills. В программировании умение планировать очень важно, потому что здесь надо учитывать множество переменных. Сколько точно времени надо заложить на каждую конкретную фичу, можно понять только на практике. 

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

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

С кого брать пример 

Новичкам можно также посоветовать посмотреть за тем, как работают известные программисты. Например, Дэн Абрамов — это один из создателей Redux (библиотека для Java Script с открытым исходным кодом, предназначенная для управления состоянием приложения). 

Несмотря на свой опыт, он не боится признаваться в том, что чего-то не знает. Этой теме он посвятил самую популярную статью в своем блоге на Medium — Things I Don’t Know in 2018 («Вещи, которых я не знаю в 2018-м году»).



Умению объяснять свою работу другим можно поучиться у профессора Нью-Йоркского университета Даниэля Шифмана (Daniel Shiffman). Он является популяризатором другой  open source-библиотеки — p5.js, и ведет свой канал для новичков на YouTube — The Coding Train. В каждом видеосюжете он легко и весело рассказывает о разных проблемах, с которыми можно столкнуться в работе и различных лайфхаках для начинающих.

Наконец, Сара Драснер (Sarah Drasner) — это старший разработчик Microsoft, член команды Vue.js — популярного фреймворка для новичков, который очень быстро стал одним из самых используемых. В ее Twitter сейчас почти 50 тысяч подписчиков, она активно общается с ними на разные темы, и, наблюдая за ней, ты чувствуешь, что это очень живой и открытый человек. Строго говоря, этот пример не совсем связан с софт-скиллами, но такие разработчики отражают главную ценность комьюнити современных программистов — его открытость.

Фото в материале и на обложке: Unsplash

Нашли опечатку? Выделите текст и нажмите Ctrl + Enter

Материалы по теме

  1. 1 Из большого спорта – в программисты: как серебряный призер юношеских Олимпийских игр в Китае стал разработчиком
  2. 2 Как программисту прокачать английский
  3. 3 5 признаков слишком опытного программиста
DION
Что ждет рынок корпоративных коммуникаций в 2024 году?
Подробнее