Навыки межличностного общения и программная инженерия

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

Один аспект программирования оставался неизменным на протяжении всей его истории; групповое кодирование или парное программирование. Кэтрин Г. Джонсон, ученый НАСА, чьи ручные расчеты орбитальной механики сыграли решающую роль в успехе первых беспилотных и пилотируемых космических полетов. Ее имя не могло быть упомянуто без ее интеллектуальных коллег Дороти Вон и Мэри Джексон.

Все было таким новым — сама идея полета в космос была новой и смелой. Учебников не было, поэтому нам пришлось их написать — Кэтрин Г. Джонсон

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

Парное программирование:обычно называемое «парным программированием» или «парным программированием» два программиста работают вместе, обычно на одной машине, но не всегда. «Водитель» управляет консолью компьютера, в то время как «наблюдатель» может разрабатывать стратегию в отношении того, какой код пишется и как может быть выполнен дизайн кода. Эти роли могут быть переключены в любое время в зависимости от опыта и времени.

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

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

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

Как заявляет редактор NY Times Клэр Кейн Миллер:

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

В продолжение Трейси Чоу, инженер Pinterest и Quora, заявляет:

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

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

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

  • Старайтесь встречаться с кем-то новым каждую неделю, в большинстве случаев будет достаточно дружеского «привет».
  • Приложите усилия, чтобы познакомиться с людьми, не принадлежащими к вашей культуре, расе, полу.
  • Получите работу официанта/бармена/гостеприимного работника с частичной занятостью. Эти работы требуют, чтобы вы были вежливы и приветливы с кем угодно из любого происхождения, а также значительно улучшили навыки межличностного общения.
  • Участвуйте в групповых мероприятиях вне работы. В большинстве мест есть походные группы, велосипедные прогулки, танцы (сальса, бачата) и т. д.
  • Изучайте новый язык, в большинстве мест есть бесплатные встречи, где вы можете обменяться языками, а также узнать о разных культурах одновременно.

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