11 Soft Skills, обязательных для разработчика

0
4566
views

Перевод статьи Рахула Варшнея «12 Must-Have Soft Skills For Software Engineers».

Soft skills для разработчиков

Индустрия разработки программ очень изменчива и динамична. Занятые в ней инженеры, если хотят, чтобы их карьера развивалась, непременно должны иметь как технические, так и нетехнические навыки (soft skills). Тяжелый труд в выбранной сфере деятельности обеспечит вам хороший набор технических навыков.

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

Как верно заметил известный американский инженер и автор Том ДеМарко, «Бизнес, в котором мы заняты, скорее социологический, чем технологический. Он больше зависит от способностей работников общаться друг с другом, чем от их способностей к взаимодействию с машинами».

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

1. Умение хорошо писать

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

2. Хорошие навыки рисования

В командах по разработке ПО становится важным наличие потенциала выражать свои мысли с помощью визуально привлекательных диаграмм. Это дает вам преимущество перед другими членами команды и возможность выражаться уникальным способом.

Важно уметь рисовать

3. Отличные навыки описания технических проблем

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

Отличные инженеры способны взять любую сложную техническую проблему и описать ее простыми словами так, чтобы даже не-технари поняли правильно. Это очень важный навык, повышающий вашу полезность в профессиональном окружении.

4. Волонтерство и стремление отдавать

Большинство программных проектов имеют открытый исходный код, где инженеры работают совместно с открытым сообществом. Они должны всегда быть готовы давать что-то сообществу взамен на предоставляемое им ПО.

Сделать это можно путем сообщений о проблемах, отправки пул-реквестов, создания собственных open source продуктов. Для эффективного выполнения подобных задач инженерам понадобится много нетехнических навыков.

5. Умение задавать вопросы и пользоваться цифровыми ресурсами

Эти навыки нужны программистам чтобы принимать участие в различных цифровых сообществах и извлекать из этого пользу. К таким сообществам и ресурсам относятся, например, StackOverflow и GitHub. Это важно, потому что сфера разработки программ глобальна. Уже недостаточно обмениваться опытом только с членами своей команды.

Онлайн-сообщества, платформы и ресурсы призваны помогать программистам в решении проблем, а также в совершенствовании их базы знаний. Также это хороший шанс получить совет экспертов из числа самых известных кудесников мира технологий.

6. Навыки тестирования

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

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

Разработчики должны обладать многими софт скиллз

7. Умение позаботиться о своих финансовых интересах

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

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

8. Умение расслабляться

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

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

9. Поставка

Разработчики должны хорошо разбираться во всем процессе разработки ПО. Они должны знать о важности поставки, непрерывной интеграции, стейджинга, автоматизации сборки, сине-зеленого деплоймента и т. п. Все эти концепции имеют отношение не только к DevOps-отделу.

Хорошие программисты должны знать, как их код попадает к пользователям. Они также должны хорошо знать весь процесс поставки и кто участвует в этом процессе. Это помогает представлять проект в целом и относиться к нему более серьезно.

10. Умение видеть картину целиком

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

Важно уметь видеть картину целиком

11. Умение справляться с провалами

Достаточно очевидно, что многие проекты ожидает провал. Причины этого не всегда технические. Большинство проектов терпят крах по вине некомпетентного менеджмента. Программисты должны знать, как себя вести в таких ситуациях.

Они должны обладать способностью раскрывать причины, стоящие за провалом, и предсказывать потенциальные риски. Им нужно уметь хорошо разбираться в том, что делать с этими рисками, и никогда не сдаваться.

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

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



ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here