Найти тему

25 характеристик великолепной команды разработки

Это перевод статьи Барри Оверима, профессионального тренера по Scrum и автора блога на Scrum.org.

Он описывает 25 характеристик, которыми, по его мнению, должна обладать хорошая scrum-команда.

Великолепные команды разработчиков...

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

Применяют сворминг (swarming, или роение). Команды осваивают концепцию роевой работы, или сворминга. Это метод, когда вся команда работает с немногими задачам одновременно. Лучше всего — по одному элементу за раз. Каждая задача завершается гораздо быстрее, поскольку много людей работают над ней одновременно, а не последовательно.

Используют «спайки» (spike solutions). Великолепные команды используют спайк для решения сложных технических, архитектурных или дизайнерских проблем. П/п: спайк — это метод, пришедший из XP. Создается минимальная рабочая программа для изучения потенциальных решений и последствий. Таких программ может быть несколько под разные гипотезы.

Уточняют бэклог всей командой. Лучшие команды разбирают бэклог. Они понимают, что качественно составленный бэклог — это основа устойчивого развития. Несмотря на то, что владелец продукта несёт ответственность за бэклог, вся команда участвует в его формировании.

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

Критикуют идеи, а не людей. Великие команды разработчиков критикуют идеи, а не людей. Точка.

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

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

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

Не ходят на «совещания». Великолепные команды рассматривают события Scrum как возможности для общения. Тобиас Майер прекрасно описывает это в своей книге ‘The Peoples Scrum': «Scrum сосредоточен на людях, а между людьми есть общение. Есть разговоры о планировании, текущей ситуации или оценке работы. У нас эти беседы ведутся в подходящее время и имеют свою продолжительность, чтобы актуализировать работу. Если не будет этих разговоров, мы не узнаем, что делаем, мы не будем знать, куда мы идём, и будем повторять те же ошибки».

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

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

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

Сохраняют ретроспективу веселой. Команды задумываются над форматами ретроспективы. Они поддерживают scrum-мастера с творческими, интересными и полезными форматами и помогают провести их.

Поставляют новые фичи за спринт. Великолепные команды постоянно расширяют возможности. Им больше даже не нужны спринты. Обратная связь собирается и обрабатывается всякий раз, когда история «сделана»; это создает поток непрерывной доставки ценности.

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

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

Обновляют scrum-доску самостоятельно. Великолепные команды разработки поддерживают scrum-доску в актуальном состоянии. Она — точное отражение реального положения дел. Команде не нужен scrum-мастер, чтобы воодушевлять их на это; они сотрудничают со scrum-мастером при ведении доски.

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

Не нуждаются в определении готовности. Великолепные команды разработчиков глубоко понимают, что значит «Готово». Для членов команды запись критериев в графе «Done» больше не требуется. Они их знают. Единственная причина использовать их — сделать состояние продукта прозрачным для стейкхолдеров.

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

Управляют составом команды. Участники сами управляют собственной командой. Когда нужны определённые навыки, они сотрудничают с другими командами. У них они могут «нанять» определённых сотрудников.

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

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

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

Вот и всё. Это некоторые характеристики и навыки великолепных команд разработки. Есть, вероятно, гораздо больше примеров. Если вы знаете их, не стесняйтесь делиться ими!

А вы согласны с мнением Барри? Что можете дополнить, а с чем в корне не согласиться?

Источник