С чего начать карьеру системного аналитика?
Сегодня хочу поделиться своим пониманием того, какими навыками должен обладать начинающий системный аналитик. Про них же чаще всего спрашивают на собеседованиях.
Начну с того, что системному аналитику (СА) важно обладать развитыми софт-скиллами. При собеседовании на позицию уровня junior от вас не ждут обширных теоретических знаний или большого опыта в решении практических задач. Однако, в первую очередь обращают внимание на несколько вещей:
— Как человек себя ведёт на собеседовании;
— Насколько хорошо он может рассказать о себе и своём опыте (или его отсутствии, но в любом случае о своей мотивации и заинтересованности);
— Как человек рассуждает логически и пытается "придумать" ответ на вопрос, даже если его не знает;
— Какие вопросы задает кандидат и как их формулирует.
Эти навыки можно отработать в процессе подготовки к собеседованию, и они могут принести решающие "баллы" в пользу вашей кандидатуры.
Какие теоретические и технические навыки нужны человеку, чтобы претендовать на эту позицию?
- Виды требований — азбука для СА;
- Представление о том, как собирать требования. Знание и понимание методов сбора требований также является базовым навыком, необходимым каждому;
- Умение читать и рисовать UML/BPMN-диаграммы;
- Знание нотаций моделирования бизнес-процессов (IDEF0, BPMN, EPC и пр.);
- Use cases, user stories — отличать одно от другого и уметь пользоваться хотя бы базовыми формулами;
- Хотя бы базовое знание SQL на уровне "select * from". Желательно понимать, как устроены БД, какие запросы к ним существуют и как их писать;
- (*) Совсем идеально будет понимание того, как системы могут интегрироваться друг с другом. Это задание со звёздочкой, чтобы точно удивить интервьюера. Сюда входит:
- Понимание клиент-серверного взаимодействия;
- Хотя бы что-то знать о микросервисной архитектуре, отличие её от монолита. Преимущества и недостатки. Понимание REST + JSON/XML;
- SOAP, XSD/WSDL.
Чтобы начать изучение любого из этих пунктов, достаточно загуглить (кстати, это тоже полезный навыки для аналитика) и изучить первые несколько статей. Этим темам посвящено достаточное количество теоретического материала.
В дополнение хочу порекомендовать несколько книг, которые точно помогут в понимании роли системного аналитика в команде, поделятся необходимыми знаниями и введут в профессию:
— Карл Вигерс, "Разработка требований к программному обеспечению". Эту книгу рекомендуют все кому не лень (и я не поленюсь) и считают её настольной книгой для аналитика;
— Иванова В., Перерва А., "Путь аналитика. Практическое руководство IT-специалиста. 2-е издание". Тоже очень хорошая книга, с большим количеством практических кейсов, примеров документов и шаблонов;
— (*) Сэм Ньюмен, "Создание микросервисов". Это совсем не легкое "чтиво", и, скорее всего, для начинающего специалиста избыточно. Однако для тех, кто хочет более подробно разобраться в популярном нынче архитектурном подходе, и не боится трудностей - рекомендую.
Список технических навыков, которыми должен обладать джуниор аналитик, достаточно обширен. Но в разных компаниях и даже на разных проектах перечень необходимых знаний может отличаться. Где-то необходимо знание МКС (Микросервисной архитектуры), а где-то уклон на работу с базами данных. Поэтому моё мнение, что базовые знания должны быть, а далее можно углубляться, исходя из интересов. А при подготовке к конкретному собеседованию опираться на требования, указанные в тексте вакансии.
Как вы считаете, чем можно дополнить этот список или что из него стоит убрать?
P.S. Кому будет интересно - приходите ко мне в инстаграм. Рассказываю про карьеру системного аналитика в @analytics_career.