Системний аналіз

analysis Менеджмент

Чи доводилось вам приймати рішення, коли змінних надто багато, а наслідки неочевидні?

Системний аналіз – це підхід до розв’язання складних задач, який передбачає вивчення всіх елементів системи та їх взаємозв’язків для досягнення оптимального рішення.

Якщо компанія допрацьовує IT-систему під свої завдання або розробляє таку систему з нуля, значить, у компанії є системний аналітик або той, хто виконує його функції. Якщо ви знайомі з терміном «системний аналіз», але поки що не дуже добре уявляєте, про що йдеться, ця стаття для вас.

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

Що таке системний аналіз

Системний аналіз в IT – пошук і опис найкращого рішення бізнес-проблеми з урахуванням системних характеристик і обмежень системи. У системного аналізу немає заздалегідь визначеного результату; він залежить від того, в якій сфері його проводять і якими були умови вихідного завдання.

Припустимо, маркетолог хоче прибрати одне з полів у формі заявки на сайті. Він може поставити завдання розробнику, не враховуючи можливі зв’язки цього поля. Розробник прибере поле, але все «зламається»: виявиться, що дані з цього поля передаються в CRM-систему і тепер вона не може коректно працювати.

Суть системного аналізу в тому, щоб передбачити цей сценарій і заздалегідь вивчити, який вплив на систему матиме зміна її елементів. Тобто з’ясувати, з чим пов’язане поле, які дані воно зберігає, куди передає, і що буде, якщо його прибрати, і запропонувати рішення, яке влаштує маркетолога і не порушить логіку роботи інших систем. Особливо це важливо, коли сервіси в системі активно взаємодіють один з одним.

Також у терміна «системний аналіз» є інші значення. Уперше його вжила некомерційна організація RAND у 1948 році. У літературі під системним аналізом розуміють науковий напрям; ми ж говоримо про окремий випадок – системний аналіз в IT.

Системний аналітик

За системний аналіз у компаніях відповідає системний аналітик. Це фахівець, який формує вимоги до IT-системи і контролює процес її розроблення або доопрацювання.

Ось чим займається системний аналітик:

  • Збирає й аналізує вимоги до IT-системи від бізнес-замовників або вивчає проблему, з якою вони прийшли. Також це може робити бізнес-аналітик, якщо в компанії є обидві ролі.
  • Шукає способи вирішити проблему або виконати вимоги бізнес-замовника.
  • Розробляє технічні завдання – описує вимоги до системи мовою, зрозумілою розробникам.
  • Ставить завдання на розробку або доопрацювання системи.
  • Тестує систему – перевіряє, чи коректно вона працює і чи відповідає вимогам. Системний аналітик займається цим, якщо в проєкті немає тестувальника.
  • Розробляє технічну і призначену для користувача документацію – описує, як працює система і як нею користуватися.

Системний аналітик – це один із щаблів розвитку кар’єри в аналітиці. Є схожа на неї професія – бізнес-аналітик; але між системною та бізнес-аналітикою є різниця. Системний аналітик володіє широкими знаннями про технології та особливості розроблення системи; бізнес-аналітик насамперед добре знає предметну область, яку аналізує.

Проблеми системного аналізу

Усі проблеми в системному аналізі поділяють на три групи: структуровані, слабоструктуровані та неструктуровані.

Структуровані проблеми – проблеми, які відомі та добре зрозумілі, про них зібрано багато ввідних даних. Тобто існують показники, за якими можна зрозуміти, що щось не так, і припустити, як можна це виправити.

Припустимо, ми розробили систему і написали до неї користувацьку інструкцію. У ній описані алгоритми роботи і всі помилки, які можуть виникнути. За тим, на якому кроці «спіткнувся» користувач або з якою помилкою він зіткнувся, можна зробити висновок про те, в чому саме полягає проблема.

Слабоструктуровані проблеми – проблеми, які потребують додаткового вивчення, тому що ввідних даних недостатньо. Є показники, але незрозуміло, чи вистачить їх, щоб оцінити ситуацію, чи потрібно додатково збирати якісь дані. Іноді показників не вистачає: доводиться спиратися не тільки на кількісні метрики, а й на якісні.

Розберемо той самий приклад: ми розробили систему, але не підготували інструкцію і не написали повідомлення на випадок помилок. Користувач намагається увійти в систему і бачить помилку 403. Йому доведеться самостійно з’ясовувати, що означає ця помилка. Якби крім коду ми вивели повідомлення «Доступ заборонено. Зверніться до адміністратора», шлях до вирішення проблеми був би простішим.

Неструктуровані проблеми – проблеми, про які дуже мало ввідних даних. Не відомі жодні показники, і часто незрозуміло, де їх отримати.

Неструктуровані проблеми найскладніші. Через те, що немає жодної інформації та досвіду роботи з цими проблемами, їх вирішують практично навмання. Результат розв’язання може бути невідомий заздалегідь; але водночас неструктуровані проблеми потенційно розв’язувані.

Приклад неструктурованої проблеми – бізнес-замовник хоче бачити в системі метрики, які зараз не зберігаються в жодному із сервісів системи. Крім того, незрозуміла механіка їхнього розрахунку; незрозуміло, де вони мають бути і куди їх мають передавати.

Як проводять системний аналіз

Єдиного алгоритму системного аналізу немає, все залежить від завдання. Але можна виділити етапи, які системний аналітик проходить у більшості випадків.

З’ясування проблеми

Сліпо довіряти вступним даним – груба помилка. Тому перше, що робить системний аналітик, – уточнює, чи дійсно те, з чим до нього прийшов бізнес-замовник, – проблема.

Наприклад, бізнес-замовник каже: знизилася кількість реєстрацій на сайті, раніше отримували 400 реєстрацій на тиждень, тепер – 100. Системний аналітик перевіряє звіт і бачить, що користувачі дійсно стали рідше реєструватися: зрозуміло, що проблема реальна.

Якщо бізнес-замовник каже «мені здається, що реєстрацій стало менше», системний аналітик спочатку перевіряє, скільки реєстрацій було раніше і скільки зараз: так він переконується, що проблема реально існує.

Визначення завдання

Якщо бізнес-замовник не поставив завдання, системний аналітик робить це сам. Він визначає, яку проблему потрібно вирішити і до якого результату прийти.

Для постановки завдання часто використовують метод SMART. Тобто ставлять конкретну, вимірювану, досяжну, релевантну й обмежену в часі мету: не просто «підвищити кількість реєстрацій на сайті», а «досягти 400 реєстрацій на сайті на тиждень через три місяці».

Впровадження рішення

Це найтриваліший за часом етап. Системний аналітик вивчає систему і зв’язки об’єктів один з одним, робить припущення; придумує, як досягти поставленої мети з мінімальними витратами ресурсів. Для пошуку рішення використовують різні інструменти – про них ми поговоримо нижче.

Досвідчений системний аналітик закриває частину питань на своєму рівні, не залучаючи ресурси розробки, якщо це дозволяє завдання. Припустимо, бізнес-замовник хоче, щоб в IT-систему додали звіт, якого там зараз немає, і ставить завдання системному аналітику. Системний аналітик вивчає інші системи і з’ясовує, що в іншій IT-системі є такий самий або максимально схожий звіт. Він не залучає ресурси розробки, а надає бізнес-замовнику доступ до звіту в іншій системі і тим самим закриває його потребу.

Технічне завдання

Якщо рішення завдання в тому, щоб доопрацювати або розробити IT-систему, системний аналітик готує технічне завдання розробникам. Він пояснює деталі, враховуючи зв’язки та обмеження системи; розуміє, на які частини системи вплине ця розробка.

Інструменти та методи  для системного аналізу

Є величезна кількість методів та інструментів, які використовують для системного аналізу. Ми перелічимо деякі з них.

  • Основний метод у системному аналізі – моделювання бізнес-процесів. Найчастіше для нього використовують нотацію BPMN – це система умовних позначень, яка дає змогу описувати бізнес-процеси у вигляді схем. Крім неї, системні аналітики можуть використовувати IDEF, EPC, інші види нотацій і звичайні блок-схеми.
  • Також у системному аналізі використовують інші види моделювання – наприклад, UML-діаграми. UML – уніфікована мова моделювання. Ще системний аналітик може використовувати діаграми зв’язків, теорію ігор, кластерний аналіз і багато інших методів, якщо вони дають змогу розв’язати завдання.
  • Інструменти системного аналітика – будь-яке програмне забезпечення, в якому можна візуалізувати процеси та зв’язки між об’єктами системи. Так, для цього використовуються стандартний офісний пакет програм, Draw.io, Miro, Camunda і подібні до них інструменти.
  • Якщо системний аналітик мало візуалізує і більше працює з кодом, він використовуватиме інші інструменти: бази даних, інструменти для роботи з ними на кшталт SQL, панелі візуалізації даних – наприклад, Kibana.

Системні аналітики підбирають методи та інструменти для кожного завдання, виходячи зі свого досвіду та умов.

Системний аналітик повинен володіти навичками логічного та системного мислення, бути комунікабельним.

  • Логічне мислення – це здатність аналізувати інформацію та робити висновки на основі даних. Це обов’язкова якість і для системного, і для бізнес-аналітика.
  • Системне мислення – це вміння розуміти зв’язки між об’єктами і бачити їх як єдину систему; розуміти, як об’єкти взаємодіють один з одним і що буде, якщо змінити один з них.
  • Комунікабельність – це вміння слухати, чути і ставити запитання. Системний аналітик має вміти спілкуватися з людьми, бо він з’ясовує їхні потреби, отримує інформацію про вимоги до систем – і передає її розробникам у зрозумілому для них вигляді.

Також системним аналітикам потрібні знання про IT-системи, з якими вони працюють, і про процес розробки загалом. Фахівець може не вміти читати код, але він має розуміти, про що говорять розробники, а для цього потрібно розбиратися в темі.

Як опанувати системний аналіз

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

Якщо ви хочете орендувати квартиру, ви можете знайти кілька оголошень, подивитись усі варіанти й ухвалити рішення, відштовхуючись від того, яке житло вам більше сподобалося. А можете зробити по-іншому:

  • Скласти список критеріїв, за якими будете оцінювати квартири. Наприклад, ціна, можливість проживання з домашніми тваринами, наявність меблів.
  • Скласти список відповідних варіантів житла.
  • Оцінити варіанти за підібраними критеріями і знайти переможця – квартиру, яка підійде вам за більшістю критеріїв.
  • Це і є системний підхід; ви керуєтеся даними й ухвалюєте зважене рішення, а не відштовхуєтеся від суб’єктивних відчуттів.

Але освоїти системний аналіз, тільки застосовуючи системний підхід у житті, не вийде. Потрібно буде вивчити інструменти візуалізації, методи моделювання, процес розробки тощо.

Системний аналіз у 4 пунктах

  • Системний аналіз в IT – пошук і опис найкращого рішення бізнес-проблеми з урахуванням системних характеристик і обмежень системи. За системний аналіз відповідає системний аналітик.
  • Єдиного алгоритму системного аналізу немає, але є етапи, які проходять у більшості випадків. Спочатку системний аналітик з’ясовує, чи справді існує проблема. Потім визначає завдання, знаходить спосіб його вирішення і створює технічне завдання на розробку.
  • Є величезна кількість методів та інструментів, які можна використовувати для системного аналізу. Найчастіше використовують моделювання, зокрема моделювання бізнес-процесів, та інструменти візуалізації на кшталт Draw.io, Miro і Camunda.
  • Системного аналізу можна навчитися. Зробити це легше буде комунікабельним людям з аналітичним складом розуму та системним мисленням. Щоб навчитися проводити системний аналіз, потрібно почати застосовувати системний підхід у житті та вивчити інструменти візуалізації, методи моделювання, процес розробки та багато іншого.

Висновок

Системний аналіз допомагає побачити повну картину складних процесів і приймати обґрунтовані рішення на основі всебічного вивчення системи.

Системний аналіз оцінює всі складові системи та їхні взаємозв’язки. Він допомагає виявити проблеми й ризики на ранніх етапах, дає змогу формувати чіткі цілі та пріоритети, підвищує якість ухвалення рішень на основі фактів. Також оптимізує використання ресурсів і часу та знижує ймовірність помилок і збитків. Використовується у різних галузях – від бізнесу до технологій.

Павлов Максим

Founder & CEO Onpage School

Оцініть автора
Onpage School