Scrum Master (курс) : Лекция 1
Contents
[hide]Цели лекции
- Понять откуда появились Agile методы
- Выявить и понять предназначение каждой из основ (pillars) Scrum
Тезисы
Преодоление сложности
Вычислительная техника развивается больше 100 лет, и в рамках стандартной инженерной модели водопада было решено множество задач, включая полет на луну.
Вопрос. Почему именно в 90-е годы стали возникать итеративные и далее agile методы разработки?
- Доступность техники - более многообразные задачи
- Появилась возможность решать задачи с часто изменяющимися условиями
- Возросли возможности техники - а значит возросла сложность решаемых проектов
Вопрос. А какой прием мы используем для уменьшения сложности? Декомпозиция!
Итеративность в первую очередь это разбиение сложного проекта на более простые итерации - просто масштабирование давно известного инежереного приема на весь проект.
Все началось с Rational Unitifed Process и уже он имел многие свойства которые мы определяем как agile.
Сложность требований
Первое что сделал RUP - перенес отвественность за требования на разработчка. Признание факта что человек не подготовленный специально к управлению требованиям не сможет их написать. Что еще хуже - вообще сложную систему которой еще нет просто не возможно описать полностью, правдиво и непротиворечиво как надо для требований. Просто за пределами возможностей человека.
RUP выделил 4 источника требований
- Опрос заказчиков, пользователей и экспертов (старый метод);
- Личное наблюдение и участие в автоматизируемом процессе;
- Анализ решений конкурентов;
- Прототипирование.
Прототипирование основывается на том, что для человека легко и естественно попробовать и сказать - устраивает его и чем устраивает или не устраивает его и чем не устраивает решение. Scrum использует протопирование как основной способ управления требованиями. Это не значит что остальные не могут использовать, если их применение соотвествуют Scrum и они улучшают работу команды - пользоваться ими можно и нужно.
Inspection
Scrum guide называет каждый sprint экспериментом "проверкой гипотезы".
Вопрос. Что такое гипотеза?
Утвреждение требующее доказательства.
Вопрос. Что является гипотезой в нашем случае?
Наше предположение что именно устроит заказчика.
Вопрос. Что является проверкой гипотезы в нашем случае?
Реакция заказчика что устраивает (подтверждение) и что не устраивает (опровержение).
Вопрос. Что нужно чтобы заказчик дал опровержение?
Он должен практически воспользоваться хотя бы частью функций в реальных условиях!
Это дает нам одно из важнейших понятий в SCRUM - releasable increment
releasable означает что это работоспособный и применимый хотя бы в маленьком кусочке реального процесса increment означает что он несет в себе что-то новое, до сих пор не проверенное.
Если результат не releasable то мы не можем воспользоваться им для проверки, если он не increment то он не несет в себе ничего нового.
Вопрос: Какой из scrum pillar поддерживается созданием releasable increment?
Inspection!
Еше важно: помимо возможности проверсти проверку - важна еще и мотивация. Все я думаю многократно сталкивались с тем, что заказчик не хочет смотреть прототип.
Вопрос. Как вы считаете - о чем это может говорить?
Заказчику неинтересен прототип поскольку его он не касается, никакого облегчения ему не приносит и не обещает принести!
Нет мотивации, а это тоже признак того, что с releasable проблемы - зачем релизить то, что никому не нужно и не интересно?
Transparency
В первую очередь из андрагогики (наука об обучении взрослых) нам известно что люди делают что-от наилучшим образом если знают зачем они это делают.
Проведем эксперимент. Возьмем лист бумаги, разделим на две части - в одной нарисуем круг, в верхней трети круга два круга поменьше, симметрично относительно центральной линии, из нижней трети круга нарисуем прямоугольник вниз примерно высотой как круг и шириной как 1/4 круга, а справа и слева нарисуем примыкающие к большому кругу полукруги.
А справа нарисуем морду слоника вид спереди.
Вопросы
1) где получилось лучше
2) где я потратил больше усилий чтобы "объяснить задачу"
3) в случае если человек минимально умеет рисовать - где он сможет нарисовать лучше чем мой "алгоритм".
А во втором случае я всего лишь объяснил чего я хочу получить в итоге (ответил на вопрос "зачем"!)
В этом ничего нового - см. "цели и задачи" которые используются во всем и везде.
RUP в свое время отметил и этот момент, весь анализ требований начинается с понимания проблемы - т.е. несоотвествия между существующим и желаемым, которое клиент хочет устранить. Я всегда говорил что если бюджет ограничен - то поиск проблемы это единственный действительно важный вопрос который надо решить в рамках управления требованиями - понять проблему - или другими словами что же заставило человека обратиться к нам за помощью.
Adaptation
Все заказчики разные. Все проекты разные. Все команды разные. Более того, в ходе проекта и заказчик, и проект и сама команда - изменяются. Поэтому нет единого универсального набора инструментов, методов и решений подходящих на все случаи жизни.
Вопрос. Что предлагает Scrum для того, что бы учесть все это многообразие?
Adaptation!
Не задача и команда для процесса, но процесс для решения задачи и облегчения работы команды!
Важно - adaptation НЕ изменяет сам Scrum - в нем ничего лишнего. Поэтому мы не можем взять и выкинуть скажем adaptation pillar решив что он нам не нужен :-). Но инструменты, методы и способы - все это должно адаптироваться чтобы в рамках Scrum обеспечить наилучшее решение задачи.
Проверка
Вопрос. Вы как scrum master пришли в новый проект и хотите узнать поддерживается ли в проекте inspection pillar. Что следует выяснить в первую очередь?
Мой ответ: Посмотреть sprint backlog и выяснить есть ли там sprint goals и определены ли они как "в результате sprint наш заказчик сможет... и далее конкретные бизнес действия имеющие ценность".
Вопрос. Вы как scrum master пришли в новый проект и хотите узнать поддерживается ли в проекте transparency pillar. Что следует выяснить в первую очередь?
Мой ответ: Надо спросить зачем выполняется каждая конкретная задача?
Почему? Потому что если есть понимание зачем - то человек понимает как решение задачи привязано к успеху проекта!
Важно: Ответ "потому что так решили", "потому что так сказал начальник", "потому что так сказал заказчик" не является знанием "зачем".
Вопрос. Вы как scrum master пришли в новый проект и хотите узнать поддерживается ли в проекте adaptation pillar. Что следует выяснить в первую очередь?
Мой ответ: Надо спросить зачем вы используете каждый конкретный инструмент?
Почему? Ответ на этот вопрос позволяет понять ведется ли вообще учет того как инструмент способтвует достижению целей проекта и есть ли критерии по которым такой учет можно произвести. Если этого нет - то условий для адаптации тоже нету.
Важность основ
Основы не зря названы основами. Именно относительно основ проверяется любое действие, любой артефакт, любое утверждение.
- Все что обеспечивает основы - хорошо для Scrum
- Все что препяствует реализации основ - плохо для Scrum
- Все что не имеет отношения к основам - не имеет отношения к Scrum.
Поскольку наш курс для Scrum Masters - то в первую очередь мы изучаем Scrum Guide, почему он такой и как его применять, поэтому все будет соотноситься с основами Scrum.
Summary
- Agile - ответ на очень сложные (за пределами способности человека изначально дать внятные требования) и динамично изменяющиеся проекты
- Inspection нужна для того, чтобы мы могли проверять наши предположения о том, что нужно заказчику. Для этого мы делаем releasable (реально применимое в жизни) incremenet (улучшение по сравнению с предыдущим состоянием) и только на основе наблюдений за этим инкрементом принимаем решения касающиеся проекта.
- Transparency нужна для того, чтобы обеспечить наилучшее приложение сознаительных усилий команды на решение той проблемы, которая подвигла заказчика обратиться к команде.
- Adaptation нужна для того, чтобы обеспечить подбор наилучшего инстурментария и методов его использования для решения конкретной проблемы, конркетного заказчика и силами конкретной команды.
Задание
Цель: проверить понимание зачем в Scrum есть 3 pillar и в чем они выражаются.
Написать эссе в котором на основе своего собственного проекта по каждой из pillars выделить одно что максимально поддерживает этот pillar и что максимально препяствует.
Примечание: так как задание касается команды - это может вызвать внутреннее сопротивление, как это писать про команду плохое. Дать позитивный шаблон "моя замечательная команда замечательная потому что делает ____ и _____ поддерживая ________. Моя замечательная команда станет еще лучше если мы поможей перестать делать (начать делать) _____ для поддержки _______".
Примечание: "предложенный (мой) ответ" не является единственным правильным ответом. Дискуссия может выявить и выявит всё многообразие возможных ответов, многие из которых являются правильными. Предложенный вариант относится исключительно к поддержке дискуссией целей данной лекции.