Найти в Дзене
Аналитическая среда

Чем руководствоваться системному аналитику при принятии решения?

Терминология в статье: Системный аналитик (как и другие члены команды) постоянно принимает решения по своим задачам: и тд, но факт в том, что принимать решения нужно всегда и без этого никуда. Если говорить про шаги сбора, моделирования и документирования требований, то здесь все достаточно формализовано и любое принятое решение в целом будет работоспособно и отличается от других вариантов больше форматом описания, нежели сутью. А вот принятие решения на этапе проектирования (дизайна) решения уже не так просто, потому что неверно выбранное решение в дальнейшем скажется на атрибутах качества ПО: функциональность, надёжность, производительность, безопасность, поддерживаемость и тд (регламентируется различными стандартами ISO/IEC 25010:2011 (ГОСТ Р ИСО/МЭК 25010-2015)). Момент с тем, что порой принятие решения по дизайну принимает системный аналитик не в одиночку, а совместно с архитектором и ключевыми разработчиками, оставим пока за скобками рассуждений, ибо такое бывает не всегда и чаще

Терминология в статье:

  • Системный анализ - подход к исследованию сложных систем, который помогает выявлять, структурировать и решать проблемы в различных областях (не только ИТ)
  • Подход - совокупность методов, инструментов или знаний, которые используются для решения какой-либо задачи
  • Принцип - слово происходит от латинского principium, что в переводе означает «начало» или «основа». Сейчас используется в значении утверждения и постулата для принятия решения

Системный аналитик (как и другие члены команды) постоянно принимает решения по своим задачам:

  • на этапе сбора требований: какими методами сбора требований воспользоваться, как согласовывать требования, когда остановиться при сборе требований;
  • на этапе моделирования: какими моделями воспользоваться чтобы было понятно и команде и заинтересованным лицам;
  • на этапе документирования: какой формат описания требований выбрать, чтобы их они были понятны всем участниками и можно был переиспользовать в дальнейшем;
  • на этапе проектирования решения: на что ориентироваться при выборе решения;

и тд, но факт в том, что принимать решения нужно всегда и без этого никуда.

Если говорить про шаги сбора, моделирования и документирования требований, то здесь все достаточно формализовано и любое принятое решение в целом будет работоспособно и отличается от других вариантов больше форматом описания, нежели сутью.

А вот принятие решения на этапе проектирования (дизайна) решения уже не так просто, потому что неверно выбранное решение в дальнейшем скажется на атрибутах качества ПО: функциональность, надёжность, производительность, безопасность, поддерживаемость и тд (регламентируется различными стандартами ISO/IEC 25010:2011 (ГОСТ Р ИСО/МЭК 25010-2015)). Момент с тем, что порой принятие решения по дизайну принимает системный аналитик не в одиночку, а совместно с архитектором и ключевыми разработчиками, оставим пока за скобками рассуждений, ибо такое бывает не всегда и чаще всего в крупных проектах с участием большего числа участников и команд.

Задача выбора решения актуальна в случае, если после "отсева" вариантов, не соответствующих требованиям и базовым критериям выбора (реализуемость, поддерживаемость и другие), осталось несколько равноценных решения и нужно выбрать из них единственный, который пойдет в разработку. Именно здесь аналитику и нужно обратиться к истокам своей области знаний - "системному анализу".

В своей работе мы часто говорим о системном анализе, как о дисциплине, которой занимается системный аналитик (что очевидно и верно, но по сути является лексической тавтологией те повторением однокоренных слов без раскрытия смысла), но не говорим о том, что есть "системный анализ". Согласно академическому определению - это "подход к исследованию сложных систем, который помогает выявлять, структурировать и решать проблемы в различных областях". В его основе лежит понимание того, что любой объект исследования (система) представляет собой нечто большее, чем просто сумму составляющих его частей, так как результирующая система начинает обладать иным набором свойств, нежели отдельные её части.

В свою очередь любой подход, включая системный, строится на ряде принципов, которые необходимы для понимания и описания взаимодействия компонентов системы. Также они помогают:

  • выявлять ключевые факторы, влияющие на функционирование системы;
  • учитывать весь комплекс взаимосвязей компонентов системы.
  • вырабатывать оптимальные рекомендации по совершенствованию системы;

Последний пункт из списка является ничем иным, как подсказкой к тому, как выбирать "правильное" решение, в том числе и на этапе дизайна решения.

Больше другой полезной информации в ТГ канале: https://t.me/all_for_analyse

Рассмотрим ключевые принципы системного анализа:

Принципы:

  • целостности: cистема должна рассматриваться как единое целое, все элементы которой тесно взаимосвязаны. Подход позволяет выявить влияние каждой части на функционирование всей структуры
  • моделирования: при подготовке упрощенного представления системы (модели), нужно учитывать только те интересующие свойства, накладывая ограничения и условия на остальные
  • оптимальности: задача заключается не в том, чтобы найти решение лучше существующего, а в том, чтобы найти самое лучшее решение из всех возможных
  • множественности описания: систему рассматривают с различных точек зрения (моделей), чтобы учесть все возможные аспекты и перспективы
  • эмерджентности: чем больше система и чем больше различие в размерах между частью и целым, тем выше вероятность того, что свойства целого могут сильно отличаться от свойств частей
  • системности: исследование объекта (системы) нужно проводит, с одной стороны, как единого целого, а с другой – как части более крупной системы, в которой анализируемый объект находится с остальными системами в определенных отношениях
  • иерархии: элементы системы организованы на разных уровнях, где каждый уровень решает свои задачи. Это позволяет упорядочить и структурировать рассмотрение объектов или процессов, реализуемых в системе
  • адаптивности: способность системы к изменению состояния в ответ на внешние воздействия. Этот принцип позволяет учитывать динамические и изменчивые условия окружающей среды
  • формулировки базовых целей и задач: процесс принятия решений должен начинаться с выявления и четкого формулирования конечных целей
  • объективности: суть принципа состоит в том, что любые знания, любая информация об изучаемом объекте должны быть объективны
  • приоритета конечной цели: цели отдельных частей не должны вступать в конфликт с конечными целями всей системы
Принципы системного анализа, как основа системного анализа
Принципы системного анализа, как основа системного анализа

Таким образом, при принятии решения аналитик может проверить варианты решения (дизайна) на соответствия принципам и выбрать удовлетворяющий максимальному их набору.

Безусловно задача не простая, требующая от аналитика сверки соответствия принципам не только результатов дизайна, но и артефактов предшествующих этапов работы с требованиями.

Ремарка: представленный набор принципов не претендует на полноту и в разных источниках можно найти еще их достаточное количество, главное объективно отобрать те из них, которые подходят для решаемой задачи.

Больше другой полезной информации в ТГ канале: https://t.me/all_for_analyse

Другие полезные статьи:

Как понять аналитику, что сбор требований завершен?

Чек лист то, что в проекте проблема с требованиями