Софт скиллс в IT: как развить гибкие навыки?
Программист Серёжа работает в одной IT компании уже несколько лет. Пришёл он сюда сразу после университета – полученных знаний ему хватило, чтобы успешно пройти собеседование и показать навыки, которые ждал от него директор. Годы идут, а KPI Серёжи не растёт. Что же не даёт Серёже продвигаться по карьерной лестнице?
На самом деле, Серёжа представляет собой образ типичного программиста в умах многих людей. Молча сидит за ноутбуком, неохотно идёт на контакт, долго может просидеть над одной задачей, не может понятно объяснить возникшую проблему. Вот только время, когда ценились такие специалисты, уже прошли. Сейчас недостаточно обладать лишь теми знаниями, которые необходимы для выполнения профессиональных обязанностей на работе. Куда важнее иметь большой круг компетенций и личностных качеств, затрагивающих различные области, или так называемые гибкие навыки.
Что же такое софт скиллс в IT?
Это набор гибких навыков, выходящих за рамки необходимых технических компетенций. Без знаний языков программирования, логики, математики невозможно представить работу разработчика. Но без коммуникативных, стратегических и творческих навыков невозможно представить работу разработчика с другими людьми.
Все софт скиллс в IT можно поделить на несколько категорий: личностные, коммуникативные и командные (менторские). Давайте подробнее разберём каждую из них и посмотрим, к чему может привести их развитие.
1. Личностные
Мы предлагаем рассмотреть основные направления софт скиллс в IT по уровням компетенций разработчиков. Как известно, уровни условно делятся на три: junior, middle, senior. Для развития каждого уровня программиста для каждого этапа важно своё направление навыков. Так, саморазвитие крайне важно для начинающего разработчика (хотя не менее важно и для более опытного), ведь это первый толчок к развитию себя как профессионала.
- Гибкость. Здесь речь как о гибкости мышления, необходимой для развития своей креативности и создания новых способов решения привычных проблем, так и о гибкости общения с другими людьми. Чтобы развить гибкость мышления, придумано немало упражнений. Например, постоянно тренировать свои когнитивные способности можно с помощью упражнения Бином фантазии. Оно было придумало известным детским писателем Джанни Родари. Суть этой техники заключается в том, чтобы взять два абсолютно далёких друг от друга по смыслу слова и придумать с ними 5-10 логически правильных предложения. Если первые 1-3 предложения у вас получатся без проблем, то дальше придумывать будет сложно.
Также можно воспользоваться одним из методов В.Н. Келасьева. Например, изменять привычные временные связи или попробовать представить другой порядок привычных вещей. К примеру, что сначала гремит гром, а потом сверкает молния. Или попробовать представить разговор двух людей из разных эпох. Такие парадоксы стимулируют когнитивные способности человека, заставляя его по-новому взглянуть на привычные вещи.
- Умение «гуглить» проблему. Это важное качество любого программиста (да и в принципе современного специалиста), работающего в команде. Столкнувшись с проблемой, необходимо обращаться к безграничному ресурсу интернета, а не сидеть бесконечно и безрезультатно над ней в попытках решить самостоятельно. Но здесь нужна золотая середина: если поиски решения затягиваются на несколько часов, лучше всё же обратиться к коллеге и попросить его помочь с проблемой.
- Самоорганизованность связана с предыдущим пунктом. Именно самодисциплинированность, пунктуальность помогают держать себя в рамках задач и приносить результаты в пределах установленного времени.
- Уверенность в своих силах – скорее психологическое требование к любому работнику. Сложно говорить о мотивации к работе и карьерному росту, когда работник не верит в себя и со страхом берётся за каждую задачу, зная наперёд, что его ждёт неудача. Следует воспитать уверенность в себе, если вы хотите оставаться на том же уровне.
- Умение адаптироваться – проекты бывают разные, поэтому нужно уметь вливаться в коллектив и показывать свои навыки в любой ситуации.
- Креативность – без неё не обойтись в больших проектах, требующих отклика и совета разработчика. Развить креативность можно в брейнштормах, читая книги и общаясь с творческими людьми.
2. Коммуникативные
На уровне middle разработчик уже выходит из тени и начинает более активно взаимодействовать с командой. А значит, без развитых коммуникативных навыков здесь не обойтись.
- Умение общаться – один из главных навыков, без которого просто невозможно успешно взаимодействовать в рабочем коллективе. Общение с PM, отделом тестирования, другими разработчиками и, безусловно, клиентами – одна из обязанностей программиста. От того, насколько доходчиво вы будете изъясняться с коллегами, зависит, как вас будут воспринимать.
- Эмпатия помогает оставаться объективным в оценке действий своих коллег. Она важна для создания комфортной атмосферы в коллективе, когда все понимают эмоции друг друга и умеют ставить себя на место другого. При этом другая сторона эмпатии в процессе разработки ПО – умение понимать запросы и требования клиента и целевой аудитории.
- Терпимость логично следует из предыдущего пункта. Она подразумевает умение признавать ошибки других и принимать их, не выходя из себя и не срываясь на кого-то. Все мы люди, и у каждого время от времени случаются помутнения. Важно помнить об этом и быть снисходительным.
- Умение слушать и слышать. Обратите внимание, что это не одно и то же. Когда дело доходит до обсуждения рабочего процесса, нужно уметь слушать мнения и предложения коллег. Но также важно не просто создавать видимость, что вы слушаете, а слышать других, понимать и принимать их точку зрения.
- Открытость предполагает готовность услышать идеи других людей, рассмотреть другие теории и предложения.
- Способность решать конфликты. Разработчик, безусловно, не project manager, и конфликтные ситуации в рамках проекта решать не обязан. Тем не менее это основа успешного коллективного общения. Чем большее взаимопонимание с коллегой вы можете построить, тем успешнее будете работать сами.
3. Наставничество
При достижении уровня senior (а у некоторых и раньше) от разработчика требуется уже больше, чем написание кода. Не менее важной задачей становится ведение проектов, обязанности ведущего разработчика и обучение других программистов.
- Умение обучать других пригодится и в менторстве, когда разработчику придётся передавать свои знания тем, кто только начинает заниматься разработкой, и в работе с командой. Веди также важно уметь правильно и доходчиво объяснять людям свои идеи.
- Лидерские качества. Чтобы человека слушали, его мнение и опыт должны быть достаточно авторитетны и убедительны. Без лидерских качеств сложно добиться признания в команде и успешно руководить действиями других разработчиков.
- Открытость общения. На уровне senior нужно быть готовым отдавать что-то взамен на использование открытого бесплатного ПО. Сообщать о проблемах, отправлять пул-реквесты, создавать свои open-source продукты.
Развивайте софт скиллс в IT вместе с нами!
Безусловно, очень сложно сразу развить в себе все гибкие навыки, тем более, что это далеко не всё, что может пригодиться в работе. Тем не менее, стоит уделять им должное внимание, пусть и постепенно усваивая каждый из них.
Мы в Joy Dev всегда нацелены на помощь каждому сотруднику в развитии гибких навыков, что значительно повышает качество работы нашей команды. Поэтому если вы ищете команду разработчиков, которые смогут полноценно выпустить качественный и успешный продукт, то пишите нам!