Статьи

Усильте свою команду, используя Scrum правильно

хватка

Ниже приведен небольшой отрывок из нашей недавней книги Scrum: от новичка до ниндзя , доступной бесплатно для членов SitePoint Premium . Печатные копии продаются в магазинах по всему миру, или вы можете заказать их здесь . Мы надеемся, что вам понравится этот экстракт и вы найдете его полезным.

Что такое Scrum?

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

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

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

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

Предупреждение: не путайте простое применение терминов Scrum с фактическим использованием Scrum

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

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

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

Примечание: нечетный словарь Scrum

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

Краткая история Scrum

Первоначальная концепция scrum пришла из Японии и была представлена ​​в 1986 году в рамках игры по разработке новых продуктов Хиротаки Такеучи и Икудзиро Нонаки. Они применили концепцию схватки, взятой из регби командной игры, чтобы описать межфункциональную организацию команды, основанную на продвижении вперед в многоуровневом подходе.

Их концепции были кодифицированы как методология Scrum на совместной презентации в 1995 году Кена Швабера и Джеффа Сазерленда, основанной на их личном опыте применения концепций в их собственных организациях. Эта работа вдохновила книгу 2001 года Agile Software Development with Scrum , написанную Швабером и Майком Бидлом.

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

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

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

Сравнивая Scrum и водопад

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

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

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

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

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

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

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

Предупреждение: смешивание схватки с водопадом

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

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

Причины выбрать Scrum для Интернета и мобильных устройств

Мы рассмотрели, как работает Scrum, и почему это продуктивный способ структурировать разработку веб-приложений и мобильных продуктов. На этом этапе стоит вспомнить некоторые основные моменты применения Scrum, в частности, для разработки веб-приложений и мобильных продуктов.

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

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

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

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

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

Примечание: некоторые термины Scrum определены

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

проворный

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

Артефакт

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

блокатор

все, что мешает инженеру двигаться вперед по выполняемой задаче

Покупатель

кто бы ни нанял команду для создания продукта

Инженер / разработчик

человек, ответственный за создание и поддержание технологии, которая входит в продукт

Инженерная организация

часть компании, где инженеры работают над созданием и обслуживанием продуктов

Продукт

что инженерная организация строит или обслуживает для заказчика

Резерв продукта

постоянно развивающийся список потенциальных функций или изменений для продукта

Владелец продукта

человек, который помогает определить продукт для команды, и чья работа может быть на линии, если клиент не удовлетворен

ретроспективный

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

ритуальный

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

Скрам Мастер

человек, ответственный за поддержание артефактов и надзор за ритуалами схватки

спринт

фиксированное количество дней, в течение которых команда может работать вместе, чтобы произвести согласованный набор изменений в продукте

Спринт отставание

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

История

четкий и последовательный способ разбить на части, сформулировать и обсудить работу, которую может понадобиться команде над продуктом

пользователь

человек, который будет использовать продукт

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

Чувствительность к времени

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

Модульная разработка

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

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

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

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

Гибкое планирование

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

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

Отражение и улучшение

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

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

Резюме

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

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

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

Понравилась эта глава? Загрузите всю книгу (и всю нашу библиотеку книг!), Присоединившись к SitePoint Premium