Подтвердить что ты не робот

Как вы эффективно общаетесь в небольшой команде разработчиков?

Я работаю в небольшой команде (4-5 разработчиков) по одному проекту. Каждый член нашей команды разрабатывает различные функции из нашего проекта, и они очень независимы. Фактически, некоторые члены используют технологии, о которых другой член не знает. Это еще один проект, и в нем много общей бизнес-логики.

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

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

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

Итак, интересно, какая хорошая практика в этом вопросе. Какой у вас опыт? Есть ли решение вообще?

EDIT: Позвольте мне немного пояснить. Наша команда работает уже более 2 лет, а проекту почти 5 лет. Таким образом, мы не можем начать гибкое развитие, хотя мы могли бы предложить вам некоторые гибкие методы (например, стоячую встречу, я считаю ее очень полезной).

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

4b9b3361

Ответ 1

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

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

  • если вы пытаетесь написать какой-то качественный код, некоторые биты кода могут поддаваться парному программированию. XP люди говорят, что вы должны делать это все время, но я считаю это более полезным иногда и в другие времена. Например, когда один разработчик более опытен, чем другой, это помогает при наставничестве. Кроме того, когда есть определенная область, где вы хотите, чтобы информация распространялась. (Только один парень понимает часть системы, в следующий раз, когда это нужно пересмотреть, попросите этого парня сделать это с другим человеком, набирающим текст.) Кроме того, иногда часть системы действительно важна и имеет он правильно разработан, гораздо важнее строк в минуту. Это отличное место, чтобы иметь две головы по проблеме, и в конце два человека имеют тесное знание этого key code вместо одного.

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

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

И еще о парном программировании. Ключевая часть парного программирования для этого обсуждения заключается в том, что пара-прогромминг способствует совместному коду и перекрестному знанию. Причина, по которой я упоминаю конкретные места, в которых парное программирование особенно полезна, заключается в том, что политика " мы собираемся выполнять парное программирование" достигает примерно 10% времени. Другие 90%, сторонники практики не могут дать достаточно хороший ответ, когда большой менеджер спрашивает: "Почему все эти люди сидят на одних столах?" Преимущества парного программирования должны быть на 200% +, чем один программист, потому что вы используете двух человек. Выполнено в нужное время, парное программирование может увеличить соотношение "разрешение/доллар"; в неподходящее время он может уменьшить его.

Ответ 2

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

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

Ответ 3

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

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

Ответ 4

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

Я думаю, что стоячие места - это хорошее начало для вас. Вы можете найти дополнительную информацию, например. на Мартин Фаулер - это не просто стоять: шаблоны ежедневных стендовых встреч

Ответ 5

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

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

Ответ 6

Тимбилдинг

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

Ответ 7

Вот некоторые мысли с моей головы (небольшая компания, три программиста, привыкли работать в команде около 20).

  • Какой-то отчет о прогрессе, чтобы все могли видеть, над чем работают все остальные. "То, над чем я работаю", для некоторых людей работают, но я не поклонник их - они слишком регламентированы, а сидячая встреча для этой цели часто может превращаться в пустую трату времени и/или быть склонным к исчезновению вниз ratholes. В моей текущей работе у нас есть работа cron, которая напоминает нам отправлять наши еженедельные электронные письма о продвижении: в этом мы должны сказать, что мы достигли, следующие несколько пунктов в нашем списке задач (с оценками, где это необходимо), любые проблемы, которые мы 'встретились.
  • Отборочные уведомления о фиксации. Очень немногие люди платят больше, чем беглый взгляд на общедоступные сообщения (даже в моей небольшой команде), но если вы можете предоставить каждому разработчику возможность контролировать только те поля, в которых они работают, возможно, они смогут отслеживать их. (В любом случае, у вас не должно быть слишком много людей, работающих на одном и том же фрагменте кода. Слишком много поваров и все такое.)
  • Может быть полезна какая-то система продажи билетов для предоставления списка todo. Вы должны быть предельно ясно, как это управляется, хотя, особенно, что ваши процессы предназначены для получения и закрытия билетов.
  • Внутренняя документация. Это сложная проблема; некоторые разработчики ненавидят его, некоторые пишут слишком много, а некоторые пишут достаточно. По крайней мере половина проблемы заключается в индексировании и представлении; это нехорошо, если необходимая вам информация похожа на пять слоев глубоко в непроницаемом документе под названием "Остерегайтесь леопарда". Я для этого очень люблю поклонников вики, поскольку они настолько просты в использовании.
  • Выше определенного размера команды вы можете обнаружить, что для работы над вашей документацией вам может потребоваться полная работа. На предыдущем рабочем месте мы потратили деньги на поисковое устройство, постоянно сканируя наши сайты интрасети, что было замечательно.

Ответ 8

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

  • Ежедневная встреча на стойке обязательна. По моему опыту хорошо проведенный ежедневная работа - это лучшее, что можно команда. Все знают, что делают все члены команды, и могут помочь с любой проблемой.
  • Важна также вики. Вы можете использовать стандартные методы и технологий, которые используются в команде. Чтобы все активно участвовать, лидер назначает всем членам команды что-то писать о и поддерживать within wiki. Это особенно эффективно, когда каждый пишет о чем-то, что им особенно нравится или заинтересованных.
  • Попробуйте собрать всю команду или всех участников, которые на встречах, где анализируются требования/характеристики, приоритет и т.д. Не имеет значения, являются ли некоторые члены команды не особенно работает в этой области проекта. Это даст контекст для всех и более широкое видение проекта. Это будет разрешать (и поощрять) их к участию в этих обсуждениях проекта в целом, а не только сосредоточиться на том, что они работают. Эта практика будет мотивировать много дискуссий, все из нас, когда нам дают шанс и знания (требуется только очень маленькая сумма) имеют мнение и хотели бы прокомментировать все проекта.
  • Заключительная практика, которая мотивирует много разговоров "магазин", заключается в том, что каждый две недели какой-то участник дает небольшую презентацию о какой-либо технологии или техника. Обобщение включает в себя практические упражнения и время обсуждать и задавать вопросы.