Как помощь другим в сервисах вопросов и ответов (stackoverflow и др.) может улучшить коммуникативные навыки в IT-команде
Как-бы странно не казалось, но меня уже не раз упрекали в том что я иногда трачу личное время на помощь людям по профильным IT-вопросам. Типа достаточно классно кодить и раздавать задачи другим и все будет тип-топ.
Это и сподвигло меня на написание подобной статьи, ведь при построении работы в команде, приходит (зачастую неожиданно) понимание важности коммуникации между различными группами специалистов. Эти группы могут разделяться как по специализации (межпрофессиональные взаимодействия), так и по уровню навыков и опыта (новомодные junior, middle, senior и пр.).
Пример важности коммуникативных навыков
Представим очень упрощенную ситуацию, где вы неплохой фронтенд-разработчик и у вас есть пара менее опытных помощников (стажеров или junior) и при этом вам надо взаимодействовать с опытным web-дизайнером (senior).
Так вот, этот опытный web-дизайнер может разбираться в вашем стеке технологий не больше ваших стажеров. Но является ли он при этом малоопытным и бесполезным специалистом? Конечно, нет. Просто он является специалистом в своей области, а вы в своей, т.е. каждый занимается своим делом, разделение труда и пр.
Теперь перейдем к паре стажеров, которые будут постоянно нуждаться в каких-то пояснениях, уточнениях, руководстве и пр. Фактически вам для кооперации, необходимо будет наладить коммуникации как с опытным web-дизайнером так и с малоопытными стажерами. Нетрудно догадаться, что это будут разного рода коммуникации, даже если в обоих случаях вам будет необходимо обьяснять очевидные для вас вещи.
К этому стоит еще добавить и то, что стажеры могут отличаться в профессиональном плане друг от друга. Тогда и в этом плане разница в социальных коммуникациях будет отличаться.
Оценкой эффективности вашей работы будет итоговый результат всей вашей команды, с вами в их числе. И тут будут играть огромную роль, насколько грамотно налажены коммуникативные связи с конкретными группами людей (стажеры, специалисты других профилей, руководство, клиенты и пр.), а то в ином случае, у вас будет ситуация, аналогичная изображенному ниже:
Вообще стоит заметить, что коммуникативные навыки при разработке ПО влияют на все этапы жизненного цикла разработки ПО и управленческого цикла менеджмента, которые в свою очередь зависимы друг от друга.
Есть очень множество полезных способов отточить свои коммуникативные навыки для работы с IT-командой (конференции, митапы и пр.), но сейчас я хочу обратить внимание именно на использование сервисов вопросов и ответов, наподобие Stackoverflow и пр.
Влияние систем вопросов и ответов по IT-тематике на коммуникативные навыки
За основной пример я беру Stackoverflow, хотя подобное также может подойти и другим подобным сервисам. Просто Stackoverflow один из самых популярных, имеет достаточно жесткие, четкие, но в тоже время отточенные правила, благодаря которым этот сервис стал бесценным помощником для многих разработчиков и хранилищем зачастую уникальных решений. К этому опыту стоит присмотреться.
Взгляд со стороны, которой нужна помощь
Например, если вам нужна помощь по какому-то вопросу, то для повышения шансов на корректный ответ, вам нужно:
- вначале самостоятельно погуглить про проблему в том же google.com или yandex.ru – не каждому нравится брать на себя роль поисковика, когда очевидные вещи могут находится поисковиком по самым простым запросам.
- попытаться решить проблему самостоятельно – ибо мало кому понравится делать за вас вашу работу, но в тоже время помочь с решением - это вполне нормально.
- детально раскрыть суть проблемы (желательно с примерами и иллюстрациями) – ибо те, на чью помощь вы расчитываете, не являются телепатами.
- предоставить доступ к системе, где можно легко и быстро увидеть воочию суть проблемы. Например в случае с JS и TS вы можете использовать online-песочницы, подобные codepen,
- предоставить все вышеперечисленное, в удобном и оформленном для чтения виде.
Ко всему этому нужно подходить без фанатизма, но с определенным усердием. Вначале, все это кажется муторным и многословным, но с опытом у вас это не будет занимать много времени. Знаете, как бесят индивидуумы, которые ленясь подготовить свой вопрос тупо отправляют проблемный код скриншотом, а затем удивляются, что никто не спешит помогать. Это очень не этично, ибо вы сэкономили время, но зато тот кто вам помогает, тратит свое время впустую на перенабирание вашего кода, вместо того, чтобы уделить внимание непосредственно проблеме. Проще говоря – умейте ценить и свое и чужое время.
Взгляд со стороны помогающего
А теперь мы посмотрим на ситуацию, когда к вам обратились за помощью и вам нужно дать ответ. Опять же, если мы посмотрим на примере Stackoverflow, то:
- ваш ответ должен содержать в себе решение конкретно обозначенной проблемы. Например, в случае вопроса "как сделать подобную выборку в СУБД X?", реакция на подобии "не используйте базу данных X, а лучше возьмите Y" не являются ответом, а максимум советом. Соответственно намного полезней ответ в стиле "Вы можете сделать это запросом Z. Вообще, для подобных задач я рекомендую обратить внимание на СУБД Y" – ибо, что самое главное, такой ответ содержит в себе решение обозначенной проблемы, а не только совет.
- вам необходимо дать развернутый ответ, описанный простыми словами, а для сложных элементов дать пояснения или ссылки на разъясняющую документацию.
- предоставить легко перепроверяемый пример кода (например в той же online-песочнице), с явным указанием всех дополнительных зависимостей.
- как и в случае с вопросом, ответ также должен быть представлен в удобном и оформленном для чтения виде.
Во всех случаях, старайтесь минимизировать количество орфографических ошибок в тексте и придерживайтесь документального стиля избегая использования неуместных или непрофессиональных жаргонов и другого мусора.
Влияние на навыки коммуникации
Постоянно задавая вопросы и отвечая на других вы будете понимать как со стороны задающего вопрос, так и отвечающего:
- когда вопрос относится к проблеме XY, а когда нет;
- как правильно надо задавать вопрос, чтобы:
- вам быстрее и понятнее смогли помочь;
- не тратили кучу времени и сил;
- не додумывали за вас упущенные детали.
- как надо подавать ответ, чтобы:
- лишние вопросы отпали сразу;
- задающий вопрос понял;
- человек с отличным от вашего бэкграундом по навыкам вас легко понял.
- как не тратить время на долгие переписки, сразу указывая все что нужно и без излишеств;
- как при этом оставить о себе хорошее впечатление (на будущее);
- как не тратить время на тех, кто вместо помощи, перекладывает на вас решение проблемы.
Как я уже говорил, вначале будет получаться не очень, но со временем вы заметите, что уже на автомате, когда к вам кто-то обращается, вы будете легко давать качественный квалифицированный ответ не тратя на это много времени и сил.
Заключение
Данную статью я сделал на основе своего опыта и не претендую на то, что она каждому поможет. Просто я раньше к этому относился немного негативно (топил за анонимность), о чем искренне жалею. И если на том же qna.habr.com я зарегистрирован давно (как и на самом habr.com), то вот на stackoverflow.com я зарегистрировался и стал помогать ответами только недавно, хотя обращался к чтению этих ресурсов с давних времен. Просто несколько лет назад я стал подтягивать разговорный английский и правила Stackoverflow как раз подгоняют к ведению общения в едином стиле разных групп IT-специалистов разных национальностей из разных стран и пр.
Когда вам задает вопрос программист из Индии, вы ему отвечаете, а с вас в свою очередь уточняет программист из Германии и после определенных дискуссий вырабатывается прекрасное решение проблемы – это круто.
И когда впоследствии вы слышите от кого-то фразу "блин, это так очевидно, когда обьяснено, спасибо", вы понимаете, что достигли момента, когда вы овладеваете способностью обьяснить сложные вещи, связанные с разработкой, менее опытным коллегам. Это в IT команде очень ценное качество.
Но еще раз уточню, что совет данной статьи - это только один из множества способов тренировать такие навыки и он ни в коем случае не должен быть единственным. Так что тренируйте свои гибкие навыки (soft skills) – в жизни это пригодится не раз.