среда, 31 июля 2013 г.

Функциональные и компонентные команды. Какую выбрать?

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

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


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

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

Некоторые специализированные ресурсы (например, специалисты, разбирающиеся в стороннем проприетарном ПО - их мало, но на них существует огромный спрос) должны входить в состав команд и классифицироваться как "недоступные мгновенно ресурсы" (Non Instant-availability Resources). Предоставьте им полную свободу, чтобы они могли быстро отреагировать и решить данную проблему.

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

Первым делом, следите за своей организационной структурой. Формируйте функциональные команды. Да и компонентные тоже.

Комментариев нет:

Отправить комментарий