Момент истины - барабанная дробь, и... Да, в Microsoft испльзуют SCRUM! Не уверен, что абсолютно для всех своих продуктов, но для большинства наверняка.
Лично меня это обстоятельство весьма удивило, ведь я ещё помню времена появления и бурного продвижения "водопадно-спирального" MSF, когда достаточно уверенное владение MSF требовалось даже для весьма "попсового" сертификата MCSD. У меня ещё где-то валяются пару увесистых справочников по MSF, которые я планировал когда-нибудь заучить наизусть в качестве "идеального" процесса разработки, который испльзует "сам Microsoft!" Не судьба. Видимо ближайшее время этим справочникам место на свалке, как и любой идеологии, в которую уже не верят даже сами её создатели.
Удалось пообщаться со старожилами Microsoft, которые ещё работали согдасно MSF, и работали надо признать весьма успешно. Однако после провала MSF в одном из крупных продуктов (как я понимаю, это был Windows Vista, выход которого был задержан на 2 года в том числе и по причине несовершенства процесса), Microsoft массово перешёл на SCRUM, где пребывает и по сей день.
Тем не менее, искушённый читатель нверняка знает, что "провозгласить следование процессу SCRUM" и "следовать процессу SCRUM" - это, как говорят в Одессе, две большие разницы. Поэтому немного о том, как именно в Microsoft соблюдается SCRUM:
- работа над продуктом ведётся небольшими командами по 5-10 человек, в которых присутствуют представители 3-х ролей: Developer, QA, Program Manager.
- работа каждой команды над своей частью проекта разбита на небольшие промежутки времени, sprint'ы продолжительностью 20-30 дней, к концу каждого из которых выделенный "кусочек" функциональности доводится до необходимого уровня готовности, задаваемого в начале спринта.
- внутри каждой команды каждый день проводятся 15-тиминутные SCRUM митинги, задача которых - "держать руку на пульсе" спринта, а именно каждый участник спринта говорит о работе за последние 24 часа и на следующие 24 часа. Если возникают вопросы или есть почва для дискуссии, то назначается отдельный митинг, куда приглашаются только заинтересованные участники. Таким образом оперативно устраняются "блокировки" в работе и всегда можно проследить динамику протекания спринта, затраты времени на ежедневные митинги при этом минимальны.
- SCRUM соблюдается также и в том, что называется "атрибутами процесса", а именно в определённой форме документирования задач и их готовности, сбора метрик и т.п.
Вы спросите: а как же тогда известные утверждения о том, что в Microsoft у всех всегда есть менеджер и любой сотрудник находится не дальше чем в 7-ми ступеньках от Стива Балмера? Это правда и в этом "изюминка" реализации SCRUM в Microsoft.
Помимо SCRUM-команд, которые формируются динамически согласно требований продукта, и все участники которых выступают как равноправные individual contibutors, все сотрудники ещё входят в состав определённых "статических" команд, которые формируются по признаку специализации (может быть команда только developer'ов или только QA, никаких "смешений"). В этих "статических" командах роли уже распределяются в "классическом" иерархическом представлении: individual contibutor, senior individual contibutor, team manager (например developer - senior developer - development manager или QA - senior QA - QA manager). Состав этих команд меняется намного реже, т.к каждый участник такой "статической" комады может учавствовать в одной или нескольких (или ни одной) SCRUM-командах. Менеджер такой команды является непосредственным "начальником" для каждого члена команды, а у менеджеров команд есть в свою очередь свой "специализированный" (development или QA) менеджер продукта, а у тех - general manager продукта, что и представляет собой известную иерархию Microsoft.