Софт за 30 дней. Как Scrum делает невозможное возможным - Джефф Сазерленд 6 стр.


Эмпиризм обеспечивает ряд факторов.


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

2. Контроль. Если информация показывает, что окончание работы может быть позднее, чем необходимо, вы можете уменьшить объем требований и количество оставшихся функциональных возможностей, которые необходимо доделать. К примеру, в конце второй итерации, с оставшимися 13 блоками работы для выполнения требований, вы можете уменьшить количество оставшихся блоков до десяти. Если команда разработки продолжит выполнять по пять блоков работы за итерацию в течение последующих двух итераций, функционал будет полностью закончен к концу четвертой итерации.

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

4. Управление рисками. Команда разработки закончила только два блока работы в каждой из первых трех итераций. В конце третьей прогноз показал, что окончание разработки не случится ранее середины десятой итерации. Если начальный бюджет был 100 тысяч долларов, новый прогноз предполагает перерасход средств на 150 тысяч. Если возврат инвестиций в размере 250 тысяч долларов невозможен, то проект можно отменить уже после третьей итерации.

КОНЕЦ ОЗНАКОМИТЕЛЬНОГО ОТРЫВКА

4. Управление рисками. Команда разработки закончила только два блока работы в каждой из первых трех итераций. В конце третьей прогноз показал, что окончание разработки не случится ранее середины десятой итерации. Если начальный бюджет был 100 тысяч долларов, новый прогноз предполагает перерасход средств на 150 тысяч. Если возврат инвестиций в размере 250 тысяч долларов невозможен, то проект можно отменить уже после третьей итерации.

Практические методы, основанные на эмпиризме

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

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

Наши идеи о качествах наиболее эффективных команд разработчиков в значительной степени опираются на работу Такеучи и Нонаки, которые изучали командную работу Гарвардском университете[3]. Они наблюдали за поведением автономных команд, мотивированных высшей целью, вовлеченных в перекрестное обучение и работавших в коротких итерациях. Активное сотрудничество этих команд способствовало генерированию цикла знаний и вело к созданию инноваций, более быстрому времени выхода на рынок и более высокому качеству.

Действия команд напоминали им игру в регби, поэтому они назвали этот стиль управления разработкой проекта Scrum  так в регби называется момент возобновления игры после того, как мяч вышел за пределы поля.

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


Уважение к личности сотрудника. В некоторых компаниях к сотрудникам относятся как к детям, их мнение не учитывается, им просто указывают, что именно делать в каждый момент в течение дня. Для того чтобы люди были вдохновлены и вовлечены в свою работу, следует создать атмосферу содействия, когда с сотрудниками обращаются с уважением и восхищением. Scrum призван обеспечить такую обстановку. Мы были не первые, кто решил применять идеи и практические методы, используемые в Scrum. Большинство из них представляют собой передовые методы в индустрии. Тем не менее Джефф действительно сосредоточен на аспекте «люди» в среде разработки программного обеспечения Scrum.

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

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

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

КОНЕЦ ОЗНАКОМИТЕЛЬНОГО ОТРЫВКА

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

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

Многоуровневое и мультифункциональное обучение. Обучение в команде идет в разных направлениях. В 3М, например, инженерам рекомендуется использовать 15 % своего рабочего времени, чтобы заниматься своей мечтой. Если команда работает с компанией Honda, ее члены могут быть отправлены в Европу, чтобы «осмотреться и понять, что там происходит». Идея в том, что обучение часто происходит в необычных местах и необычным способом и, самое главное, инициируется сотрудниками и поощряется и направляется руководством.

Тонкий контроль. Несмотря на то что команда разработки предоставлена сама себе, она работает не бесконтрольно. Акцент делается на самоконтроле и достаточном количестве контрольных точек, которые устанавливаются для предотвращения нестабильности, неопределенности и хаоса. Контроль со стороны равного и «контроль с любовью»  основы тонкого контроля. Динамическое движение возникает только в окружении, заботливо созданном руководством. Командные лидеры тщательно отбираются, а в самой команде иногда происходит замена участников, чтобы создать правильную динамику и уверенность, что люди смогут ужиться и работать вместе. В команде должен быть набор общих ценностей, а стимулы должны быть основаны на командной работе. При этом следует допускать возможность ошибок.

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


Мы обнаружили, что некоторые практические методы также улучшают разработку программного обеспечения.


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

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

Состав команды. Команды более продуктивны, если имеют один и тот же состав участников. Продукты более надежны, когда команда имеет все кросс-функциональные навыки, сосредоточенные на работе. Изменение состава команды часто временно снижает ее производительность

Назад Дальше