Agile, SCRUM, Планирование – что в этом для программистов?

25,417 views

Published on

Agile, SCRUM, Планирование – что в этом для программистов?

1 Comment
20 Likes
Statistics
Notes
No Downloads
Views
Total views
25,417
On SlideShare
0
From Embeds
0
Number of Embeds
54
Actions
Shares
0
Downloads
309
Comments
1
Likes
20
Embeds 0
No embeds

No notes for slide

Agile, SCRUM, Планирование – что в этом для программистов?

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

×