Во многих проектах объем работы слишком велик для одной скрам-команды. В таких случаях можно организовать несколько команд разработки. Параллельная работа команд координируется различными механизмами. Одни механизмы довольно формальны, другие возникают ситуативно. Проект, над которым одновременно трудится несколько скрам-команд, называется
Ядром, вокруг которого происходит все масштабирование, являются скрам-команды. Проект на 800 человек будет состоять из 100 команд по 8 человек. В этой главе мы рассмотрим, как координировать работу этих команд, сохраняя при этом производительность каждой отдельной команды. Мы также рассмотрим, как масштабировать проекты независимо от количества участников, предметной области программного приложения, технологии системы, количества локаций сотрудников и других аспектов масштабирования. В этой главе я продемонстрирую применение методов масштабирования скрама в критически важном проекте с сильным желанием руководства масштабировать его, чтобы несколько команд имели возможность разрабатывать один программный продукт одновременно из нескольких географических мест.
Мы рассматривали компанию MegaFund в третьей и пятой главах. Если вы, будучи клиентом MegaFund в 1997 году, хотели перевести деньги, открыть счет, торговать ценными бумагами или воспользоваться любым другим финансовым предложением MegaFund, у вас было два варианта: позвонить агенту по телефону или пойти в ближайший офис MegaFund и использовать туповатый терминал типа IBM 3270, подключенный через сеть к мейнфреймам компании. Хотя эта технология и была новаторской в 1980-х годах, спустя 17 лет конкуренты MegaFund позволяли клиентам самостоятельно управлять своими учетными записями с домашних или офисных компьютеров, сотовых телефонов, веб-устройств, пейджеров и телефонных голосовых систем в любой день в любое время. Это несоответствие стало неотложной бизнес-проблемой MegaFund. Требовалось как можно скорее устранить отставание от конкурентов и предоставить клиентам новую технологию. Все в MegaFund хотели начать свой собственный проект и тут же создать конкурентоспособное предложение.
MegaFund Systems Company (MSC) предоставляла MegaFund технологические услуги. MSC выявила, что лучшим способом быстро создать новые конкурентные продукты будет использование существующих баз данных через промежуточные серверы. Каждая организация должна была реализовывать собственные бизнес-функции, исполняемые на их серверах, а MSC реализовывала общие функции доступа к данным. Серверы должны были обрабатывать практически любые объемы транзакций в безопасной, перезапускаемой среде. Перечисленные характеристики были первыми нефункциональными требованиями, добавленными в бэклог продукта.
Владелец продукта хотел как можно скорее предоставить готовые решения и поэтому стремился запустить побольше команд. Однако до начала работы нужно было выполнить ряд подготовительных действий. Во-первых, для разделения работы между командами требовалась архитектура системы с достаточной детализацией. Во-вторых, чтобы несколько команд могли синхронизироваться и минимизировать объем конфликтующего кода, необходимо было развернуть среду разработки, поддерживающую процессы управления программным кодом и работу из нескольких локаций. И, в-третьих, чтобы интерфейсы взаимодействия между бизнес-объектами и системными данными были логичными и понятными, нужно было определить стандарты проектирования и программирования. Поэтому мы потратили время на выявление нефункциональных требований к масштабируемой инфраструктуре, поместили их в верхнюю часть бэклога и распределили между первыми спринтами.