«Зачем мне софт скилы, если я — кодер от Бога?»
Менеджер по обучению и адаптации персонала ALP Group Ольга Симонова объясняет, почему без гибких навыков ни один программист далеко не уедет.
Достаточно заглянуть в комментарии на VC или Хабре, и становится понятно, что многие российские айтишники не особенно жалуют гибкие/мягкие навыки (soft skills), зачастую воспринимая их как синоним выслуживания перед начальством. «Не надо мне рассказывать про эти ваши софт скилы, главное — что я могу написать шикарный код, всё остальное — неважно!» или «Почему я должен отвлекаться на вежливые переписки? Лучше я за это время разработаю новую фичу!»
Так или примерно так определяют свою позицию некоторые программисты. А что мы при этом видим на рынке труда? Согласно исследованию Всемирного экономического форума «Будущее работы 2023», только четверть крупнейших работодателей в мире считают технические навыки (хард скилы) ключевыми для работы в ИТ. Остальные респонденты отдают приоритет когнитивным навыкам, то есть умению усваивать новую информацию (29%), уверенности в своих силах (18%), умению работать в команде (10%) или умению увлекать (5%).
Разумеется, это не значит, что хард скилы никому не нужны. Наличие софт скилов не означает отказ от узкопрофильных знаний. Речь идет лишь о том, что грамотные технические специалисты с хорошо развитыми гибкими навыками сегодня имеют преимущество в глазах работодателей по сравнению с гениальными технарями, которые не умеют вежливо общаться или работать в команде.
Скажу больше, в последнее время важность этих навыков стала только расти. Чем дальше, тем больше ИТ-рекрутеры обращают внимание не только на хард, но и на софт скилы. На мой взгляд, причина кроется в том, что ИТ-проекты и разрабатываемые системы объективно становятся всё более сложными, что требует от современных специалистов целого ряда гибких навыков, без которых еще недавно можно было (с натяжкой) обойтись.
1. Навык работы в команде.
Сложные ИТ-решения — например, корпоративные информационные системы на тысячу пользователей — невозможно разработать или кастомизировать в одиночку. Здесь требуется командная работа и четко выстроенная коммуникация. Когда 15 человек работают над одной сложной системой и каждый сидит сам в себе, то получается лебедь, рак и щука. Только договорившись между собой, люди могут тянуть этот воз в одном направлении — и только это в итоге поможет закрыть проект в срок.
Кстати говоря, умение общаться с командой — это более широкое понятие, чем просто рабочий диалог с коллегой. Работа в команде — это адекватная самоотдача, когда вы вносите какой-то существенный вклад в развитие проекта, это умение обсуждать вопросы, выявлять проблемы, спорить и находить компромисс. И даже развитый навык эмпатии — умение адекватно оценивать и понимать эмоции и мотивы других людей, умение сопереживать.
Буквально на прошлой неделе я обсуждала рабочие коммуникации с одним из наших консультантов, который работает сразу с двумя программистами. Оба программиста — прекрасные спецы в техническом плане. Но если первый «всё обсуждает, поясняет, поддерживает и подсказывает, где нужно», то из второго «приходится вытягивать информацию клещами, часто не слышит консультанта и заказчика и делает по-своему, ничего не поясняя». И знаете, что я услышала от консультанта? «С первым программистом у нас прекрасный тандем, я понимаю, что мы горы свернем и вовремя справимся с самыми сложными задачами, а со вторым у меня только формальные отношения и каждый раз есть сомнения в нашей результативности». Вот такое резюме!
Вообще, умение общаться с людьми — это основа основ :) Я серьезно! Разрешить какую-то сложную техническую или организационную проблему гораздо быстрее и приятнее в коллективе, нежели долго и скучно разбираться во всем самому. Был у нас и такой случай: один из новых сотрудников во время адаптационного периода зашел в тупик, пытаясь самостоятельно освоить особенности сложной системы заказчика. Бился недели три, решил, что не справляется, и был готов уйти из компании. Попросить о помощи было неловко — на новой работе всегда хочется показать себя всезнающим специалистом.
Здесь еще, конечно, и вопрос корпоративной культуры в разных компаниях. В некоторых коллективах есть установка «не отрывать коллег по пустякам и разбираться с проблемами самостоятельно». У нас так не принято. Разрабатываемые системы до такой степени сложные, что разобраться в них самостоятельно практически невозможно, поэтому в нашей компании «старшие» коллеги по проекту всегда стараются оказать информационную и моральную поддержку новичку. А где-то через полгода он уже сам становится специалистом по системе, и в свою очередь помогает проводить онбординг новых сотрудников.
2. Тайм-менеджмент.
У другого нашего программиста были проблемы с прокрастинацией, что, конечно, сказывалось на продуктивности и результативности. Важные задачи сами не решатся, а дедлайны висят дамокловым мечом, вызывая стресс, прежде всего, у самого сотрудника, который, зная о них, нервничает и еще больше прокрастинирует. Вот такой вот замкнутый круг.
Мы проговорили ситуацию с сотрудником и поняли, что он привык сначала «раскидывать» легкие рабочие вопросы, а уже потом браться за какую-то большую задачу. Это классическая ошибка приоритизации и частая первопричина проблем с тайм-менеджментом. Мелкие задачи, переписки, ответы на вопросы между делом — все эти вещи имеют свойство накапливаться, и вот уже конец рабочего дня, а до главной задачи руки так и не дошли. Приходится задерживаться, работать допоздна, перерабатывать изо дня в день и медленно, но верно приближаться к точке эмоционального выгорания.
Марк Твен однажды сказал: «Съешьте с утра лягушку, и весь остаток дня с вами не случится ничего хуже». Это прекрасный лайфхак, который поможет избавиться от прокрастинации и значительно снизить уровень стресса. Увы, не все софт скилы можно прокачать так быстро, но вот поправить тайм-менеджмент не так сложно, как кажется, — достаточно просто научиться правильно расставлять приоритеты. Хорошее планирование труда и отдыха — основа личной эффективности и результативности. А разве не по этим показателям мы отличаем прекрасного специалиста от, скажем так, посредственного? Вот и получается, что чем лучше вы научитесь управлять временем, тем продуктивней будет ваша работа, и тем более ценным сотрудником вы станете для компании.
3. Креативность.
Программист не только пишет код — он занимается техническим творчеством. Не все задачи можно решить «в лоб», и сложные задачи требуют умения посмотреть на проблему под иным углом. У нас, например, была такая история: один консультант не понимал, как ему решить вопрос с контролем дебиторской задолженности, потому что последовательность восстановления взаиморасчетов длилась слишком долго, а бизнес хочет понимать в режиме реального времени, какой клиент сколько ему должен, и кому следует или не следует выставлять какие-то штрафы и пени. Консультант прошерстил интернет и обнаружил алгоритм Больцано — Вейерштрасса. Разработчики применили его для распределения дебиторской задолженности и получили рабочее решение для создания оперативного отчета.
На мой взгляд, умение находить обходные пути и не упираться в стену, когда самое очевидное решение дает неудовлетворительный результат, — проще говоря, креативность — это еще один софт скил, без которого современному программисту уже не обойтись. Почитать крик души моего коллеги о том, насколько это важный и редкий навык среди разработчиков, можно в этой статье.
4. Навык общения/убеждения.
Я бы объединила под одной шапкой сразу несколько близких навыков: коммуникабельность, ассертивность (вежливая настойчивость), умение увлекать и убеждать, умение отстаивать и аргументировать свою позицию, а также умение общаться и вести переговоры вне зависимости от поведения второй стороны. Этот комплекс навыков трудно переоценить, если человек действительно хочет стать успешным программистом по разным критериям: зарплата, узнаваемость в профессиональной среде, выступления на встречах с заказчиками или на профессиональных конференциях для обмена опытом.
Но самое главное — это умение донести простым языком, что именно ты разработал. Будь программист хоть семи пядей во лбу, если он не может объяснить суть и целесообразность своего технического решения руководству или клиенту, то инновационное решение ляжет на полку, а сам специалист будет заниматься только скучной текучкой. Не каждому стиву возняку удается встретить своего стива джобса, поэтому лучше научиться «продавать» себя и свои гениальные идеи самостоятельно.
За любым гениальным разработчиком без гибких навыков стоит гений продаж, который и выводит продукт на рынок (а потом забирает себе все права)…
Хочется добавить, что люди всегда запоминают, в каком тоне с ними общались. Опыт показывает, что от вежливости коммуникации даже в самые напряженные рабочие моменты нередко зависит, кому заказчик в будущем отдаст следующий проект — той же команде разработки, или новому подрядчику. Специалисты, которые хорошо проявляют себя во взаимодействии с клиентом, не пропускают сроки, ведут себя вежливо и могут при этом отстоять позицию компании, позже всегда развиваются до ведущих консультантов, методологов, руководителей проектов или функциональных/системных архитекторов.
А многие долгосрочные ИТ-проекты, кстати, держатся на том, что линейные сотрудники на стороне исполнителя и заказчика растут вместе. На начальных этапах они помогают друг другу, параллельно развивают гибкие навыки, а потом начинают занимать управленческие должности и в будущем продолжают друг друга поддерживать. Такие сцепки с заказчиком в перспективе оказываются наиболее крепкими и сильными.
5. Лидерство.
Если в списке ваших профессиональных приоритетов есть карьерный рост, то с приобретением опыта и лидерских качеств, вы можете уже сами стать тимлидом или куратором новых сотрудников на проекте. Именно через этот навык амбициозные программисты становятся тимлидами или системными архитекторами. И кто знает, возможно, в этой роли вы сможете осознать и реализовать свой личностный и профессиональный потенциал или лучше понять свое жизненное предназначение — то, чем бы вы хотели заниматься всю жизнь.
Как говорится, лидерами не рождаются, ими становятся. Программисты, которые стремятся к карьерному росту в нашей компании, приглашаются на цикл вебинаров по управленческому циклу наравне с опытными руководителями, ведь «отличный программист» еще не означает «прекрасный лидер и руководитель». На таких вебинарах у них есть возможность развить свои лидерские качества, принять участие в мозговых штурмах и ретроспективах, разобрать сложные управленческие кейсы из практики, а также узнать о подходах и методах управления более опытных коллег.
Можно ли развить в себе софт скилы?
Наличие или отсутствие тех или иных гибких навыков — это, во многом, врожденная вещь. Можно ли им научиться? Мне кажется, тут нужно понимать, что взрослого человека перевоспитать невозможно, если он сам этого не захочет. Детский подход к обучению, когда мы просто приносим своё тело за парту и ждем, когда нас чему-то научат, не работает. Любое обучение — это выход из зоны комфорта. И чтобы чему-то научиться, нужно хорошо понимать, для чего нам это нужно. Только тогда у нас появится мотивация предпринимать какие-то шаги и повышать свою эффективность. Когда эта мотивация есть, уже не так важно, будет ли обучение проходить за счет вебинаров, тренингов, книг, диалогов с наставниками или простого наблюдения за коллегами.
Именно поэтому мне кажется важным доносить до разработчиков важность софт скилов. Времена, когда программисты-гики могли тихо-мирно сидеть и ковыряться в коде, ушли в прошлое. Сегодня ИТ — это огромная высококонкурентная индустрия. Даже если у айтишника нет управленческих амбиций, ему всё равно придется работать в команде, планировать собственный график, креативить и доносить свои идеи до коллег, работодателей и заказчиков. Без развитых софт скилов программисту не обойтись даже на этапе приема на работу, поэтому важно их развивать и ежедневно прокачивать. Хорошо, что есть те, кто готов помочь :)
P. S. Поделитесь, пожалуйста, в комментариях, какие гибкие навыки вы считаете особенно полезными лично для себя? Возможно, у вас есть собственный уникальный подход к их развитию? Буду рада узнать о вашем опыте и поделиться своим.
Касаемо тайм-менеджмента: в ситуации из статьи можно еще использовать метод сыра, когда мы разделяем сложную задачу на простые составляющие и выполняем их попорядку, отмечая в таск-трекере)
Да-да, отличный вариант! :)
Хорошему программисту не обязательно даже говорить уметь. Это менеджерки должны находить подход к настоящему творцу. Это если компании нужен результат. А не имитация деятельности
И в туалет его за ручку водить, и писюн подержать, а то не дай бог надорвется, он же творец
Ну базовые навыки точно необходимы и как менеджер сможет найти подход и договориться если программист не может дать отклик
Отличный программист - это когда и не имитация деятельности и коммуникативные навыки на высоте))
Друзья, делитесь вашим опытом, пожалуйста. Будет интересно узнать о нем и обсудить в комментариях ))