Когда революция — это выход?

Сегодня вышло моё выступление на прошлогодней конференции ArchDays 2022.
Ниже будет текстовая часть про сам инструмент оценки.
Простая механика оценки необходимости рефакторинга продукта
Данная механика оценки необходимости рефакторинга вдохновлена трудами Тимофеева С.С. Методы и технологии оценки производственных рисков : практические работы для магистрантов по направлению 280700 «Техносферная безопасность».
Процедура оценки необходимости рефакторинга включает в себя три этапа:
- I этап – идентификация (определение) предпосылок;
- II этап – Оценка необходимости;
- III этап – Принятие решения;
I этап – идентификация предпосылок
Здесь необходимо выявить все возможные опасности, для этого рекомендуется использовать следующую информацию:
- Анализ производственных процессов – необходимо рассмотреть технологию производственного процесса, проанализировать процедуры и инструкции, описывающие данный процесс. Это позволит определить основные потенциальные предпосылки, связанные с оцениваемой деятельностью.
- Фактические условия внесения изменений – желательно не руководствоваться только информацией представленной в процедурах и инструкциях. Очень часто реальная ситуация сильно отличается от желаемой, описанной в инструкции. Поэтому необходимо обязательно самостоятельно использовать программный продукт и поучаствовать во внесении в него изменений, для которого проводится идентификация предпосылок.
- Беседа с исполнителями – иногда бывает сложно определить все возможные предпосылки в ходе разового погружения в продукт, т.к. в разные моменты времени работа с продуктом может отличаться (например, стандартные и нестандартные режимы работы), а соответственно могут возникать дополнительные предпосылки. Для определения таких предпосылок рекомендуется беседовать с непосредственными исполнителями.
- Оборудование, инструменты – предпосылки к рефакторинг представлют не только технология выполнения работы, но и оборудование и инструменты. Во время погружения в продукт, обращайте внимание на используемый инструмент и оборудование. Очень часто использование нестандартных или устаревших инструментов является источником дополнительных предпосылок к рефакторингу.
- Произошедшие инциденты – необходимо рассмотреть отчеты о расследовании происшествий, записи об обращениях от клиентов напрямую или первой линии технической поддеркжи.
II этап процедуры – оценка предпосылок.
Рассматриваемая методика не предполагает количественную оценку предпосылки. В соответствии с данной методикой она может принимать три значения: -
- неприемлемый
- высокий
- приемлемый
Методика представляет собой матрицу (рис. 1), в которой по вертикали расположена шкала тяжести последствий, а по горизонтали – вероятность возникновения опасного предпосылка. Точка пересечения вероятности и последствий является значением риска данной предпосылки. Если точка пересечения попадает в зеленую зону, то риск «приемлемый», в желтую – риск «высокий», в красную – «неприемлемый». Категория тяжести последствий определяется, как показано в табл. 1. При определении категории тяжести следует учитывать наихудший вероятный результат воздействия предпосылки, в предположении, что существующие меры нивилирования потенциальных проблем не сработали. После определения тяжести последствий следует определить вероятность возникновения опасного события, в предположении, что существующие меры безопасности работают. Существующие категории вероятности опасного события показаны в табл. 2.

Рис. 1. Матрица рисков предпосылок к рефакторингу
Значение риска определяется как пересечение категории тяжести и вероятности возникновения опасного события:
- Красный цвет свидетельствует о том, что риск неприемлемый, и предпосылка к рефакторингу значительна, продолжать жить с данным риском нельзя из-за вероятности серьезного происшествия;
- Желтый цвет свидетельствует о том, что риск высокий, но работу по устранению выявленных предпосылок можно отложить на непродолжительный срок;
- Зеленый цвет свидетельствует о том, что риск приемлемый, и можно продолжать жить без рефакторинга с учетом существующих корректирующих мер.
Определение категории тяжести несчастного случая по последствиям полученных повреждений:
1 | Инцидент, повлекший полный выход из строя продукта и бизнес процессов |
2 | Инцидент повлекший временное нарушение работы продукта с остановкой бизнес процесса |
3 | Инцидент повлекший кратковременный выход из строя бизнес процессов без остановки продукта |
4 | Инцидент повлекший необходимость вмешательства в работу продукта без остановки бизнес процеса и работы продукта |
5 | Инцидент требующий обучения или консультации по решению |
6 | Хотелки и мелкие неудобства |
Таблица 1
Категории вероятности | Вероятность события |
---|---|
А | ОЖИДАЕТСЯ |
Практически несомненно | |
Б | ВПОЛНЕ ВЕРОЯТНО |
В | ВОЗМОЖНО |
Г | МАЛОВЕРОЯТНО |
Д | ПРАКТИЧЕСКИ НЕВОЗМОЖНО |
Е | НЕ ПРОИЗОЙДЕТ |
Таблица 2
III этап процедуры – принятие решения
Тут все супер просто, если кол-во выявленных неприемлемых предпосылок превышает пороговое значение в 80% - назад дороги нет, нужно переписывать прямо сейчас
Если больше половины - стоит не откладывать в долгий ящик и заняться рефакторингом в следующем квартале/году
Если меньше половины - вероятно хватит поддерживающих мер для стабилизации продукта, но если есть возможность лучше задуматься о рефакторинге эволюционном путем.
Ну а если ничего нет - успокаиваемся и ничего не делаем.
Как показала моя практика - проведенный аудит любого продукта по этой методике за пару дней может наглядно показать почему все плохо и как с этим быть дальше.
В целом это не единственный тулинг, который можно использовать для достижения искомой цели, любые практики оценки рисков могут быть применимы с незначительными корректировками.