Чешский писатель и журналист Лауб Габриэль, известный своими меткими афоризмами, про кого-то сказал: «В системе его мышления система явно преобладала над мышлением». Несмотря на явную тавтологию, именно эта фраза наиболее точно описывает то, что происходит в голове у человека-аналитика. Он всё раскладывает по полочкам, улавливает мельчайшие детали, докапывается до сути всех явлений, ищет причинно-следственные связи. Он никогда не купится на кажущуюся простоту сложившейся ситуации — даже в ней будет искать подвох.
Такие люди всегда отвечают на вопрос — десятью встречными вопросами. Щёлкают логические задачки на раз-два. Решают проблемные ситуации нестандартными методами. Становятся адвокатами, детективами, учёными, журналистами, IT-специалистами. Слывут хоть и странными, но профессионалами своего дела. И всё это — благодаря тому, что у них аналитическое мышление, позволяющее оригинально смотреть на окружающий мир — не как все.
Что такое аналитическое мышление
Это целый ряд определённых способностей:
- выделять в объекте существенные детали, незаметные с первого взгляда;
- логически рассуждать;
- находить скрытые причинно-следственные связи;
- проявлять практический интеллект;
- подвергать объект, ситуацию всестороннему исследованию;
- взвешивать все за и против.
В его основе — 2 базовых процесса:
- творческий (нередко основан на интуиции) — поиск информации (тех самых деталей) необычным путём;
- формальный (основан на законах математики и физики) — анализ и синтез найденных данных, выводы.
В психологии это один из типов мышления наряду с прагматическим, синтетическим, реалистическим и идеалистическим. Не стоит путать его с логическим, который делает выводы на основе сравнения, а не причинно-следственных связей.
Самые яркие примеры проявления или непроявления аналитического мышления — реакция на задачку про людей в дымоходе и углы стола.
Пример 1
Задачка: два человека вылезли из дымохода. Один испачкался, второй — нет. Кто пойдёт умываться?
Ответ человека, не обладающего аналитическим мышлением: тот, который испачкался.
Варианты ответов человека с аналитическим складом ума:
- Чистый посмотрит на того, кто испачкался, подумает, что он тоже грязный, и пойдёт умываться.
- Грязный после того, как чистый пойдёт умываться, тоже отправится вслед за ним.
- И вообще, как два человека оказались вместе в дымоходе и почему один из них испачкался, а второй нет?
Пример 2
Вопрос: сколько углов получится у стола, если один из них отпилить?
Ответ человека, не обладающего аналитическим мышлением: 3 (неправильно) или 5 (правильно).
Человек, обладающий аналитическим складом ума, начнёт задавать встречные вопросы для того, чтобы ответить максимально точно:
- Стол традиционно прямоугольный, или круглый, или треугольный?
- Как именно распилили стол: если недалеко от края, то в итоге получится 5 углов; а если по диагонали — 3.
- А кто и зачем отпиливает угол у стола?
Если брать примеры из художественной литературы и фильмов, то наиболее яркие герои-аналитики — это всемирно известный сыщик Шерлок Холмс из цикла рассказов Артура Конана Дойла и оперативница с Петровки Настя Каменская из детективов Александры Марининой и сериала «Каменская».
Кто такой системный аналитик
Для начала, давайте обозначим границы, чтобы понимать для кого эти темы и вопросы актуальны. Границы роли системного аналитика далеко не всегда четко обозначены. От компании к компании я встречаю совершенно разные интерпретации должностных обязанностей таких специалистов. Однако, большинство компаний, занимающихся веб- и мобильной разработкой близки в своем понимании роли СА и требованиях к кандидатам.
Чаще всего требования к кандидатам следующие (помимо опыта работы в определенном домене):
- Основная деятельность: сбор, анализ и документирование требований к ПО на техническом языке. Сопутствующее общение с заказчиками и проектной командой, изучение предметной области, участие в проектировании решений, проверка реализованного функционала на соответствие требованиям, участие в показах.
- Требуемые hard skills: навыки разработки технической документации (BRD, SRS), опыт работы с различными СУБД, уверенные знания SQL, проектирование модели данных, знание нотаций UML, BPMN, знание различных методов интеграции систем, понимание принципов проектирования REST API, опыт работы с SOAP, понимание особенностей форматов обмена данными JSON/XML.
- Требуемые soft skills: коммуникабельность, способность находить общий язык и с разработкой, и с бизнесом, аналитическое мышление, умение работать в условиях недостатка информации, адаптивность к изменениям, проактивность и ответственность за конечный результат.
Польза
Психологи и учителя рекомендуют развивать аналитический склад мышления с детства, так как он облегчает жизнь, позволяет решать сложные не только математические, но и насущные злободневные задачи:
- видеть главное и второстепенное, акцентируя внимание на первом;
- по достоинству оценивать преимущества и не упускать из виду недостатки;
- выявлять все имеющиеся возможности и понимать, где начинаются их ограничения;
- анализировать на основе опыта и новой информации;
- делать собственные выводы и умозаключения;
- не соглашаться с мнением большинства;
- самостоятельно принимать решения;
- умело пользоваться поисковыми системами для выявления нужной информации;
- детализировать планирование своей деятельности;
- ставить реальные цели.
В детстве склонность к аналитическому мышлению помогает ребёнку выгодно выделяться на фоне остальных детей своим нестандартным подходом к решению любых задач. Ему обычно легко даются математика, физика, химия, история. Он хорошо учится, обладает высоким IQ. С точки зрения психологии, абсолютно неконфликтен, потому что видит все минусы ссор и старается разрешить их дипломатически.
С возрастом такие люди из тысячи профессий выбирают ту единственную, которая поможет им раскрыть свой потенциал по максимуму. У них не бывает проблем с поступлением, потому что они сначала изучают статистику по разным учебным заведениям и дотошно просчитывают, в какие из них есть шанс попасть.
Соответственно, они успешны в профессиональной деятельности и продвигаются только вверх по карьерной лестнице, ведь умеют ставить реальные цели и последовательно добиваться их.
Тест
Есть психологический тест на аналитическое мышление, позволяющий определить его отсутствие или наличие и степень выраженности.
Возраст: старше 15 лет.
Время: 7 минут.
Инструментарий:
- бланк с цифровыми рядами;
- бланк с ответами;
- интерпретация;
- секундомер;
- ручка;
- бланк-черновик.
Задание:
- Определить закономерность составления каждого из 15 рядов чисел.
- На основе этой закономерности продолжить ряды, вписав в каждый ещё 2 числа.
Тестовый бланк с заданием, в который следует вписывать недостающие числа:
Строго через 7 минут даётся команда «стоп».
Бланк с ответами, на основе которого анализируются результаты:
Интерпретация:
- 0 правильных ответов — отсутствие аналитического мышления;
- 1-5 — низкий уровень;
- 6-7 — неудовлетворительный;
- 8-10 — удовлетворительный;
- 11-13 — хороший;
- 14-15 — отличный.
Если тест показал отсутствие аналитического склада ума или низкий уровень, значит, нужно постараться его развить.
Как развить
Психологи не могут точно ответить на вопрос, передаётся ли аналитическое мышление по наследству. Данных исследований нет, поэтому делаются только предположения. Вне всякого сомнения, родители, обладающие таким складом ума, передадут свои способности ребёнку. Но у него будет лишь склонность, над которой с детства придётся работать.
Однозначно известно лишь то, что развитие аналитического мышления позволяет усилить врождённые способности, сделать их ярче, направить в нужное (практическое) русло.
В детском возрасте
Для успешного формирования аналитического мышления у ребёнка следует знать основные этапы детского психофизического развития.
- 1,5 года
Формируется наглядно-действенное мышление. Ребёнок учится такой важной мыслительной операции, как обобщение. Увидел бутылочку с молоком — сейчас его покормят. Мама сказала слово «гулять» — надо одеваться. Родителям важно не упустить этот момент и помогать малышу, расширяя его представления об окружающем мире. На данном этапе нужно прививать как можно больше традиций, вырабатывать режим дня. Если сегодня перед сном читают сказку, завтра моют в ванне, послезавтра включают мультики, начнутся проблемы с засыпанием, потому что не будет единого алгоритма действия — обобщать будет нечего.
- 4 года
Начинает формироваться наглядно-образное мышление. Большую часть информации ребёнок поглощает визуально. На данном этапе ему так легче. Спросите у него, что такое облако. Он ткнёт пальчиком в небо или просто нарисует, но объяснять словами не будет. Родителям важно не упустить этот момент и начать тренировать воображение и зрительную память малыша. Впоследствии они станут хорошей базой для развития аналитического мышления. Что надо делать? Заниматься изотерапией, читать книжки с иллюстрациями, сочинять сказки по картинкам, наблюдать окружающую природу, замечать детали.
- 7 лет
Формируется словесно-логическое мышление. Существенный скачок в психофизическом развитии ребёнка. Во-первых, он учится здраво, логически мыслить, рассуждать, сравнивать. Совершает простейшие операции анализа и синтеза. Делает выводы. Во-вторых, ему необходимо оформлять свою мыслительную деятельность словесно. Он расширяет лексический запас, подбирает слова, строит предложения, создаёт связные тексты. Всё это отрабатывается в школе. Родителям нужно лишь проследить, чтобы маленький ученик добросовестно выполнял домашние задания. Также на данном этапе полезно вместе с ребёнком решать задачки на логику, играть в стратегии, проходить квесты. И главное — активно обсуждать происходящее и результаты.
С возрастом у человека формируется вербально-аналитический стиль мышления — это то же, что и словесно-логическое, но уже более усовершенствованное.
Как развить взрослому
Аналитическое мышление можно развить в любом возрасте, используя следующие универсальные способы:
- Решать задачи: математические, физические, логические.
- Разгадывать кроссворды, решать шарады и ребусы, отгадывать загадки и головоломки, собирать пазлы.
- Играть в логические и развивающие игры, стратегии (настольные: Миллионер, Монополия; онлайн-игры: Эрудит, Маджонг).
- Проходить квесты.
- Смотреть новости для того, чтобы их всестороннее анализировать, находить свои пути решения проблем, актуальных для общества.
- Читать фантастику и детективы: Агату Кристи, Эрла Гарднера, Роберта Хайнлайна.
- Изучать системы кодов и шифров.
Обратите также внимание на нейролингвистическое программирование и нейробику. Для развития аналитического склада ума взрослым полезно ежедневно выполнять специальные упражнения.
Моделирование 1
Ежедневно сами для себя создавайте необычные ситуации, требующие постановки конкретной цели и разработки подробного плана по её достижению. Например, представьте, что вам надо добраться до Луны или организовать поселение на Марсе. Если настолько фантастические перспективы не прельщают, можно задуматься над более реальными задачами: как стать владельцем автосалона, как урегулировать конфликт на Ближнем Востоке, как воспитать ребёнка-вундеркинда.
После того, как тема моделирования выбрана, сформулируйте конкретную цель в соответствии с ней и представьте, как вы пошагово будете её достигать. Главное — не упустить ни одной детали. Надо полететь на другую планету? Продумайте, какой транспорт вы выберите, где его достанете, у кого купите билет, что вас ожидает в путешествии и т. д.
Выполняя данное упражнение, важно вовремя остановиться. Отводите на него не более 15 минут в день. Одна из отличительных особенностей аналитического ума — чётко отделять зёрна от плевел. Т. е. вот — моё воображение, с его помощью я тренирую своё мышление. А это — реальная жизнь, в которой каждая задача — на выживаемость. И нужно уметь не смешивать их.
Моделирование 2
Упражнение, похожее на предыдущее, но у него более практическое значение. Оно учит применять аналитическое мышление в реальности. Проблемную ситуацию придумывать не нужно. Возможно, она уже присутствует в вашей жизни. Например, неблагосклонное отношение начальника. Или ипотека на 15 лет, съедающая значительную часть доходов. Разрешается заимствовать жизненную трудность кого-то из знакомых (что делать: отдать больную престарелую бабушку в пансион или уйти с работы и самому за ней ухаживать?). Главное — чтобы обстоятельства были реальные.
Поставьте проблемный вопрос, который нужно решить. Соберите максимум информации по данной ситуации. Рассмотрите её со всех сторон. Найдите плохое и хорошее. Начните разрабатывать стратегический план по устранению трудности. Причём в нескольких вариантах. Люди с аналитическим мышлением всегда имеют запасные идеи на случай, если одна из версий окажется несостоятельной.
ТОП тем
Требования к ПО
Тема очень важная, я бы даже сказала основополагающая, но при этом достаточно холиварная. Потому что обилие информации провоцирует ее разночтения. Чаще всего интервьюеры ожидают услышать ответы на основании модели, представленной в книге К. Вигерса и Д. Битти «Разработка требований к ПО». Поэтому не лишним будет заранее подготовить примеры по уровням требований (бизнес-требования, пользовательские и функциональные).
Возможные вопросы:
- Что такое требование к ПО?
- Какие виды требований вы знаете?
- Чем отличаются бизнес-требования от функциональных?
- Чем отличаются функциональные требования от нефункциональных?
- Чем отличаются пользовательские требования от функциональных?
- Привести примеры каждого из требований или классифицировать предложенные требования.
- Какие критерии качества требований вы знаете?
Для компаний, где роль СА объединена с БА (бизнес-аналитиком). Сюда же могут попасть вопросы про выявление требований: основные техники сбора требований, управление стейкхолдерами (заинтересованными сторонами), выбор стратегии работы со стейкхолдерами и тп.
Ресурсы для изучения:
Ответы на все вопросы есть в замечательной книге К. Вигерса и Д. Битти «Разработка требований к ПО». Книга, на мой взгляд, обязательна к прочтению каждому СА. Но если вам все-таки лень читать 716 страниц достаточно сложного к восприятию текста, то вот список ресурсов, где хорошо описаны ответы на вопросы выше:
- Полезные выдержки вышеобозначенной книги вы можете найти тут и тут
- Про критерии качества требований
- Интересная презентация про разные подходы к классификации требований (по Вигерсу, ГОСТ34, SWEBOK, IEEE 830 и RUP)
Процесс разработки ПО
В основном тут достаточно рассказывать про свой опыт и про то, как организован процесс разработки на текущем месте работы. Но будет плюсом, если вы покажете эрудицию, рассказав про разные методологии и их использование.
Возможные вопросы:
- Какие методологии вы знаете? Работали ли вы по Agile/Waterfall или любой другой методологии.
- Расскажите про жизненный цикл разработки проекта: этапы, роли, артефакты.
- Какую роль выполняет системный аналитик в проектах разработки ПО?
- Какие обязанности закреплены за вами на вашем текущем месте работы?
Ресурсы для изучения:
- Про процесс, роли и артефакты
- Модели жизненного цикла, принципы и методологии разработки программного обеспечения (ПО), а можно и покороче
- Про БА vs СА
Документация к системе и другие артефакты деятельности аналитика
Опять же, как и в предыдущем блоке в основном вопросы про ваш опыт, чтобы оценить насколько он релевантен тому, что вам предстоит делать.
Возможные вопросы:
- Какую документацию вы пишете на текущем месте работы?
- Что вы описываете в ТЗ на разработку?
- Насколько детально вы описываете то, что требуется реализовать? Бизнесовым или техническим языком?
- Какие артефакты остаются в итоге вашей работы и для чего они используются в дальнейшем?
- Был ли опыт работы с ГОСТом 34/19?
- Кто ставит задачи на разработку? В описании постановок на разработку придерживаетесь ли вы какого-то определенного формата? Какой уровень детализации ваших постановок?
Ресурсы для изучения:
- Про разные стандарты ТЗ на разработку ПО
- Шаблон спецификации требований к ПО
Проектирование решения
Как показывает практика, далеко не каждый СА участвует в проектировании решения. Это связано с различиями в понимании роли СА в разных компаниях, а также с уровнем компетенции СА (достаточно ли у аналитика знаний и опыта, для влияния на выбор реализации решения или нет). Но, как минимум, аналитик всегда может облегчить задачу тем, кто занимается проектированием решения, предоставив им исчерпывающее, грамотно оформленное и понятное всем описание бизнес-задачи и ожидаемых функциональных возможностей системы.
Возможные вопросы:
- Участвуете ли вы в проектировании решения? Если да, то каким образом?
- Вопросы про работу с базами данных:
Что такое БД? Какие бывают БД (речь про классификацию по модели данных)? С какими БД работали?
- Что такое СУБД? Основные функции СУБД? С какими СУБД работали? Какие клиенты для работы с СУБД использовали?
- Чем отличаются SQL и NoSQL БД?
- Что лежит в основе реляционных БД?
- С какими нереляционными БД работали?
- Какие типы ограничений в реляционных БД знаете (constraints)?
- Что такое нормализация? Зачем она нужна?
- Какие нормальные формы (НФ) вы знаете? Решить кейс с нормализацией данных.
- Что такое ER-модель?
- Умеете ли вы строить ER-диаграмму? Какие нотации знаете?
- Есть ли у вас опыт проектирования БД?
- Могут попросить спроектировать концептуальную/логическую модель данных для некоторой предметной области.
- Какие подмножества SQL вы знаете? (речь идет про DDL, DQL, DML и DCL). Расшифровать аббревиатуры и привести примеры операторов для каждого подмножества.
JOIN
- Какие диаграммы вы использовали в своей работе?
Ресурсы для изучения:
- Основы проектирования БД (теория)
- Основы проектирования БД (практика)
- SQL и NoSQL
- Про ER-модель
- ER в нотации Чена
- ER в нотации Баркера и Мартина
- Основные команды SQL
- Про DDL, DML, DCL и TCL
- Про BPMN 2.0
- Про UML
Интеграции
С этой темой надо быть аккуратнее. Есть ситуации, когда лучше сказать хоть что-то чем не сказать ничего, но здесь работает ровно противоположное. Если вы не уверены в том, что достаточно разбираетесь в теме, лучше не утверждать ничего, что вызовет дополнительные вопросы на понимание.
Возможные вопросы:
- Какие способы интеграции систем вы знаете?
- Чем отличаются синхронное и асинхронное взаимодействия?
- Что знаете про очереди сообщений? Для чего их используют?
- Проектировали ли вы API? Каким образом описывали спецификации?
- Тестировали ли вы сами API? Какое ПО использовали?
- HTTP:
Какие основные HTTP методы знаете?
- Расскажите про HTTP сообщения. Какую структуру имеет запрос? Какую структуру имеет ответ? Какие коды состояния (status code) знаете и что они означают?
- Чем отличается POST от PUT от PATCH?
- Что знаете про концепцию CRUD?
- Что такое JSON? Для чего используется?
- Что такое REST?
- Что такое SOAP? В каком формате передаются сообщения?
Ресурсы для изучения:
- Методы и подходы к интеграции систем и подробнее
- Синхронное, асинхронное и реактивное взаимодействие
- Про очереди сообщений
- Поверхностно про REST API, а заодно и HTTP, SOAP и JSON — это все есть в статье
- Про сообщения HTTP
- Подробнее про REST, HTTP и SOAP и все связанное с этими темами можно почитать как минимум в википедии и этого на мой взгляд уже будет достаточно для большинства интервьюеров (при условии, что вы понимаете о чем говорите, конечно)