Сегодня мы решаем все более сложные задачи в рамках разработки, и зачастую технические и процессные решения принимаются неверно, что приводит к неминуемой расплате.
Мы часто не можем принять решения, посмотрите вокруг — сплошные вопросы: «Scrum или Kanban? Как поставить процесс, чтобы не было технического долга? Как научить архитекторов вырабатывать обоснованные и правильные решения? Какие использовать процессные и инженерные практики?»
20. Обоснование решений
«Проектирование в общем смысле,
как выработка решений –
задача многокритериальной оптимизации.
Попытка найти
глобальный оптимум целевой функции,
зачастую в ущерб локальным оптимумам.»
20
22. Роль неопределенности
Корень всех зол.
Все практики разработки ПО – это
групповые способы борьбы с
неопределенностью.
Про виды неопределенности поговорим ниже.
22
30. Pull vs Push
Динамика получения ценности
«Вытягиваем новую
ценность, исходя из
имеющегося решения» {
{
{
{
«Проталкиваем решение,
исходя из нашего плана»
30
31. Pull vs Push
Динамика получения ценности
«Вытягиваем новую
ценность, исходя из Интерпретатор
имеющегося решения»
«Проталкиваем решение,
Компилятор
исходя из нашего плана»
31
39. Типовые процессы
Характер
неопределенности
высокая
Решения команды
и их реализация,
внутренние риски
высокая
Внутренняя низкая
Внешняя
Изменчивость
требований и
внешней среды,
внешние риски
низкая
39
40. Типовые процессы
Борьба
с неопределенностью
высокая
Итеративные процессы
с быстрой обратной связью
Итеративность
и малым охватом задач на вход
Последовательные процессы с
большим охватом задач на вход
медленной обратной связью и
низкая
40
41. Типовые процессы
Борьба
с неопределенностью
низкая
Самоорганизация высокая
Управление по:
Процессам Задачам Проблемам, Ценностям
целям
Принимают решения Принимают решения
PM/PA. исполнители.
Исполнители – сервис. Scrum Master – сервис.
41
42. Типовые процессы
Методологии
DoD Watefall RUP Scrum Kanban
Итеративность
Формальные процессы Самоорганизация
Последовательность
42
43. Типовые процессы
«Нет хороших или плохих процессов.
Есть лишь вопрос соответствия задачам.
За все нужно платить.»
43
50. Отлить в граните
1. Решение – это компромисс, задача многокритериальной
оптимизации
2. Система ожиданий задается метамоделью
3. Мы часто не можем решить проблему на том же уровне
абстракции, на котором она возникла
4. Необходимо полнота и непротиворечивость метамодели
5. Динамика получения ценности определяется выбором между
pull- и push-подходами
6. Любое решение должно быть обосновано в системе критериев,
заданных метамоделью
7. Паттерн – уже принятое решение, готовое к переиспользованию
8. Современная разработка ПО – групповая борьба с
неопределенностью (внешней и внутренней)
9. Типовые процессы определяют степени итеративности и
самоуправления
50
51. Ваши кейсы
Алгоритм принятия
решения на Вашем
примере
51
54. The truth is out there
«Следующий шаг –
выход из игры с нулевой суммой»
54
55. Контакты
Евгений Кривошеев, ekrivosheyev@scrumtrek.ru
Никита Филиппов, nfilippov@scrumtrek.ru
Асхат Уразбаев, askhat@scrumtrek.ru
«Тяжело в учении – легко в бою»
SkillTrek – это дистанционный центр компетенций,
где специалисты получают востребованные на
рынке знания и навыки в условиях реальных
проектов с выбором удобной им загрузки
55