December 22, 2022

SA and BA. How to become a System Analyst?

Содержание

Оба бизнес и системный аналитик стремятся к тому, чтобы лаконичнее, проще, эффективнее реализовать какое-либо решение.
Эти два аналитика должны четко представлять масштабы и качественные характеристики системы:
👉🏻 как строится программный продукт и какие ограничения в нем присутствуют;
👉🏻 какие данные используются в системе и какие можно получить результаты из этих данных;
👉🏻 из каких элементов состоит система и как эти элементы взаимодействуют друг с другом;

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

В свою очередь системный аналитик ближе к системе, к команде разработки, т.е. условно он “решает проблемы реализации системы”.

Ключевые знания бизнес-аналитика:
📍 работа с требованиями и их приоритезация;
📍 спецификация требований;
📍 выстраивание последовательности требований;
📍 декомпозиции задач;
📍 основы моделирование и прототипирования и др.

Системный аналитик, помимо знаний присущих бизнес-аналитику, должен иметь следующую “надстройку”:
📌 теория проектирования баз данных, связи данных в БД;
📌 язык запросов SQL;
📌 понимание работы web-системы (HTML, xml/json, работа браузера);
📌 понимание объектно-ориентированного программирования;
📌 знание процессов разработки приложений и их архитектуры;
📌 навыки программирования на как минимум одном из языков, например C++, JS;
📌 библиотеки или платформы, используемые на проекте;
📌 владение современных методов разработки;
📌 UML диаграммы, среди которых маст хэв следующие Use case diagram, Class diagram, State machine diagram, Activity diagram, Sequence diagram.

Преимущества, которые дают аналитику знания системного анализа:
👉🏻 он может согласовывать с заказчиком требования, которые будут более “реализуемы”;
👉🏻 способен описывать требования языком, который более понятен разработчикам;
👉🏻 умеет писать требования, которые уже учитывают возможности и ограничения языка/платформы или ранее принятых решений;
👉🏻 более качественно ставит задачи для их реализации разработчиками.

-------------------------------------------------------------------------------