Довольно часто в процессе разработки ПО нам важно и нужно принимать решения, но с другой стороны, как мы знаем, решения — основная причина возникновения проблем. Как проанализировать социотехническую систему целиком и осознать, что в ней происходит? Как выбрать один из множества возможных вариантов решения множества возникающих проблем? Как понять, что принятое нами решение не обернется пачкой негативных явлений в самом неожиданном месте? Об ответах на подобного рода вопросы с помощью таких инструментов, как Дерево текущей реальности, Диаграмма разрешения конфликтов, Дерево будущей реальности, и некоторых других, мы и поговорим в рамках данного доклада.
17. КПЛП №1 — Ясность
Не ok:
Сложно синхронизироваться У меня стационарный
с командой компьютер
OK!
Работаю
в распределённой
Переговорка
с девайсом
Есть переговорки
без девайса В
У меня не
мобильное
команде часто занята рабочее место
18.
19. КПЛП №2 — Наличие утверждения
Не ok (не закончено): ok:
БАГИ В продукте есть 2
блокера
ok:
Не ok (нарушена структура): Не успели сделать
3 спринтовых фичи
Не успели сделать 3
спринтовых фичи, потому
что фиксили баги
Фиксили в спринте
баги
20.
21. КПЛП №3 — Наличие П-С утверждений
Не ok (не явно): ok:
Смежной команде Мне ответили на 0
на нас плевать писем из 10
Не ok (причина не в этом): ok:
Не зарелизили фичу Не зарелизили
в спринте фичу в спринте
У смежной команды нет
доки Сгорел наш
дата - центр
22.
23. КПЛП №4 — Достаточность причины
OK!
Не ok Закончилось место на диске
боевой БД
Закончилось место на
диске боевой БД
«Залипла» очередь
сообщений
«Залипла» Логи очереди Не освободили
очередь пишутся на диск вовремя место на
сообщений боевой БД диске
24.
25. КПЛП №5 — Наличие альтернативной причины
Не ok OK!
Приложение начало Приложение начало
«плеваться» ошибками «плеваться» ошибками
Отказал диск на
DNS-cервере
Отказал диск на Кто-то напортачил
DNS-сервере в конфиге DNS’a
26.
27. КПЛП №6 — Поиск проверочного следствия
Не ok OK!
Приложение начало Сломалось Приложение начало
«плеваться» ошибками приложение «плеваться»
смежной команды ошибками
Кто-то напортачил в
конфиге DNS-а
Кто-то напортачил в конфиге
DNS’a
28.
29. КПЛП №7 — Отсутствие подмены причины
следствием
OK!
Не ok Мы поняли, что упал сервер БД
У нас упал сервер
Не ok: БД В логах ошибки доступа к БД
В логах ошибки доступа У нас упал сервер БД
к БД
Мы написали Не обеспечили
статью на «Хабр» отказоустойчивость
сервера
30.
31. КПЛП №5 — Отсутствие зацикливания логики
>> Криворукая команда сорвала сроки
Не ok: >> С чего взял, что команда криворукая?
>> Так она же сроки сорвала!
1. Не использовать результат для
обоснования причины
ok: 2. Тщательно анализировать
3. Искать проверочное следствие
40. Другие инструменты ТоС
Вопрос Инструмент
Что менять? Дерево текущей реальности
На что менять? Диаграмма разрешения конфликтов
-----------------------------------------------
Дерево будущей реальности
Как осуществить перемены? Дерево перехода
43. Какие проблемы решает ДРК
— Удостовериться, что конфликт существует
— Осознать его связь с системным проблемами
— Разрешить конфликт
44. Структура ДРК
— Анализируем исходные предположения методов
— Ищем нестандартный метод обеспечения условий
Условие 1 Метод 1
Конфликт
Задача Прорыв
Условие 2 Метод 2
45. Пример ДРК
Запустить Подключить
Android версию команду на Android
версию
Конфликт
Запустить линейку
продуктов
Подключить
Запустить iOS команду на iOS
версию версию
46. Пример ДРК
Запустить Подключить
Android версию команду на Android
версию
Конфликт
Запустить линейку Реализовать на
продуктов PhoneGap-e
Подключить
Запустить iOS команду на iOS
версию версию
47.
48. Какие проблемы решает ДБР
— Проверить идею на желаемые результаты
— Проверить идею на side effect’s
49. Структура ДБР
Желаемый Нежелательное Нежелательное
результат явление явление
Существующая Ожидаемый Нежелательное Существующая
реальность результат явление реальность
Существующая
реальность Прорыв Существующая
реальность
50. Пример ДБР
Желаемый
результат
Способны запускать
новый продукт
Ожидаемый
Реальность результат
Есть proof of Команда способна
concept идеи взяться за продукт
Реальность
Команда сейчас Увеличим команду
загружена на 100% в 5 раз
51. Пример ДБР Тимлид в Пользователи не
Желаемый печали довольны
результат
Способны запускать
новый продукт
Ожидаемый
Реальность результат Фокус-Фактор Запросов по продуктам
скатился до 0,0001 всё так же много
Есть proof of Команда способна
concept идеи взяться за продукт
Все 10 чел. вводят
новых людей в курс
Реальность
Команда сейчас Увеличим команду В команде сейчас
загружена на 100% в 5 раз 10 человек
54. Структура ДП Задача
Препятствие 1
Промежуточная
цель 1
Препятствие 2
Промежуточная Промежуточная
цель 2 цель 3
Препятствие 3
Промежуточная
цель 4
55. Пример ДП
Понимать, полезен ли пользователю
этот функционал в текущем виде
Не знаем, какой будет
реакция пользователей
Вспоминаем предыдущий опыт выкатки
подобного функционала частями
Нет опыта выкатки
подобных фич частями
Фиксируем успешность и факапность
всех релизов частями