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

Введение

Программы разрабатывают люди с разными интересами, разным опытом и знаниями. Чтобы разработка программ была эффективной, люди должны работать вместе.

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

Подходы (Practices)

Данная статья описывает подходы, основанные на этом принципе.

Поддерживайте общее понимание проекта

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

Обеспечьте активную связь и обмен информацией между всеми участниками проекта. Не основывайтесь на предположениях, что каждый сам может найти то, что ему нужно, или что все участники имеют одну общую точку зрения на проект. Используйте артефакты, такие как Обзор (Vision), Перечень Работ (Work Item List) и Требования (Requirements) чтобы выработать общее понимание между заинтересованными лицами и разработчиками. Используйте архитектуру проекта чтобы, сориентировать разработчиков и скоординировать их интересы. В конце каждой итерации вырабатывайте общее соглашение о том, достигнуты ли цели итерации, и какие действия нужно предпринять, если они не достигнуты.

Создайте доверительную атмосферу

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

Поэтому предпринимайте специальные действия для создания высокодоверительной атмосферы:

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

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

  • Примерьте чужую шкуру. Уважайте и постарайтесь понять точку зрения других, прежде чем критиковать их идеи или отвечать на критику с их стороны.

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

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

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

Разделяйте ответственность

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

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

Непрерывно обучайтесь

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

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

Организуйте команду на основе архитектуры системы


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

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