Когда-то давно, когда я только начинала изучать Скрам, я сделала себе шпаргалку-конспект, для того, чтобы повторять информацию перед интервью. Впоследствии, отправляла свою шпаргалку знакомым и друзьям. Сегодня впервые решила опубликовать ее, надеюсь, что она кому-то пригодится.
Данная шпаргалка не исключает чтение Скрам-гайда 2020 года. Скачать гайд можно по ссылке.
Почитать про Скрам и посмотреть полезные видео можно в базе знаний Atlassian. Ссылка тут.
Что такое Скрам
Самая частая ошибка тех, кто приходит на интервью - это называть Скрам методологией.
Определение из гайда:
“Скрам - это легкий фреймворк, который помогает людям, командам и организациям создавать ценность с помощью адаптивных решений комплексных проблем.”
В чем же заключается отличие фреймворка от методологии? В целом, вещи достаточно похожие, обе определяют правила и церемонии, которым необходимо следовать. Но в самом определении фреймворка кроется ответ - слово “адаптивность”, и оно и является главным различием. Для того, чтобы понять это различие, нужно просмотреть таблицу ниже:
Методология |
Фреймворк |
Говорит ЧТО, КОГДА и КАК делать |
Говорит ЧТО делать |
Полное руководство по ведению проекта. Подразумевает строгое выполнение всех шагов, правил и техник методологии в сроки, установленные методологией, и предоставляет людям подробные инструкции |
Неполное руководство по ведению проекта. Подразумевает строгое выполнение той части, которая необходима для реализации теории Скрам, НО основан на опыте команды и не предоставляет людям подробных инструкций |
Собрание обязательных шагов для завершения проекта. Использует алгоритмический подход. Нет гибкости, проект должен пройти все предписанные шаги |
Собрание процессов, техник и методов для завершения проекта. Использует эмпирический подход и бережливое мышление. Достаточно гибкий и подразумевает под собой адаптивный подход, основывающийся на наблюдениях: выбираете инструменты, методы, техники и процессы, которые подходят этому проекту |
Дата окончания проекта обычно предсказуема |
Дата окончания проекта трудно предсказуема, высокий риск пролонгации проекта без хорошего менеджмента |
Не требует экспертов по методологии с опытом, достаточно теоритических знаний |
Требует хороших экспертов с опытом работы с этим фреймворком на проекте |
Низкий уровень свободы и креативности |
Высокий уровень свободы и креативности |
Waterfall (водопадная или каскадная модель) |
Скрам |
Таблица 1. Методология VS Фреймворк
Надеюсь, у вас больше не возникнет трудностей с тем, чтобы различить методологию от фреймворка. Для тех, кому интересно, советую погуглить и почитать про различия философии, методологии и фреймворка. Мне нравится, когда люди называют Agile - философией, а Канбан - системой управления потоком задач.
Как работает Скрам
Многие, кто не работал со Скрамом, часто рассказывают на интервью роли, артефакты и церемонии, но сыпятся на самых простых вопросах, которые требуют понимания работы Скрам.
На самом деле, Скрам понять довольно сложно из всех тех материалов, которые я читала. Они сразу фокусируются на деталях, не давая понять новичкам без опыта как же все-таки работает Скрам.
Если отбросить детали, то для работы по фреймворку Скрам нам понадобится Скрам-команда (или Scrum team), которая обычно достаточно маленькая. Эта команда работает над созданием маленьких работающих (приносящих ценность) кусочков продукта через определенные отрезки времени.
Мне нравится пример с выпечкой тортика, он немного глупый, но зато дает хорошее наглядное представление.
Для того, чтобы испечь тортик по модели Waterfall, мы сходим за покупками и купим все ингридиенты, сначала испечем коржи, потом сделаем крем, затем соединим это все в торт и украсим его.
Для того, чтобы испечь тортик по Scrum, мы создадим Скрам-команду. В первую неделю Скрам-команда сходит за покупками и купит ровно столько, чтобы испечь маленький треугольный, но полноценный кусочек торта, со всеми слоями и кремом, и даже украсит его. Так, чтобы вы могли скушать этот кусочек торта и насладиться им, если вдруг вам захочется. Через шесть недель у Скрам-команды будет шесть полноценных кусочков, которые мы можем соединить в торт. Но, что хорошо, если вам не понравится крем или бисквит в первом кусочке, вы всегда сможете сказать это Скрам-команде, и она испечет второй кусочек лучше первого. Третий кусочек может быть испечен уже с учетом вашей обратной связи от второго, и так далее.
Для того, чтобы в определенный отрезок времени (Sprint) получить кусочек торта (Increment), у команды должен быть список задач для того, чтобы испечь торт полностью (Product backlog), разделенный на списки задач поменьше для создания каждого кусочка торта (Sprint backlog). Для координации действий команды выпечки, необходимо проводить специальные церемонии (можно еще назвать их Scrum events или событиями).
Скрам фокусируется на создании ценности после каждого спринта, поэтому так важно получать в конце каждого спринта полноценный кусок торта. Не один коржик, не крем, а именно кусочек торта. Потому что корж или крем в отдельности покупателю не нужен, а вот кусочек торта вы сможете купить и команда пекарей уже после первой недели сможет получить немного денег.
Роли в Скрам
Для того, что Скрам заработал создается Scrum team:
Роль |
Ответственность |
Как Scrum master служит этой роли |
Scrum team (не более 10 человек) |
- работает над Product goal (цель всего продукта) - выполняет все продуктовые активности: сотрудничество с заинтересованными лицами, верификацию, обслуживание, эксплуатацию, эксперименты, исследования, разработку и все то, что может потребоваться. - несет ответственность за создание ценного, полезного Increment в каждом Sprint. Определяет цель каждого спринта. |
- коучит участников команды в части самоуправления и кросс-функциональности; - помогает Scrum Team фокусироваться на создании Increments с высокой ценностью, соответствующих определению Definition of Done; - способствует устранению препятствий, мешающих прогрессу Scrum Team; - убеждается в том, что все события Scrum происходят, позитивны, продуктивны и не выходят за рамки ограничений по времени. |
Внутри каждой Scrum team можно выделить роли, у каждой есть своя собственная зона ответственности:
Роль |
Ответственность |
Как Scrum master служит этой роли |
Development team |
Несут ответственность за: - создание плана на Sprint — Sprint Backlog; - стремление к качеству посредством соблюдения определения готовности; - ежедневную адаптацию своего плана для достижения Sprint Goal; - взаимную подотчетность друг перед другом как профессионалами. |
Также, как и служит всей Scrum team. |
Product owner (1 человек, а не комитет!). |
Несет ответственность за: - максимизацию ценности продукта, получаемого в результате работы Scrum Team. - эффективное управление Product Backlog, в том числе он (либо выполняет работу сам либо делегирует): - разработку и коммуникацию с командой о Product Goal; - создание и объяснение элементов Product Backlog; - упорядочивание Product Backlog; - обеспечение прозрачности, доступности и понимания Product Backlog. |
- помогает находить техники эффективного определения Product Goal и управления Product Backlog; - помогает Scrum Team осознать необходимость четких и лаконичных элементов Product Backlog; - помогает применять эмпирическое планирование продукта в комплексной среде; - фасилитирует взаимодействие с заинтересованными лицами по запросу или при необходимости. |
Scrum master (1 человек) |
Несет ответственность за: - применение Scrum в соответствии с Руководством по Scrum. Они делают это, помогая всем понять теорию и практики Scrum, как внутри Scrum Team, так и в организации. - эффективность Scrum Team. Он делает это, помогая Scrum Team улучшать свои методы работы в рамках фреймворка Scrum. А также служит всей команде и организации. |
Заботится о себе :-) |
Организация |
Должна уважать решения Product owner. При желании изменить Product Backlog может сделать это, попытавшись убедить Product Owner. |
- направляет, обучает и коучит организацию в применении Scrum; - планирует переход на Scrum и консультирует по вопросам применения Scrum в рамках организации; - помогает сотрудникам и заинтересованным лицам понять и применять эмпирический подход к комплексной работе; - устраняет барьеры между заинтересованными лицами и Scrum Teams. |
Таблица 2. Роли в Скрам
События Скрам
Как уже было написано выше в Таблице 1, Скрам основан на эмпиризме и бережливом мышлении. Эмпиризм утверждает, что источником знаний является опыт, а принятие решений основывается на наблюдениях. Бережливое мышление сокращает потери и фокусируется на главном.
Для того, чтобы Скрам заработал, существуют 4 формальных события, которые должны повторяться в Спринте и которые помогают понять, как работает команда, и улучшать процессы внутрии нее. Эти события должны реализовывать эмпирические столпы Скрама: прозрачность, инспекцию и адаптацию.
Временной промежуток (Containing event) |
Sprint |
|||
События (или Церемонии) |
Sprint Planning |
Daily Scrum |
Sprint Review |
Sprint Retrospective |
Столпы |
Прозрачность, Инспекция, Адаптация |
Про столпы мы повторим чуть позже, когда вспомним более подробно события Скрама. Прочитайте таблицу ниже.
Событие |
Когда |
Агенда |
Участники |
Особенности |
Sprint Planning |
Каждый раз перед стартом спринта. Для спринта длительностью в 1 месяц - может достигать до 8 часов, для спринтов короче - меньшее время. |
Планируется работа, которая будет сделана в следующем спринте. Обычно на этом мероприятии стараются ответить на следующие вопросы: -Какова цель спринта? -Что может быть сделано в этом спринте, чтобы достичь цели спринта? -Как будет сделана работа, которая поможет достичь цели спринта? |
Обязательно - Development team, Product owner, Scrum master Опционально - Команда может пригласить на эту встречу людей, которые могут помочь с советами по домену или технической части |
Это событие способствует прозрачности внутри всей команды: все члены команды знают какова цель спринта и вместе понимают какой объем работ предстоит выполнить. На этом событии, Product Owner предлагает, как можно повысить ценность продукта. Вся команда определяет цель спринта. Product Owner обсуждает с Development team задачи в бэклоге, которые могли бы помочь достичь цели спринта. Product Owner помогает Development team понять задачи бэклога, и Development team определяет сколько работы им нужно будет сделать в рамках этих задач (обычно проводится оценка всеми членами команды). На этом мероприятии Development team и Product Owner могут обсуждать, какие задачи брать, а какие не брать в следующий спринт. Вместе они формируют Sprint Backlog. Результат встречи - сформированный и оцененный Sprint Backlog. |
Daily Scrum |
Ежедневно, в одно и то же время, 15 минут. |
Каждый член команды должен ответить на три вопроса во время этого события: -Что я сделал вчера, чтобы помочь команде достичь цель спринта? -Что я сделаю сегодня, чтобы помочь команде достичь цель спринта? -Вижу ли я какие-то препятствия, которые могут не дать команде достичь цель спринта? |
Обязательно - Development team Опционально - Product owner, Scrum master |
Development team использует это событие, чтобы проводить инспекцию прогресса в достижении цели спринта. Это событие увеличивает вероятность достижения командой цели спринта, засчет прозрачности прогресса. Также, это событие может привести к изменениям Sprint Backlog по мере необходимости и быстрой адаптации в случае изменений. |
Sprint Review |
Каждый раз перед завершением спринта. Для спринта длительностью в 1 месяц - может достигать до 4 часов, для спринтов короче - меньшее время. |
Это событие включает в себя: -Product Owner должен пригласить стейкхолдеров, которые имеют отношение в сделанной работе. -Product Owner объясняет стейкхолерам, что было сделано и не сделано. -Development team проводит демонстрацию проделанной работы стейкхолдерам, и отвечает на вопросы о проделанной работе. -Product Owner рассказывает о текущем состоянии бэклога и важных майлстоунах проекта. -Все участники встречи обсуждают, что следует сделать в следующем спринте, в соответствии с текущими условиями на рынке и/или другими внутренними и внешними изменениями. -Все участники встречи проводят ревью таймлайна потенциальных возможностей для следующего релиза продукта. |
Обязательно - Development team, Product owner, Scrum master, Stakeholders |
Событие проводится для инспекции результата Спринта и выявления возможностей для адаптации проекта. Sprint review - это не просто презентация, это рабочая сессия всей команды и стейкхолдеров. Результатом встречи является пересмотренный бэклог продукта, который определяет наиболее вероятные задачи для Sprint Backlog. Весь бэклог продукта также может быть скорректирован по итогам этой встречи. |
Sprint Retrospective |
Проводится после Sprint Review и до Sprint Planning. Для спринта длительностью в 1 месяц - может достигать до 3 часов, для спринтов короче - меньшее время. |
Встреча строится вокруг следующих вопросов: -Что прошло хорошо? -Что нуждается в улучшении? -Что нам нужно начать делать? -Что нам нужно продолжать делать? -Что нам нужно перестать делать? |
Обязательно - Development team, Product owner, Scrum master |
Событие проводится для того, чтобы запланировать повышение качества и эффективности. Это событие инспектирует то, как прошел последний спринт. Это прекрасная возможность для команды проверить себя и создать план улучшений, которые должны быть реализованы с течение следующего спринта. Команда также может обсудить как повысить качество продукта корректировкой и адаптацией Definition of Done по мере необходимости. Результатом встречи является набор улучшений, которые команда выбирает как наиболее полезные для повышения эффективности. Они могут быть добавлены в Sprint Backlog в виде задач. |
После прочтения таблицы, намного легче понять, почему три столпа: Прозрачность, Инспекция, Адаптация, так важны в Скраме:
Прозрачность делает возможной инспекцию. Инспекция без прозрачности вводит в заблуждение и является потерями.
Инспекция делает возможной адаптацию. Инспекция без адаптации считается бессмысленной. События Scrum спроектированы так, чтобы провоцировать изменения.
Адаптация становится более сложной, когда участвующие в ней люди не обладают полномочиями или не самоуправляемы. Ожидается, что Scrum Team адаптируется в тот момент, когда узнает чтото новое при инспекции.
Артефакты в Скрам
Артефакт - это результат работы или ценность, которая была создана командой. Артефакты нужны для того, чтобы обеспечивать прозрачность ключевой информации для команды. Все, кто инспектируют артефакт, имеют достаточно информации для создания предложений по адаптации. Говоря человеческим языком, все кто может просмотреть артефакты, владеют информацией о том, как необходимо изменить процессы или изменить скоуп работ в соответствии с текущей ситуацией.
К артефактам Скрама относятся следующие элементы, каждый из которых имеет свое собственное конечное состояние, к которому стремится вся команда:
Артефакт |
Описание |
Обещанное командой конечное состояние |
Product Backlog |
Упорядоченный и постоянно обновляемый список того, что необходимо для улучшения продукта. Это единственный источник работы, выполняемой Scrum Team. |
Продукт, который соответствует Цели продукта (Product Goal). Product Goal описывает будущее состояние продукта, которое может выступать в качестве конечной цели, используемой Scrum Team при планировании работы. Product Goal — это долгосрочный ожидаемый результат Scrum Team. Они должны достичь одной цели (или отказаться от нее), прежде чем приступить к следующей. |
Sprint Backlog |
Состоит из Sprint Goal (почему), набора выбранных на Sprint элементов Product Backlog (что), а также осуществимого плана действий по поставке Increment (как). Sprint Backlog — это план, созданный силами Developers для самих Developers. Это наглядная и доступная в режиме реального времени картина работы, которую Developers планируют выполнить в ходе Sprint для достижения Sprint Goal. Поэтому Sprint Backlog обновляется на протяжении всего Sprint по мере появления новых знаний. В нем должно быть достаточно деталей, чтобы Developers могли инспектировать свой прогресс во время Daily Scrum. |
Выполненные задачи в Спринте, которые соответствует Цели спринта (Sprint Goal). Цель спринта (Sprint Goal) - единственная цель на Sprint. Несмотря на то, что Developers привержены Sprint Goal, она обеспечивает гибкость с точки зрения выбора конкретной работы, необходимой для ее достижения. Sprint Goal также обеспечивает связность и сфокусированность, побуждая Scrum Team работать совместно, а не над отдельными инициативами. Sprint Goal создается во время Sprint Planning, а затем добавляется в Sprint Backlog. Developers помнят о Sprint Goal в ходе работы над задачами Sprint. Если работа не соответствует ожиданиям, они взаимодействуют с Product Owner, чтобы пересмотреть содержание Sprint Backlog в рамках Sprint, не изменяя Sprint Goal. |
Increment |
Increment — это потенциально готовый к поставке Increment продукта. Increment объединяет реализации задач Product Backlog, сделанные во время текущего Спринта. Они тщательно проверяются для обеспечения совместной работы всех Increments. Чтобы предоставить ценность, Increment должен быть пригодным для использования. В рамках одного Sprint можно создать один или несколько Increments. Каждый Increment является дополнением ко всем предыдущим. Итоговые Increments представляются в ходе Sprint Review, тем самым поддерживая эмпиризм. |
Increment, который выполнен в соответствии с критериями готовности ( Defition of Done). Defition of Done - это формальное описание состояния Increment, при котором он соответствует требованиям качества, предъявляемым продукту. Работа не может считаться частью Increment, если она не соответствует Defition of Done. |
Комментарии (12)
gigimon
09.08.2022 12:54Скажите, а где спрашивают такие вопросы про скрам? На роль скрам мастера?
astenix
09.08.2022 15:42+3Скрам-подмастерье должен цитировать таблицы с разницей мпжду фреймворками и методологиями в любое (доброе) время суток.
DanaIssakhanova Автор
10.08.2022 10:56В Эпаме спрашивают обычно пару-тройку заковыристых вопросов, как раз про различия фреймворка и методологии и т.п. на любом интервью, если планируется работа по скраму=) Ну и я спрашиваю у тех, кто приходит на позицию бизнес-аналитика на тех.интервью.
ReadOnlySadUser
09.08.2022 13:34Высокий уровень свободы и креативности
Вообще не увидел в этой схеме высокого уровня свободы и креативности. Скорее высокую скорость конвейера и выгорание :)
DanaIssakhanova Автор
10.08.2022 10:54И это тоже есть=) Мне с выгоранием помогли справиться книги Катерины Ленгольд "Agile-life" и Эмили Нагоски "Выгорание". Может тоже поможет)
astenix
09.08.2022 15:41Недостаточно процитировать определение скрама (это легкий фреймворк, который…) и сразу перейти к разницам между фреймворком и методологией. Надо сперва объяснить, что такое фреймворк отдельно. Затем объяснить, что такое метод, методика, методология.
И уже после сказать, что скрам это фреймворк, а не методология. Будет понятно сразу, без таблиц.
Потом уже вы вспомните, что это всë называется и пишется SCRUM, но будет ли это важно и существенно…
DanaIssakhanova Автор
10.08.2022 10:52Благодарю за комментарий=) Плюс того, что я не написала про это - вы можете написать свою статью про фреймворк=) Удачи!
saboteur_kiev
09.08.2022 19:51Нет гибкости, проект должен пройти все предписанные шаги
То есть метология Agile, к которой относится SCRUM не обладает гибкостью?
Цель спринта (Sprint Goal) - единственная цель на Sprint.
У вас на каждый спринт только одна единственная цель?
А как работают проекты, где не просто больше чем 1.5 девелопера, а например 3-5 команд девелоперов?DanaIssakhanova Автор
10.08.2022 10:51-2Agile - философия, а не методология, это указано в шпаргалке.
Да, на спринт - одна цель. Если у вас 3-5 команд, то можно прочитать Nexus гайд, который описывает, как работают несколько скрам-команд над одним продуктом. Скрам - про одну маленькую команду, работающую над одной целью в спринте.
Moroshka
12.08.2022 00:38А если такая ситуация: команда маленькая, 7 человек. Бэкендер, андроид-разработчик, ios-разработчик, тестировщик, аналитик, пм, по. Команда в этом спринте делает фичу, которая реализуется параллельно на обеих мобильных платформах плюс завязана на бэкенд. Все пилят эту фичу параллельно. В следующем же спринте мобильные разработчики пилят чисто юайные фичи, для которых не требуются изменения на бэкенде, а бэкендер чтобы не простаивать начинают пилить новую большую фичу, которую фронты подхватят аж через спринт. И тогда получается что в этом спринте у фронтов одна задача, у бэка другая. Разделить их на разные команды? Но это будет неудобно, тестировщик один, его в какую команду? И как быть со спринтами когда все параллельно одну фичу пилят? Объединяться снова в одну команду? Я к тому что стоит ли так строго определять что один спринт - одна цель? Чем плохо что время от времени целей может быть несколько?
Aleks_ja
Нашёл что-то новое для себя. Впервые услышал, что это не методология. Не думаю, что кто-то за это будет какие-то "баллы" снимать. Раньше (в бородатые времена) на этом никто не акцентировал внимания.
И ниже по тексту,
Т.е. кроме ЧТО, КОГДА И КАК ещё и КТО есть.
А если без тортиков - то получается, что у скрама просто маленькие итерации (например 2 недели). И за эти 2 недели получается что-то завершённое и потенциально готовое к релизу. Сравнительно мало документации, и больше основано на feedback-ах, и методе проб и ошибок, получить быстрый отклик от Product Owner либо от пользователей. А
методологиярассказывает типичный процесс - ивенты, роли и артефакты. Чем меньше релиз, тем лучше предсказуемость, и ещё разработчиков держит в напряжении.В Waterfall итерация может длиться годами, которая будет включать по очереди фазу сбора требований, разработку и тестирование. И только, например, через 3 года вы поймёте, что где-то сделали ошибку в требованиях, либо на самом деле хотели по-другому, ошиблись в оценке на пол года. И разработчики будут на расслабоне 2.5 года ) А в скраме - только первую неделю, а вторую на жилах рвать :) А там, где смотрят за burn down чартом нормально, то вообще не расслабишься.
DanaIssakhanova Автор
Благодарю, что прочитали, и спасибо за комментарий.