EngX Code Review: начни писать код еще лучше и построй эффективный процесс код-ревью.


7 софт скиллов для разработчиков

«В современном мире при приеме на работу недостаточно быть высококлассным разработчиком. Без развитых soft skills программисту уже никуда» — считает менеджер по обучению и развитию Светлана Бодренкова. Что такое soft skills и зачем их развивать разработчику? 

Светлана Бодренкова

Что такое “Soft Skills”?

— Сегодня самые прогрессивные (и полезные миру) решения – это не следствие бессонных ночей гения-одиночки, а результат командной работы. Одна из вакцин от коронавируса стала результатом сотрудничества Оксфордского университета и компании AstraZeneka. На сайте Оксфордского университета, в разделе «Академические исследования», в команде рядом с иммунологами и клиническими специалистами — специалисты в области искусственного интеллекта, дата-аналитики, программисты и специалисты по математическому моделированию, — рассказывает Светлана, менеджер по обучению и развитию EPAM.

В проекте «Геном Человека» принимают участие не только биологи, физики и химики, но и инженеры, IT-специалисты и специалисты по этике. Да и на уровне отдельных компаний растет спрос на кросс-функциональные команды. А это значит, что кроме классических STEM-дисциплин и hard skills успех в карьере IT-специалиста все больше связан с гибкими навыками, soft skills, необходимыми для успешной командной работы.

Более 7 лет я занималась подготовкой IT-специалистов (в большинстве – разработчиков) к интервью с заказчиком. Насколько вижу сейчас, в открытых источниках есть масса материалов о так называемых «поведенческих интервью» (behavioral interviews) в IT-сфере. Разумеется, на таких интервью речь по-прежнему идет о принципах качественного кода, современных библиотеках и фреймворках. Однако в центре внимания оказываются не знания и навыки кандидата в чистом виде, а нечто большее. Следуя логике типичного поведенческого интервью, можно проанализировать, какие soft skills будет полезно прокачать разработчику.

7 Soft Skills программиста

Самомаркетинг

— «Расскажите о себе...» — часто эта фраза одной из первых звучит на собеседованиях. Формулировки могут отличаться, например: «Почему выбрали этот язык/технологию/фреймворк?», «Что привело вас к нам?», «Что отметили для себя в наших вакансиях/продуктах?» и так далее. Форма не так важна, как содержание. Для ответа на вопрос пригодится навык, который условно можно назвать «самомаркетинг» — понимание, что вы делаете отлично, что хотите изучить, а чего не будете делать и почему, — поясняет Светлана. — Если вы прокачали этот скилл, то сможете уверенно и аргументированно рассказать, какую выгоду получит команда от сотрудничества с вами.

К тому же, осознанный выбор того, чего вы не хотите и не будете делать, – это гарантия, что вы не будете каждое утро буквально руками тащить свои ноги к нелюбимой или бессмысленной работе, либо просто не будете искать работу в компании, ценности которой отличаются от ваших. Скажем, если вы точно знаете, что хотите работать в проектах в области Life Sciences & Healthcare (например, потому что ваше основное образование — химик и вы хотите использовать его, чтобы внести свой вклад в повышение качества жизни людей) — то вряд ли будете смотреть в сторону Game Dev компаний.

Критическое мышление

Практическое задание. Редкое интервью в IT сегодня без него обходится. Оставим в стороне тему о том, как подготовиться к решению таких задач, об их сложности и полезных hard skills. Интереснее, какие soft skills проявит кандидат в ходе выполнения задачи. Вот озвучено условие. Кандидат сразу приступит к решению или задаст уточняющие вопросы по неоднозначным моментам? Даже если в условии задания все изложено четко — уточнит ли кандидат критерии результата (важно через 20 минут предъявить работающий код или показать ход мыслей) либо же будет полагаться на свои представления об успехе? Прояснив все вопросы на старте, уйдет ли в работу молча или будет комментировать свои действия, объясняя выбор тех или иных подходов к решению задачи?

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

Consulting mindset

Еще один ценный навык — так называемый consulting mindset. Образно можно описать его как переключение с мышления «Что сделать?» на «Как сделать лучше?» с учетом известных условий и ограничений.

Важность этих soft skills можно увидеть на бытовом примере. Представьте, что в кофейню заходит клиент. Бариста видит его первый раз. В ответ на просьбу сделать кофе бариста (без критического мышления и consulting mindset) молча поворачивается к кофе-аппарату, готовит ореховый латте и ставит его перед клиентом. Если сейчас спросить баристу, почему он сделал именно так, то в ответ можем услышать: «Потому что в это время дня все заказывают ореховый латте. Потому что у меня такое настроение было. Потому что так быстрее. Потому что у этого клиента рубашка орехового цвета». Как вам? А если этот клиент — вы? А если у клиента — непереносимость лактозы или аллергия даже на следы орехов?

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

Гибкость и адаптивность

А что будет, если... Допустим, кандидат добрался до результата: решение готово и работает. В этот момент «придирчивый» интервьюер говорит: «А что, если вместо X использовать Y? А что, если объем данных возрастает вдвое? А что, если приоритетом будет не скорость, а качество? Как это отразится на решении? А в какой среде это решение не будет работать?»

И вот тут нам пригодятся такие soft skills, как гибкость и адаптивность и стрессоустойчивость и способность к восстановлению (далее — жизнестойкость. Последние 2–3 года показали, насколько непредсказуем и стремительно изменчив мир. В ответ на эти вызовы проектные команды и компании увеличивают скорость и вариативность решений, уже давно набрал популярность Agile и подход «fail safe – fail fast». На практике для отдельного разработчика это значит, что в тот самый день, когда он на регулярной встрече команды с радостью и гордостью сообщает, что наконец-то после многочисленных попыток решить ту самую сложную задачу он готов предложить работающий вариант, — в ответ слышит от проджект-менеджера: «Отлично! Спасибо за экспертизу. Вчера принято решение о том, что теперь мы...» — выбирайте нужное: используем технологию Х, ориентируемся на 3х объем данных, переносим решение в облако, отказываемся от этого функционала.

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

Жизнестойкость

Если вы раз за разом сталкиваетесь с тем, что отлично описанное в книге решение или проверенная теория не работает на практике, или если решение, которое еще вчера работало, сегодня идет в отказ без видимых причин, то прокачанная жизнестойкость поможет вам приблизиться к тому отношению к жизни, которое описал Макс Фрай: «Хотел бы я научить тебя вместо: «Ох, как все плохо!» думать: «Надо же, как интересно». Но такое отношение к жизни приходит только с опытом».

И снова — бытовой пример. Представьте бегуна, олимпийского чемпиона. Его hard skill «бегать» прокачан до предела, он и сам это знает, и всем вокруг это очевидно. Сменим среду: вместо дорожки стадиона отправим нашего бегуна в воду. Раньше или позже его попытки применять свои лучшие навыки бега окажутся тщетными. Что дальше? А дальше у нашего героя (как и каждого из нас) есть выбор: ругать воду за отсутствие должной плотности, оправдываться за недостаточно высокую скорость передвижения, возвращаться на прочную почву под ногами или осваивать новые навыки — обучаться плаванию, снова становиться «джуном» в новом навыке. И какой выбор будет сделан — определяют наши гибкость, адаптивность и resilience.

Эмоциональный интеллект и переговоры

— И в завершение — еще два навыка по списку, но не по значимости. Эмоциональный интеллект как распознавание собственных эмоций и эмоций собеседника. Это про умение работать со своим эмоциональным состоянием и адаптировать разговор в зависимости от состояния партнера (или аудитории — при публичных выступлениях). И способность договариваться — умение вести переговоры — как навык распознавать в противоречиях возможные общие интересы и переходить к взаимному согласию. Или выходить из переговоров/отношений, если баланс «брать — отдавать» становится неприемлемым. Об этих навыках сейчас информации более чем достаточно. Я лишь добавлю, что именно их невозможно тренировать чтением книг или просмотром обучающих видео, — поясняет Светлана, — Это как учиться кататься на роликах по видео: вы можете отсмотреть 10000 часов записей катания, однако первая же проба повторить увиденное в том же темпе и в тех же условиях, как это делают опытные мастера, закончится болезненным столкновением с реальностью.

Почему Soft Skills ценятся в IT?

Сегодня разработчику в IT (и не только ему, и не только в IT) полезно развивать:

  1. Самомаркетинг — для четкого представления о том, какую выгоду получит команда, проект, компания от взаимодействия с вами. Для того, чтобы понимать, что специалист получит от сотрудничества с этой командой, проектом, есть ли у вас схожие ценности, как основа для длительного взаимовыгодного партнерства.
  2. Критическое мышление — для всестороннего анализа условия задачи, для учета не только содержания задачи, но и окружения, в котором она будет далее применяться.
  3. Consulting mindset — чтобы во взаимодействии с представителями бизнеса искать баланс между качеством инженерного решения и ограничениями инфраструктуры или жесткими требованиями отрасли.
  4. Гибкость и адаптивность — для эффективной реакции на изменения, чтобы воспринимать ошибки как информацию о том, что что-то не работает, и искать иные пути.
  5. Resilience — жизнестойкость – для продвижения к успеху способом, обозначенным еще У.Черчиллем: «Успех – это умение двигаться от одной неудачи к другой, не теряя энтузиазма».
  6. Эмоциональный интеллект — для распознавания состояния собеседника и адаптации своих коммуникаций.
  7. Переговоры — для перехода от позиционной борьбы к поиску совместных интересов и выгод.

Выводы

— В современном мире при приеме на работу недостаточно быть высококлассным разработчиком. Без развитых soft skills программиста уже никуда. Поэтому не забывайте указывать их в резюме и ежедневно прокачивать, — подводит итоги Светлана.

Хотите обсудить эту статью и множество других тем?

Го в Discord
Материалы по теме
Следи за новостями на любимых платформах