Если хорошо играете в шахматы, то у вас есть все шансы стать хорошим системным аналитиком

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

Задам вам, как специалисту, прямой вопрос: что такое системный анализ? Что входит в это понятие?

Если хорошо играете в шахматы, то, у вас есть все шансы стать хорошим системным аналитикомВообще, системный анализ состоит из двух слов: «системный» и «анализ». Если уйти от стереотипов, то это анализ систем. Все просто. Анализ позволяет рассмотреть систему как совокупность некоторых частей, которые находятся в некоторой взаимосвязи, а в целом имеют определенную функцию. Системный анализ как раз и разделяет систему на составляющие, выявляет, как именно они взаимодействуют, каким образом получается итоговая функция. Но это, повторюсь, если стереотипов не навешивать. Однако людей же интересует, как это выглядит на деле.

Самый жесткий стереотип существует в области IT: системный анализ — это разработка технического задания (ТЗ). Именно этот стереотип отражается и в вакансиях на рынке труда. Самого специалиста, который будет разрабатывать ТЗ, так и называют: системный аналитик. Да и я, по существу, преподаю на курсе именно эту сторону системного анализа: сбор, анализ, оформление требований, разработка моделей будущей информационной системы, согласование с заказчиком, сопровождение разработки, консультации и тому подобное. Таким образом, если рассматривать системный анализ в ключе информационных систем, то его можно определить как деятельность по анализу этой самой системы, сбору и разработке требований, анализу тех изменений, которые нужно внести. Так что, в узком смысле, системный анализ и есть подготовка ТЗ.

В общем же смысле, для любой системы может возникнуть необходимость либо в ее изначальной разработке, либо ее доработке. Поэтому системный аналитик, в целом, этим и занимается: разрабатывает задание на разработку или изменение какой-либо системы.

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

Любого масштаба проект требует системного анализа. Просто для маленьких проектов, малого бизнеса, и один человек может справиться: менеджер проекта или тот же тим-лидер, да даже программист, если навык есть. Он берет на себя функцию системного аналитика: анализирует требования, пусть их немного и они простые, но тем не менее он их анализирует и реализует в виде программного кода. В маленьких проектах и организациях иногда результаты анализа даже не нужно оформлять в виде спецификаций. Просто сразу в голове «аналитика» формируется готовая модель, которая и становится основанием для программирования.

То есть если у компании есть какая-то своя информационная среда, то, когда специалист начинает ею заниматься, он, в первую очередь, работает с требованиями к ее изменению, улучшению и так далее. Компонует из них ТЗ?

Да, в целом так и есть. Правда, в реальности бывает все намного проще: не аналитик компонует, а заказчик приходит со своими требованиями. Соответственно, его надо выслушать, рассмотреть его вопросы и перевести на язык ТЗ для программистов и разработчиков, написать спецификацию. Так что системный аналитик не просто чаще всего работает с требованиями, он именно с ними и работает. Требования могут получаться в самом разном виде и степени оформленности. Зависит от заказчика. Кто-то принесет конкретный список того, что хочет получить на выходе, а кто-то будет о своих мечтах рассказывать. И задача тут — взять эти пожелания, структурировать, проанализировать и написать на их основе внятные спецификации, которые поймет разработчик.

Могли бы вы конкретно описать, чем занимается системный аналитик? Какие функции выполняет специалист?

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

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

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

Наконец, аналитик может общаться и с тестировщиками: объяснить, как устроена система и как лучше составить тест-план. Еще может участвовать в презентации уже готового продукта заказчику и даже в обучении. Для этого, конечно, есть отдельная роль тренера или инструктора, но иногда ее берет на себя системный аналитик. Все это зависит от состава команды и наличия людей.

А в целом, системному аналитику могут поручать самые разные задания. К примеру, проанализировать продукты конкурентов, сравнить функции, указать на сильные-слабые стороны. То есть ему могут ставить любые аналитические задачи, связанные с ПО или иными системами. Это еще от опыта и развитости самого аналитика зависит.

А можете сказать, из каких сфер, специальностей, областей чаще всего приходят в область системного анализа?

Насколько я знаю, в некоторых технических вузах есть направления по системному анализу. В гуманитарных я никогда не слышал, чтобы такое было. Так что один вариант — это из вуза. Другой вариант такой, к примеру. Если заниматься программированием или тестированием, тогда понимание «системы» приходит естественным образом: программист не сможет работать с проектом, не зная, из чего он состоит. Другой вопрос, что не все программисты могут это знание оформить в удобочитаемый документ. Вот если может — вполне способен стать аналитиком.

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

Действительно, какими качествами должен обладать хороший системный аналитик?

Аналитический стиль мышления. Это обязательно. Вообще существует два типа людей: одни мыслят аналитически, другие — синтетически, еще говорят левополушарное и правополушарное мышление, рациональные и иррациональные. Думаю, выбрать из этих дихотомий несложно. Это человек, который мыслит левым полушарием, рационально, детально. Это в первую очередь. Но еще нужно иметь желание этими самыми деталями заниматься, нужна усидчивость, умение сосредоточиться на рутине. У аналитика есть динамичная часть работы: общение с заказчиком, разработчиками другими участниками процесса, а есть именно рутина — сидеть и вдумчиво писать спецификации.

Архиважны навыки эффективной коммуникации. Если вы не сможете сформулировать вопрос, то как потом сможете что-то узнать и донести до разработчиков? Нужно уметь слушать ответы, слышать, какой информации в них не хватает. Значит, и умение дозадавать вопросы, доуточнять тоже очень важно. А это уже следствия аналитического мышления. Так что аналитическое мышление вместе с умением общаться, коммуницировать потенциально дает сильного аналитика.

Скажите, а в чем особенность системного мышления?

Это способность осознать, понять, увидеть саму систему, из чего она состоит и как взаимодействуют между собой ее части. Каким образом получается итоговая функция, которую эта система выполняет, или если их много, то функции, все вместе и по отдельности. Способность видеть эти части, видеть взаимосвязи, видеть разные типы связей, разные типы объектов. Умение анализировать сами объекты: какими атрибутами они описываются, какими свойствами обладают. Здесь надо разводить умение обрабатывать большой объем информации и умение разобрать его на структурированное четкое описание этого потока. С другой стороны, нужно уметь видеть причинно-следственные связи: какие причины к каким последствиям могут привести, какие цепочки и циклы (например, явление «замкнутого круга») при этом образуются. Нужно уметь видеть такие конструкции и то, что нужно в них поменять.

Кстати сказать, если вы хорошо играете в шахматы, это признак того, что у вас все хорошо с системным мышлением.

В Академии Сухорукова вы читаете курс по системному анализу. Расскажите о нем подробнее: темы, особенности, какие знания и навыки получат слушатели?

На курсе я даю самые основы системного анализа, так что прийти на него можно, вообще ничего не зная в этой области. Единственное, что неплохо было бы иметь в багаже, — это системное мышление, с ним будет гораздо проще. В целом же моя цель — дать студентам уверенность, что они могут работать системными аналитиками. Для этого я предлагаю слушателям учебный проект, в рамках которого они последовательно выполняют все функции системного аналитика: сбор требований и их анализ, оформление, оформление спецификаций, моделирование. Все задачи, которые выполняет системный аналитик, они проделывают в рамках учебного проекта. Тем самым у них должно появиться внутреннее ощущение, видение модели того, что такое «системный аналитик». Они смогут проходить собеседования, делать рабочие тестовые задания. Это для тех, кто приходит «с нуля».

Если же у человека уже есть опыт работы, то курс поможет структурировать имеющиеся знания, сорвать устоявшиеся шаблоны, особенно если они неверные. Часто в результате именно от этой группы слушателей можно услышать, что они наконец-то поняли, как выполнять ту или иную работу.

На что может рассчитывать при трудоустройстве выпускник курса? Будет ли он готов начать работу немедля?

Это сильно зависит от изначальных качеств самого студента. На курсы приходили слушатели, у которых было изначально слабо развито системное мышление. Да, им было интересно, они выполняли задания, но им будет много сложнее начать работать, так как придется дополнительно научиться мыслить подобным образом. Но нет ничего невозможного.

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

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

От себя же нам только остается добавить, что курс системных аналитиков под руководством Сергея Одновала в октябре стартует в IT-Академии Сухоруковаа также на курсе системных аналитиков возможно онлайн обучение. У вас еще есть время, чтобы решиться войти в мир системного анализа и попробовать свои силы в этой непростой, но крайне интересной, а главное, востребованной специальности. Если у вас возникли вопросы, присылайте их на нашу почту academ@suhorukov.com или звоните на бесплатный номер +7 (800) 500 15 56.

До встречи в стенах Академии!