Командное общение (особенно по электронной почте) - по умолчанию открыто или закрыто? - PullRequest
6 голосов
/ 23 марта 2009

Я достаточно опытный разработчик C # (около 5 лет опыта), который недавно был назначен техническим руководителем моей первой команды разработчиков (в зависимости от 3-5 других разработчиков). В течение последних 4 месяцев на этой должности постоянно возникает одна дилемма: попытаться найти правильную степень информированности об общении между менеджером проекта, менеджером по работе с клиентами, клиентами, дизайнерами, генеральным директором и мной (особенно по электронной почте). .

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

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

Я подумал о том, чтобы просто настроить BCC для всех разработчиков, чтобы они могли фильтровать эти электронные письма и, по сути, «подписываться» на все электронные письма, но я обеспокоен тем, что некоторые разработчики просто воспримут это как дополнительный шум для решения. Это может открыть дверь «слишком многим поварам», если все разработчики захотят внести свой вклад в слишком много дискуссий. Однако, с другой стороны, другие мнения могут помочь мне принять более правильные решения (например, стиль House MD).

Фу ... так много, чтобы рассмотреть. У кого-нибудь есть мудрое руководство в этой области?

Ответы [ 7 ]

6 голосов
/ 02 апреля 2009

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

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

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

Ну, это не так много о честности или уважении, новая работа заключается в следующем:

  • Направьте команду разработчиков (в основном на личном примере и создавая образы, изображающие цель).

  • Будьте уровнем абстракции между командой и другими организационными единицами.

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

  • Скрывает внутреннюю сложность, которая не имеет отношения к поставленной задаче (например, конкретную реализацию алгоритма) от внешнего наблюдателя.

  • Делает вещи, которые могут повлиять на внешнего пользователя явными (исключения, которые могут быть выброшены, любые ограничения и ограничения и т. Д.).

  • Всегда дает содержательный отзыв.

  • Действует последовательно.

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

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

  • Решите, какую последовательность действий необходимо выполнить,

  • или просто подтвердите и сохраните для дальнейшего использования,

  • или наблюдение,

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

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

Существуют и другие веские причины для того, чтобы не посещать CC или ни BCC, независимо от вашей должности:

  • TO означает «принять меры», CC - «принять к сведению для дальнейшего использования», BCC - «подслушивать или рассылать сообщения». Вы должны быть осторожны, когда используете ту или иную электронную почту для группы людей:

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

    • CC только те, кого вы хотите принять к сведению информацию для дальнейшего использования. Если вы ожидаете, что несколько электронных писем будут отправляться туда и обратно до достижения соглашения или если проблема будет решена, а не «CC», лучше отправить позднее краткое подтверждение другим сторонам, которые должны быть уведомлены. Помимо экономии времени каждого и избежания неправильного толкования из-за того, что кто-то обращает внимание на не окончательное общение, которое поможет сделать обмен более личным, протекать более естественно и уменьшить формализм и бюрократизм. Часто сообщения электронной почты CC-d обрабатываются формально, и это не всегда хорошо (но иногда именно то, что вы хотите).

    • Использование BCC почти никогда не разрешается. Знание того, что кто-то подслушивает ваши разговоры, если обнаружится, легко разрушит вашу надежность. Это просто вопрос «когда». И должна ли ваша команда беспокоиться о том, что вы, возможно, обменивались беседами с кем-то еще? Массовая рассылка через BCC в большинстве случаев также ошибочна, создается впечатление, что электронная почта специально адресована получателю.

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

  • Некоторые разговоры лучше всего проводить «в автономном режиме» (по телефону или, что еще лучше, лицом к лицу), потому что это дает вам больше возможностей для маневра. Вещание или формализация в письменной форме - это как загнать себя в угол. Вы всегда можете подтвердить письменно последнее.

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

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

5 голосов
/ 23 марта 2009

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

Определенно не создавайте культуру BCCing.

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

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

3 голосов
/ 23 марта 2009

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

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

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

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

EDIT: На домашней странице Джоэла есть два раздела под названием Tech Lead и Program Manager. Посмотрите на статьи там для получения дополнительной информации о менеджерах программ, особенно Коммутаторы неавтоматизированных задач считаются вредными .

3 голосов
/ 23 марта 2009

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

BTW Cut / Paste из электронной почты в вики кажется странным делом, кто-нибудь знает легковесную .Net wiki, что я тоже могу отправлять контент по электронной почте?

3 голосов
/ 23 марта 2009

Один из способов может заключаться в том, чтобы не пересылать все эти электронные письма и раз в неделю собирать всю необходимую информацию, изменения дизайна и т. Д. В еженедельное собрание. Я определенно не стал бы рассылать кучу писем разработчикам. Конечно, если обсуждается что-то критическое, то на это следует обратить внимание. Тем не менее, попробуйте еженедельный обзор и обсуждение соответствующих деталей.

1 голос
/ 24 августа 2010

Я вижу этот вопрос через год после того, как он был опубликован, однако я могу добавить свой опыт с некоторыми конкретными данными для моего случая. Для 2-3 разработчиков проекта я в основном работаю один на один. Много раз я делаю это по чату или телефону, так как большая часть моей команды проводит много времени в домашнем офисе. Встречи время от времени неизбежны, в основном, когда проект начинается (1-2 встреч разработчиков, как правило, достаточно, чтобы начать достаточно сложный проект), но, как правило, все общение с остальной частью компании происходит через меня, и разработчики получают Дайджест. Единственное исключение - когда я связываюсь с разработчиком напрямую с пользователем (не с менеджментом!), Чтобы проработать детали проекта.

Я стараюсь избегать регулярных собраний (еженедельных или ежедневных) и планирую собрания только тогда, когда по крайней мере два из них происходят, в следующем порядке:

  1. Важная информация поступает (в зависимости от срочности это может подождать до недели)
  2. Разработчики находятся в офисе, желательно по другим причинам (встречи разработчиков с разработчиками)
  3. Клиент доступен (выбор там невелик, но я стараюсь проводить встречи и связывать разработчиков с одним практическим экспертом на стороне клиента позже)
  4. Мне нужен совет по дизайну (так как я технический руководитель, я отвечаю за большинство архитектурных решений высокого уровня)

Для команд из 4-8 человек (8 человек обычно означают две команды) я обнаружил, что короткой 30-минутной встречи примерно раз в неделю более чем достаточно, чтобы держать всех в курсе событий. Это, конечно, в дополнение к индивидуальным занятиям, которые я делаю ежедневно для начинающих разработчиков и примерно два раза в неделю для старших разработчиков.

Для одного на один я предпочитаю, чтобы разработчики связывались со мной, когда они ищут что-то еще или когда у них есть вопросы по заданию, которое они только начали выполнять. Для меня это также отличный способ следить за тем, как идут дела, и разработчикам не нужно думать о том, чтобы держать меня в курсе. Я имею тенденцию избегать электронной почты, когда IM достаточно, иначе переключаюсь на телефон (когда есть что-то, чтобы объяснить или обсудить) и на электронную почту, когда:

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

Существуют также встречи разработчиков с разработчиками, когда им необходимо что-то согласовать (например, когда разработчикам на Java и Javascript необходимо проработать детали интерфейса).

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

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

0 голосов
/ 23 марта 2009

Спросите их, что бы они предпочли. Я предполагаю, что они предпочли бы не быть cc'd на каждое электронное письмо и выбрал бы короткие устные обновления на регулярной основе.

...