1.2. Обзор Scrum и гибкой разработки программного обеспечения
На первый взгляд Scrum – очень простой процесс: это техника управления разработкой программного обеспечения, которая имеет относительно небольшой набор взаимосвязанных методов и правил, не слишком предписывающего характера, которым можно быстро научиться и получить возможность почти сразу повысить производительность.
Scrum естественным образом фокусирует всю организацию на создании успешных продуктов. Он обеспечивает создание через регулярные промежутки времени полезных функций, таких как требования, архитектура, дизайн, даже при использовании нестабильных технологий. Вы можете применять Scrum в начале проекта или в середине, он поможет сэкономить усилия при разработке.
Scrum эффективен, потому что оптимизирует атмосферу разработки, устраняет организационную надстройку и непосредственно синхронизирует рыночные требования со скоростью доставки необходимых функций. Scrum, основанный на современной теории контроля, производит лучшее из возможного программного обеспечения при помощи доступных ресурсов, приемлемого уровня качества и в требуемые сроки. В своей основе Scrum – итеративно-инкрементальный процесс разработки любого продукта или управления любой деятельностью. Он производит потенциально готовый к выпуску набор функциональности к концу каждой итерации.
Отличительные черты Scrum:
• инструмент, который может быть использован для достижения гибкости;
• гибкий процесс для контроля и управления разработкой;
• упаковка для существующих инженерных практик и методов;
• командный метод разработки систем в условиях, когда требования меняются быстро;
• контролирует хаос в условиях конфликта интересов и потребностей;
• улучшает коммуникации и обеспечивает максимальное сотрудничество;
• обнаруживает и устраняет все препятствия, стоящие на пути разработки и выпуска продукции;
• представляет собой способ добиться максимальной производительности;
• масштабируется от отдельных проектов до целых организаций и может управлять разработкой множества взаимозависимых продуктов и проектов с командой из более чем тысячи участников;
• позволяет каждому получать удовольствие от своей работы, вклада в общее дело и осознания, что сделал максимум возможного.
Подробное описание методов Scrum выходит за рамки этого документа (см. Швабер, 2004, и Швабер, 2002). В двух словах метод можно описать созданием бэклога продукта, где все требуемые функции организованы в список по их приоритетности (рис. А3.1).
Рис. А3.1. Модель эмпирического процесса для Scrum
Владелец продукта отвечает за утверждение изменений в бэклоге продукта. Реализация происходит после 30-дневных итераций, называемых спринтами, которые фокусируются в верхних пунктах списка в бэклоге продукта. Цель каждого спринта – поставка потенциально готового к выпуску инкремента продукта. В течение спринта контрольные точки разработки обсуждаются на совещаниях, называемых Scrum-митингами. На них сообщается прогресс и деятельность каждого члена команды и определяются проблемы, которые могут блокировать этот прогресс. Это позволяет Scrum-мастеру контролировать прогресс в отношении общих обязательств спринта и давать советы по корректировке процесса разработки для обеспечения успешного завершения спринта. Процесс разработки показан на рис. А3.1.
Помимо освоения механизмов работы Scrum, для руководителей важно понимать, что Scrum руководствуется несколькими основными принципами:
• верой, что эффективная разработка программного обеспечения лучше осуществляется через эмпирический процесс, а не через процесс планирования;
• убеждением, что после устранения организационных препятствий самоорганизованная и самоуправляемая команда естественным образом будет создавать лучшее программное обеспечение, чем было бы в противном случае;
• допущением, что вы можете получить наиболее ценное программное обеспечение в отведенное время и в рамках выделенного бюджета и все же вы не можете окончательно спрогнозировать точную функциональность, которую команда будет в состоянии предоставить.
Scrum заявляет, что признание этих ключевых принципов освобождает организацию от многих ограничений, препятствующих эффективной разработке программного обеспечения. Тем не менее высшее руководство должно признавать, что применение этих ключевых принципов предполагает значительные изменения в организации, которая сделала выбор по их внедрению. Так как эти принципы составляют основу Scrum, каждый заслуживает некоторого дополнительного обсуждения.
Читать дальше
Конец ознакомительного отрывка
Купить книгу