agile, scrum, Планирование – что в этом для программистов?
DESCRIPTION
Agile, SCRUM, Планирование – что в этом для программистов?TRANSCRIPT
![Page 1: Agile, SCRUM, Планирование – что в этом для программистов?](https://reader033.vdocuments.site/reader033/viewer/2022061222/54c178324a7959b72d8b45ca/html5/thumbnails/1.jpg)
Agile, SCRUM, Планирование – что в этом для программистов?
Малышкин Фёдор ([email protected])
30 ноября 2007
![Page 2: Agile, SCRUM, Планирование – что в этом для программистов?](https://reader033.vdocuments.site/reader033/viewer/2022061222/54c178324a7959b72d8b45ca/html5/thumbnails/2.jpg)
Страница 2 из 23
Введение
Разве не естественно знать как распределяется Ваше время?
На основании чего распределяются заданий? И почему после всех приложенных усилий оказывается,
что проект не укладывается в сроки? Разве не хочется принять участие в данном процессе – в
процессе планирования?
![Page 3: Agile, SCRUM, Планирование – что в этом для программистов?](https://reader033.vdocuments.site/reader033/viewer/2022061222/54c178324a7959b72d8b45ca/html5/thumbnails/3.jpg)
Страница 3 из 23
Терминология
Agile development – подход к разработке программного обеспечения, который среди прочего учитывает такие аспекты как: изменяемость условий, короткие пути между идеей и разработкой и упрощённые процессы общения.
Планирование – попытка плавно подойти к сроку сдачи проекта с готовым продуктом и минимум пролитой крови.
SCRUM – попытка объединить два предыдущих пункта данного глоссария для получения максимума из того минимума времени, что выдаётся на проект. Является конкретным продуктом Agile подхода.
Про Agile дальше упоминаться будет всё меньше и меньше….
![Page 4: Agile, SCRUM, Планирование – что в этом для программистов?](https://reader033.vdocuments.site/reader033/viewer/2022061222/54c178324a7959b72d8b45ca/html5/thumbnails/4.jpg)
Страница 4 из 23
SCRUM в регби
![Page 5: Agile, SCRUM, Планирование – что в этом для программистов?](https://reader033.vdocuments.site/reader033/viewer/2022061222/54c178324a7959b72d8b45ca/html5/thumbnails/5.jpg)
Страница 5 из 23
SCRUM в разработке ПО
![Page 6: Agile, SCRUM, Планирование – что в этом для программистов?](https://reader033.vdocuments.site/reader033/viewer/2022061222/54c178324a7959b72d8b45ca/html5/thumbnails/6.jpg)
Страница 6 из 23
Отличительные черты SCRUM & Agile подходов
Упрощённые методы планирования сложных процессов В то время как старые методы направлены на сохранение
курса – новые на выдачу результата, ценного для бизнеса, всё время…
В то время как условия изменяются всё более быстро и условия становятся всё более сложными – новые методы нацелены на адаптацию к ним.
Всё направляется на взаимодействие людей, а не на использование технологий.
Разработка-тестирование-выдача является основной линией работы (причём «тестирование» - не только отделом качества).
Проектирование по - контракту («Автора!!!»)
![Page 7: Agile, SCRUM, Планирование – что в этом для программистов?](https://reader033.vdocuments.site/reader033/viewer/2022061222/54c178324a7959b72d8b45ca/html5/thumbnails/7.jpg)
Страница 7 из 23
Основные цели введения SCRUM
Принятие новых требование более оперативно, чем с классическими подходами к планированию.
Повышение мотивации участников проекта (спросите автора!!!)
Повышение взаимодействия между заказчиком и исполнителем
Введение новой культуры лидерства, путём изменения ролей в процессе разработки
Передача части ответственности с менеджера проекта конечным разработчикам
![Page 8: Agile, SCRUM, Планирование – что в этом для программистов?](https://reader033.vdocuments.site/reader033/viewer/2022061222/54c178324a7959b72d8b45ca/html5/thumbnails/8.jpg)
Страница 8 из 23
Внимание!!!
В нашей фирме используется комбинированный подход к планированию: часть SCRUM, часть классического проектирования. Нет чётко выделенных ролей – они размыты между многими людьми, а иногда один человек объединяет несколько ролей.
Данное замечание – предназначено для того, что бы не было замечаний, что у нас применяется не «чистый» SCRUM.
![Page 9: Agile, SCRUM, Планирование – что в этом для программистов?](https://reader033.vdocuments.site/reader033/viewer/2022061222/54c178324a7959b72d8b45ca/html5/thumbnails/9.jpg)
Страница 9 из 23
Основные понятия SCRUM
SCRUM основан на таком понятии как Sprint – сфокусированные усилия группа на небольшой участок времени (неделя, 2 недели, но обычно не более месяца)
![Page 10: Agile, SCRUM, Планирование – что в этом для программистов?](https://reader033.vdocuments.site/reader033/viewer/2022061222/54c178324a7959b72d8b45ca/html5/thumbnails/10.jpg)
Страница 10 из 23
Основные понятия SCRUM
Владелец проекта – собирает общие требования к проекту и приоритизирует будущий функционал (своего рода «адвокат дьявола» для группы разработки).
Заказы проекта (project backlog) – результат работы владельца проекта. Это список задач с расставленными приоритетами, из которых самые приоритетные попадают в…
Заказы Sprint’а (sprint backlog) – список задач для реализации в рамках ближайшего спринта.
Scrum группа – группа разработчиков (программисты, дизайнеры, тренеры), которые совместно с владельцем проекта, обсуждают заказы Sprint’a, разбивают его атомарные задачи. Группы обычно самоорганизуемы и каждый обладает определённой ответственностью за взятые на себя атомарные задачи.
![Page 11: Agile, SCRUM, Планирование – что в этом для программистов?](https://reader033.vdocuments.site/reader033/viewer/2022061222/54c178324a7959b72d8b45ca/html5/thumbnails/11.jpg)
Страница 11 из 23
Основные понятия SCRUM
Scrum мастер (Scrum master) – производит постоянную тренировку команды, устраняет препятствия для реализации задач, фиксированных для данного Sprint’а.
Каждый спринт предназначен для повышения ценности продукта для бизнеса, добавления нового функционала и улучшения того, что может быть предоставлено конечному заказчику.
![Page 12: Agile, SCRUM, Планирование – что в этом для программистов?](https://reader033.vdocuments.site/reader033/viewer/2022061222/54c178324a7959b72d8b45ca/html5/thumbnails/12.jpg)
Страница 12 из 23
Роли
Scrum группа – группа, производящая фактическую работу по реализации функционала спринта. Количество людей в группе в среднем составляет 5-9 человек, что по данным анализов и исследований является наиболее эффективным количеством для реализации подобного рода задач.
Группа людей самостоятельно определяет задачи для себя, сама решает с кем данная задача может быть распределена и в какие сроки решена.
В группе нет заранее предопределённых ролей (программист, дизайнер, архитектор) – каждый в праве взять на себя какую пожелает роль. Таким образом каждый может быть экспертом какой-то области.
![Page 13: Agile, SCRUM, Планирование – что в этом для программистов?](https://reader033.vdocuments.site/reader033/viewer/2022061222/54c178324a7959b72d8b45ca/html5/thumbnails/13.jpg)
Страница 13 из 23
Роли
Владелец продукта – является представителем заказчика и следит за тем, что бы группа работала в правильном направлении в области бизнес требований.
Следит за актуальностью задач проекта и корректирует его в случае изменения требований.
Документ или ресурс с текущим состоянием списка должен быть доступен рамках всей организации и особенно группы.
![Page 14: Agile, SCRUM, Планирование – что в этом для программистов?](https://reader033.vdocuments.site/reader033/viewer/2022061222/54c178324a7959b72d8b45ca/html5/thumbnails/14.jpg)
Страница 14 из 23
Роли
Scrum мастер – является своего образа тренером, контроллёром проекта и человеком находящимся в курсе всего проекта.
Основная его обязанность это следить за фокуссировкой усилий разработчиков над проектом. Фокус нацелен на то, что бы достигнуть конечную дату спринта с зафиксированными для спринта целями.
После каждого спринта им производится так называемая «Sprint ретроспектива» - рассмотрение принятых решений и достигнутых целей. Цель – повысить знание всех участников проекта о состоянии работы, повысить общий уровень знания и опыта.
![Page 15: Agile, SCRUM, Планирование – что в этом для программистов?](https://reader033.vdocuments.site/reader033/viewer/2022061222/54c178324a7959b72d8b45ca/html5/thumbnails/15.jpg)
Страница 15 из 23
Процесс
1. Создание списка задач проекта – владелец продукта производит сбор требований к продукту, которые являются основными для нового продукта (требования, change-request’ы, новый функционал и баги) .
2. Расстановка приоритетов - владелец продукта расставляет приоритеты для продукта. Расставляет последовательность, в которой данные задачи должны быть реализованы.
3. Определение времени на реализацию – Scrum группа собирается вместе с Scrum мастером и производит анализ первоочередных задач: разделяет их на атомарные задачи и прогнозирует время. Когда задач будет достаточно для первого спринта – формируется список задач спринта и процесс прекращается.
![Page 16: Agile, SCRUM, Планирование – что в этом для программистов?](https://reader033.vdocuments.site/reader033/viewer/2022061222/54c178324a7959b72d8b45ca/html5/thumbnails/16.jpg)
Страница 16 из 23
Процесс
4. Закрепление задач и старт спринта – список задач спринта «замораживается» и команда приступает к работе.
5. Ежедневные Scrum’ы – каждый день в одно и то же время Scrum мастер и Scrum группа встречаются. Цель – устранить препятствия в работе. Каждый участник должен ответить в той или иной форме на 3 вопроса:
1. Что ты сделал со времени последней встречи?
2. Что ты намерен сделать до следующей встречи?
3. Есть ли что-либо, что препятствует тому, что ты задумал?6. Первые два вопроса предназначены для того, что бы все
участники были в курсе развития проекта. Последний вопрос предназначен для определения возможных проблем с продвижением работы.
![Page 17: Agile, SCRUM, Планирование – что в этом для программистов?](https://reader033.vdocuments.site/reader033/viewer/2022061222/54c178324a7959b72d8b45ca/html5/thumbnails/17.jpg)
Страница 17 из 23
Процесс
7. Главное в высказывании проблемы – чётко описать проблему и высказать предложение о возможном решении (если конечно идеи о решении есть).
8. Каждый может принимать участие в ежедневном Scrum’е, но только участники Scrum команды и Scrum мастер могут иметь право голоса.
![Page 18: Agile, SCRUM, Планирование – что в этом для программистов?](https://reader033.vdocuments.site/reader033/viewer/2022061222/54c178324a7959b72d8b45ca/html5/thumbnails/18.jpg)
Страница 18 из 23
Демонстрация
Каждый спринт заканчивается демонстрацией, перед большой группой людей, не обязательно участниками проекта – участвовать могут любые заинтересованные лица.
Демонстрация нацелена на то, что бы каждый мог как можно более быстро увидеть результаты своей работы и получить оценку других.
Так же она является основой для Scum ретроспективы, которая в свою очередь нацелена на то, что бы сформировать базу для следующего спринта.
![Page 19: Agile, SCRUM, Планирование – что в этом для программистов?](https://reader033.vdocuments.site/reader033/viewer/2022061222/54c178324a7959b72d8b45ca/html5/thumbnails/19.jpg)
Страница 19 из 23
Отличительные черты SCRUM & Agile подходов
Упрощённые методы планирования сложных процессов В то время как старые методы направлены на сохранение
курса – новые на выдачу результата, ценного для бизнеса, всё время…
В то время как условия изменяются всё более быстро и условия становятся всё более сложными – новые методы нацелены на адаптацию к ним.
Всё направляется на взаимодействие людей, а не на использование технологий.
Разработка-тестирование-выдача является основной линией работы (причём «тестирование» - не только отделом качества).
Проектирование по - контракту
![Page 20: Agile, SCRUM, Планирование – что в этом для программистов?](https://reader033.vdocuments.site/reader033/viewer/2022061222/54c178324a7959b72d8b45ca/html5/thumbnails/20.jpg)
Страница 20 из 23
Основные цели введения SCRUM
Принятие новых требование более оперативно, чем с классическими подходами к планированию.
Повышение мотивации участников проекта (спросите автора!!!)
Повышение взаимодействия между заказчиком и исполнителем
Введение новой культуры лидерства, путём изменения ролей в процессе разработки
Передача части ответственности с менеджера проекта конечным разработчикам
![Page 21: Agile, SCRUM, Планирование – что в этом для программистов?](https://reader033.vdocuments.site/reader033/viewer/2022061222/54c178324a7959b72d8b45ca/html5/thumbnails/21.jpg)
Страница 21 из 23
Что делать если группа не успевает?
SCRUM не разрешает откладывать сроки окончания спринта! Удалите часть задач спринта – и заканчивайте оставшиеся задачи…
![Page 22: Agile, SCRUM, Планирование – что в этом для программистов?](https://reader033.vdocuments.site/reader033/viewer/2022061222/54c178324a7959b72d8b45ca/html5/thumbnails/22.jpg)
Страница 22 из 23
Положение в нашей фирме
Спринты – 1 – 1,5 недели (что не есть хорошо, так как не позволяет самой группе разработки планировать свою работу и подготавливать демонстрацию).
Частые переносы сроков окончания спринтов. Часть роли Scrum мастера (касаемо планирования)
перенесена менеджера проекта, остальные аспекты - перенесены на опытных программистов.
Отсутствие чётко сформулированных задач спринта (каждая задача может быть удобным стартом для парных программистов).
Не участие программистов во временной оценке задач при составлении списка задач спринта.
![Page 23: Agile, SCRUM, Планирование – что в этом для программистов?](https://reader033.vdocuments.site/reader033/viewer/2022061222/54c178324a7959b72d8b45ca/html5/thumbnails/23.jpg)
Страница 23 из 23
Вопросы?
? Попрошу мнения «Yandex’а» и «Google» не озвучивать!