Инструменты системного мышления против решений (РИТ++)

Preview:

DESCRIPTION

Довольно часто в процессе разработки ПО нам важно и нужно принимать решения, но с другой стороны, как мы знаем, решения — основная причина возникновения проблем. Как проанализировать социотехническую систему целиком и осознать, что в ней происходит? Как выбрать один из множества возможных вариантов решения множества возникающих проблем? Как понять, что принятое нами решение не обернется пачкой негативных явлений в самом неожиданном месте? Об ответах на подобного рода вопросы с помощью таких инструментов, как Дерево текущей реальности, Диаграмма разрешения конфликтов, Дерево будущей реальности, и некоторых других, мы и поговорим в рамках данного доклада.

Citation preview

Инструменты системного мышления против решений «пальцем в небо»

Андрей Геоня

Сбой в команде

Инструменты

Failure Mode and Effects Analysis

Fault Tree Analysis

Пять почему

Комплексная система

3 офиса разработки

Комплексная система

R&D 2GIS

20+ команд

200+ человек

200+ серверов

Самообман или упрощение

Дерево текущей реальности

А

В Если А, то В

C

В А Если А и В, то С

Как избежать «философии»

Не ok: КПЛП №1 — Ясность

Сложно синхронизироваться с командой

У меня стационарный компьютер

В Работаю в распределённой

команде

Переговорка с девайсом

часто занята

Есть переговорки без девайса

У меня не мобильное

рабочее место

OK!

Не ok (не закончено):

Не ok (нарушена структура):

ok: БАГИ

Не успели сделать 3 спринтовых фичи, потому

что фиксили баги

КПЛП №2 — Наличие утверждения

В продукте есть 2 блокера

ok: Не успели сделать 3 спринтовых фичи

Фиксили в спринте баги

КПЛП №3 — Наличие П-С утверждений

Не ok (не явно): Смежной команде

на нас плевать

Не ok (причина не в этом):

Не зарелизили фичу в спринте

У смежной команды нет доки

ok: Мне ответили на 0

писем из 10

ok: Не зарелизили фичу в спринте

Сгорел наш дата - центр

КПЛП №4 — Достаточность причины

Не ok Закончилось место на

диске боевой БД

«Залипла» очередь сообщений

Закончилось место на диске боевой БД

«Залипла» очередь

сообщений

Логи очереди пишутся на диск

боевой БД

Не освободили вовремя место на

диске

OK!

КПЛП №5 — Наличие альтернативной причины

Не ok Приложение начало

«плеваться» ошибками

Отказал диск на DNS-cервере

Приложение начало «плеваться» ошибками

Отказал диск на DNS-сервере

Кто-то напортачил в конфиге DNS’a

OK!

КПЛП №6 — Поиск проверочного следствия

Не ok Приложение начало

«плеваться» ошибками

Кто-то напортачил в конфиге DNS-а

Кто-то напортачил в конфиге DNS’a

Сломалось приложение

смежной команды

OK! Приложение начало

«плеваться» ошибками

Не ok:

КПЛП №7 — Отсутствие подмены причины следствием

Не ok У нас упал сервер

БД

В логах ошибки доступа к БД

Мы поняли, что упал сервер БД

Мы написали статью на «Хабр»

Не обеспечили отказоустойчивость

сервера

OK!

В логах ошибки доступа к БД

У нас упал сервер БД

Не ok: >> Криворукая команда сорвала сроки >> С чего взял, что команда криворукая? >> Так она же сроки сорвала!

1. Не использовать результат для обоснования причины 2. Тщательно анализировать 3. Искать проверочное следствие

ok:

КПЛП №5 — Отсутствие зацикливания логики

«Что мешает мне работать эффективнее?»

Собираем команду

Собираем нежелательные явления (НЯ)

Строим ДТР

Вопрос Инструмент Что менять? Дерево текущей реальности

На что менять? Диаграмма разрешения конфликтов ----------------------------------------------- Дерево будущей реальности

Как осуществить перемены? Дерево перехода

Другие инструменты ТоС

— Противоположные точки зрения

— Выбор между альтернативами

Виды конфликтов

— Удостовериться, что конфликт существует

— Осознать его связь с системным проблемами

— Разрешить конфликт

Какие проблемы решает ДРК

— Анализируем исходные предположения методов

— Ищем нестандартный метод обеспечения условий

Структура ДРК

Задача

Условие 1 Метод 1

Условие 2 Метод 2

Прорыв

Конфликт

Пример ДРК

Запустить линейку продуктов

Запустить Android версию

Подключить команду на Android

версию

Запустить iOS версию

Подключить команду на iOS

версию

Конфликт

Пример ДРК

Запустить линейку продуктов

Запустить Android версию

Подключить команду на Android

версию

Запустить iOS версию

Подключить команду на iOS

версию

Конфликт Реализовать на

PhoneGap-e

— Проверить идею на желаемые результаты

— Проверить идею на side effect’s

Какие проблемы решает ДБР

Структура ДБР

Желаемый результат

Существующая реальность

Ожидаемый результат

Существующая реальность Прорыв Существующая

реальность

Нежелательное явление

Существующая реальность

Нежелательное явление

Нежелательное явление

Способны запускать новый продукт

Есть proof of concept идеи

Команда способна взяться за продукт

Команда сейчас загружена на 100%

Увеличим команду в 5 раз

Желаемый результат

Ожидаемый результат Реальность

Реальность

Пример ДБР

Способны запускать новый продукт

Есть proof of concept идеи

Команда способна взяться за продукт

Команда сейчас загружена на 100%

Увеличим команду в 5 раз

Желаемый результат

Ожидаемый результат Реальность

Реальность

В команде сейчас 10 человек

Все 10 чел. вводят новых людей в курс

Фокус-Фактор скатился до 0,0001

Запросов по продуктам всё так же много

Тимлид в печали

Пользователи не довольны

Пример ДБР

— Помогает определить преграды на пути к цели

Какие проблемы решает ДП

Структура ДП Задача

Промежуточная цель 1

Промежуточная цель 2

Промежуточная цель 3

Промежуточная цель 4

Препятствие 1

Препятствие 2

Препятствие 3

Пример ДП Понимать, полезен ли пользователю

этот функционал в текущем виде

Вспоминаем предыдущий опыт выкатки подобного функционала частями

Фиксируем успешность и факапность всех релизов частями

Не знаем, какой будет реакция пользователей

Нет опыта выкатки подобных фич частями

Статичность ДТР

Мораль — не строить дерево 2 недели, если можно построить за 2 дня

@AndreyGeonya a.geonya@gmail.com

Вопросы?

Recommended