Концепция: Организация сотрудничества коллективов
Этот принцип объясняет как развивать эффективное сотрудничество.
Основное описание

Введение

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

      
Преимущества
  • Эффективность работы коллектива
  • Лучшая взаимосвязь между потребностями клиента и разработкой программного обеспечения.
Что делать
  1. Побуждайте сотрудников работать лучше
  2. Создавайте  автономные коллективы
  3. Поощряйте взаимодействие сотрудников разных профилей (аналитиков, разработчиков, тестировщиков)
  4. Создавайте среду для эффективного сотрудничества
  5. Управляйте возникающими артефактами и задачами так, чтобы увеличивать сотрудничество и стимулировать интуицию сотрудников.
  6. Объединяйте коллективы программистов, маркетологов и операторов
Чего не делать
  • Поощрять героизм разработчиков, желающих работать сверхурочно и даже в выходные.
  • Создавать коллектив из узко специализированных специалистов, обладающих мощными средствами разработки при слабом сотрудничестве между ними и слабом взаимодействии между различными средствами разработки. Этот подход является следствием неправильного предположения, что если каждый сделает свою работу хорошо, то результат будет хорошим.

Обсуждение 

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

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

Первый шаг для достижения эффективного сотрудничества - побуждать участников коллектива добиваться наилучших результатов. Идея автономного коллектива очень популярна в сообществе agile. За дополнительной информацией обратитесь Концепция: Практики Agile и RUP); эта концепция подразумевает убеждение коллектива в необходимости выполнить задачу и, затем предоставление этому коллективу полномочий принимать решения по всем вопросам и непосредственно влиять на результат. Если люди знают, что результат зависит от них, они гораздо более заинтересованы сделать работу хорошо. Девиз agile: "Создавайте проекты с заинтересованными людьми. Предоставьте им условия и поддержку и доверьте им сделать работу."

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

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

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

Главная цель данного принципа - объединить коллективы программистов, маркетологов, и операторов. С ростом важности программного обеспечения в бизнесе необходимо создать тесное взаимодействие между следующими коллективами: 1) принимающим решение о настоящем и будущем бизнеса, 2) разрабатывающим поддерживающее программное обеспечение и 3) операторов приложений. В большинстве организаций сообщение между этими тремя коллективами находится на низком уровне.