Наташа Косинова. Варю айти СУП
2.68K subscribers
67 photos
3 videos
9 files
335 links
Системный аналитик, тимлид, ментор, бизнес-тренер, автор айти курсов. Работаю в айти с 2006 года. Мой канал про айти, без лапши успешного успеха. Варю айти СУП здорового человека)

Мои услуги:
https://nkosinova.taplink.ws

Написать мне @tasha_kvitka
Download Telegram
#мысливслух #рассуждения #usecases #мойопыт #менторство #замечено #выводы #системныйанализ

Почему аналитики плохо пишут use cases?

Очень часто на курсах по интеграции в ШСА, да и не только, на менторстве тоже, и на собеседованиях встречается общая проблема по use cases. Аналитики плохо пишут сценарии вариантов использования.

👉1.Во первых, есть аналитики, кто не делает различий между use cases и user story. Вместо того, чтобы спрашивать аналитиков различие между Soap и Rest, на собеседование, лучше спросить различие между use cases и user story.
👉2.Во вторых, сценарии, как техника, используются на разных уровнях абстракции и не только аналитиками, но и тестировщиками, проектировщиками интерфейсов, продактами, да всеми)) Удобно.
👉3.Действительно, на системном или на уровне проектирования взаимодействия систем, мало кто из аналитиков грамотно может описать use cases. Это уже уровень архитектора, проектировщика, разработчика. Но он часто необходим на проектах, особенно если речь едет об интеграции.
👉4.Часто идёт ещё и смешение понятий функция и сценарий использования. Хотя use case вполне можно считать спецификацией функции.
👉5.Ну и плюс очень часто мы стараемся оперировать каноничным подходом, который был у Коберна (по крайней мере я всех к нему отправляю). И ещё пытаемся смаппить use cases и user story, я об этом писала, аж в 2020 году, что есть такое понятие как use cases 2.0 - https://t.me/start_in_IT/257

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

В итоге мы получаем высокоуровневые, часто до конца не проработанные сценарии. Их бы ещё детализировать и ещё докручивать и докручивать.

Выводы у меня следующие:
1.Высокоуровневые, на уровне бизнеса и взаимодействия пользователь - система, аналитики вполне отлично справляются.
2.Если аналитик не имеет базы, фундамента, плохо пишет алгоритмы, блок-схемы, то и сценарии также идут плохо. Везде в основе теория графов, сети Петри.
3.Сюда же я отнесу абстрактное мышление, это прям бич. Переключаться с одного уровня на другой самая большая проблема. Сложно понять где мы находимся, и где наши границы и рамки описания сценариев.
4.Сценарии на уровне взаимодействия модулей, систем требует знаний словаря данных, модели данных, что кому передаёт, как, в каком формате, по каким протоколам, синхронно, асинхронно, или файлами, или голубиной почтой.
5.Плюс сценарий не панацея и часто его нужно дополнять описанием алгоритмов, функций, а это математика. И я опять возвращаюсь к базовым, фундаментальным знаниям.
6.И ещё сюда добавлю обзор архитектурных решений. Потому что нужно хотя бы на пальцах понимать, как выстроено решение, к которому мы пишем уже на системном уровне требования, а точнее проектируем на языке требований, функций, что объединяет в себе целый комплекс знаний.

Итого: круг замыкается снова на том, что системный анализ инженерия, и даже в таком простом, с первого взгляда, инструменте, как use cases, собирает целый комплекс знаний.
#системныйанализ #usecases #выводы #мойопыт #моемнение #замечено

Цель в use cases
Тема про use cases и системный уровень их написания оказалась животрепешущей. И на эту тему ко мне пришли ещё подписчики, чему я очень рада)))

Итак, давайте ещё соберём информацию.
Евгений Галактионов https://t.me/systemspodhod
правильно описал, то что проблема часто заключается в понимание цели. А зачем вообще use case и что он делает?

Это очень видно, когда на пользовательском уровне мы получаем набор use cases по crud.
Пользователь создаёт заявку, редактирует, читает, удаляет (или переводит в архив).

Но вот я диспетчер автобазы с автомониторингом, я вообще не мыслю такими понятиям! На кой ляд мне эти функции?
Бизнес пользователь думает о том, что ему Васю с Петей нужно отправить на линию да ещё так, чтобы они не слили бензин, доехали до места и сделали ремонт оборудования. То есть наш диспетчер Маша, хочет сформировать бригаду для выполнения запросы от жителей дома. И описать в ней ограничения, быстро согласовать и после проконтролировать выполнение.

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

Уже классика жанра, когда разные команды делают разные функции, кнопочки, блоки на front-end, а работать с этим невозможно, потому что нет связи и пользовательских сценариев.

Но и на уровне межсистемного, межмодульного взаимодействия также часто никто не может рассказать, зачем одна система делает вычисления, кеширует данные и передаёт в другую? Кто-то был художником и так видел реализацию чего-то, для того чтобы ЧТО выполнить и получить?

А потом мы и получаем истории, про то, что мы не знаем кто этим пользуется, сейчас отключим и будем ждать, кто будет орать))))
#системныйанализ #usecases #функция #моделирование #СергейНужненко #митап

Мне очень нравится старое выступление Сергея Нужненко на митапе Superjob, аж 4 года как прошло, про функциональное моделирование, в том числе с помощью use cases.

ГОСТ нам говорит классификацию с чем нам приходится работать:

Информационная система
Автоматизированная система
Сервис

Это тоже подсказка, как нам определить рамки той области, к которой мы описываем use cases.

Рамки могут быть любые и это самое сложное вычленить блок и увидеть его, в том числе и на абстрактом уровне.

Делюсь ссылкой, как всегда уровень докладов Сергея Нужненко зашкаливает своей системностью и глубиной):
https://youtu.be/lIIPyaUVUeo