Перед вами практическое руководство, как стать системным аналитиком. Эта книга полезна как для тех, кто собирается сменить направление деятельности и войти в область информационных технологий, так и для тех, кто уже разрабатывает требования для ПО. Она поможет вам развить соответствующие навыки, отточить свой стиль и понять, как применять теоретические знания на практике. В процессе чтения этой книги вы освоите ключевое умение аналитика – написание технического задания (ТЗ).
Я обучаю системному анализу через наставничество на работе и менторство. Сейчас я решила поделиться знаниями в книжном формате, чтобы помочь бóльшему количеству людей. Соответствующее обучение у меня прошли уже трое человек без специализированного образования и опыта в области ИТ. Я заметила, что многие недооценивают свои способности и страдают от синдрома самозванца (мне это знакомо не понаслышке). И у меня есть решение. Во-первых, важно признать свое несовершенство. Во-вторых, следует активно учиться, задавать вопросы и искать на них ответы – так можно приобрести уверенность в своих знаниях. Перестаньте перегружать свой мозг информацией из Интернета, лучше сконцентрируйтесь на основных принципах. Поэтому для меня ключевым навыком системного аналитика является способность к обучению, а опыт приходит с практикой.
Мы начнем обсуждать требования к системе сверху вниз, начиная с бизнес-целей и заканчивая задачами для разработчиков. Каждая глава книги будет соответствовать одному разделу технического задания, включающего теорию, примеры (будут выделены курсивом), а также выводы, сделанные на основе моего опыта. Рекомендую начать чтение с первой главы и идти по порядку, возвращаясь к нужным разделам по мере необходимости. Моя книга будет полезным ресурсом для освоения системного анализа и повышения вашего уровня экспертизы. Для начинающих аналитиков полезны все разделы, а для специалистов среднего и старшего уровней важна логика при проектировании системы и уроки, извлеченные из моего опыта.
Уровни экспертизы
Если вы не уверены в своих знаниях в системном анализе, давайте определим ваш уровень вместе, чтобы понять, какие части книги будут для вас наиболее интересны и полезны:
• Если вы недавно закончили учебу, работаете в ИТ менее года или в другой отрасли, то, скорее всего, ваш уровень – начинающий (junior).
• Если вы работаете в ИТ от 1 до 5 лет без опыта управления, то вы – средний (middle).
• Если вы в ИТ более 5 лет и имеете опыт управления, то ваш уровень – опытный (senior).
Давайте рассмотрим каждый уровень экспертизы системного аналитика подробнее.
Junior системный аналитик
Junior работает под руководством опытных коллег. Обычно такой аналитик окончил университет или может прийти из другой сферы. От начинающего системного аналитика требуются умения работать в команде, эффективно общаться с коллегами и клиентами, а также аналитический склад ума и способность к критическому мышлению для выявления проблем и предложения решений. Дополнительным плюсом является знание основных инструментов системного анализа, таких как моделирование процессов, создание диаграмм, а также сбор и анализ требований.
Когда я была на последнем курсе университета, устроилась стажером в ИТ-компанию, которая занималась разработкой интернет-магазинов. Мои обязанности включали в себя помощь в составлении актов и счетов на оплату, написание руководств для пользователей, а иногда даже курьерские задачи по доставке документов. Мы применяли бумажный документооборот, и, чтобы упорядочить все процессы, я порекомендовала использовать облачное приложение для более удобного обмена файлами вместо электронной почты. У меня вызывало радость создание порядка в работе, поэтому я действовала проактивно.
Middle системный аналитик
Middle более самостоятельный и обладает опытом в ИТ-сфере. Ему требуется следующее: опыт работы с ИТ-системами, способность выявлять и формализовывать требования, коммуникативные навыки, опыт моделирования бизнес-процессов с использованием диаграмм, умение принимать самостоятельные решения, понимание клиент-серверной архитектуры, работа с REST API, инструментами Swagger и Postman, знание форматов xml / xsd и json / json-schema, опыт проектирования межсистемных интеграций, создание баз данных, формулирование задач для разработчиков и обновление документации проекта.
С должности бизнес-аналитиком я перешла на позицию системного аналитика, где с нуля разработала архитектуру и функциональность системы, сформировала команду и руководила процессом. Кроме того, занималась проектированием микросервисов, что дало мне практические навыки в этой области. Также участвовала в создании базы данных для системы в стартапе. Благодаря этому я стала более опытным системным аналитиком уровня middle.
Senior системный аналитик
Senior должен иметь глубокий опыт системного анализа и реализации проектов различной сложности, умение принимать стратегические решения в области архитектуры ПО, опыт руководства группой аналитиков и менторства, а также высокий уровень управленческих и коммуникативных навыков, включая проведение совещаний и презентаций концепций и решений. Они способны анализировать бизнес-процессы и предлагать оптимальные варианты в соответствии с целями компании. Многим аналитикам этого уровня интересно развиваться в архитектора, руководителя группы или менеджера.
В течение двух лет я занимала должность владельца продукта. Вдобавок к основной деятельности, я начала проводить консультации и писать эту книгу.
В общем, чтобы стать хорошим системным аналитиком на любом уровне, нужно обладать техническими знаниями, способностью анализировать информацию и умением находить общий язык с разработчиками и другими участниками команды. Каждый уровень экспертизы требует разной степени самостоятельности, опыта и ответственности, и, разумеется, заработная плата зависит от всех этих факторов. И хотя каждый уровень имеет свои особенности, их объединяет общая цель, о которой будет сказано далее.
Помните барахолки девяностых? В те годы мой папа мотался в Китай за одеждой, которую потом продавал на рынке. Однажды он привез мне модный синий спортивный костюм Adidas, который я до сих пор помню. А потом готовились к зиме: мерили обувь, стоя на картонке в лютые морозы.
В 1996 году в России появился первый успешный книжный интернет-магазин. Со временем Сеть превратилась в платформу для дистанционного шопинга, бронирования билетов и отелей, а также использования банковских сервисов. Модные торговые онлайн-площадки стали новым трендом, заменяя старые добрые рынки. Теперь купить обувь гораздо проще – достаточно зайти на сайт интернет-магазина, выбрать нужную модель, сделать заказ и дождаться доставки. Все это можно сделать, не выходя из дома, что существенно упрощает жизнь и делает покупки более удобными.
Определенные сферы реального мира постепенно переместились в виртуальную среду, и онлайн-сервисы стали неотъемлемой частью нашей повседневной жизни. Как это происходит? Аналогию можно найти в нашем обучении. Мы знакомимся с новыми понятия, узнаем о том, что, например, ложка – это предмет, с помощью которого мы едим суп, учимся произносить и правильно использовать это слово. Сегодня мы живем в мире, где мы учим системы понимать и становиться полезными для нас. Решение наших повседневных проблем заключается в переносе частей офлайн-мира в онлайн, моделировании процессов, чтобы системы могли нас понимать, – это задача бизнес- и системных аналитиков.
Моделирование – это создание упрощенной копии системы или процесса для того, чтобы понять, как она работает и какие у нее есть свойства.
Бизнес-аналитик анализирует процессы, чтобы деятельность компании стала более успешной и удобной для клиентов. Он изучает действия сотрудников, выявляет проблемы и разрабатывает схемы для общего понимания ситуации. Системный аналитик проектирует и определяет функции системы, решая задачи анализа и разработки.
Задачи аналитика
Аналитик, двигаясь сверху вниз, из бизнес-цели формирует конкретные задачи на разработку системы:
• Получая задачу на анализ, составляет бизнес-требования.
• На основе бизнес-требований описывает пользовательский интерфейс.
• Затем формулирует системные требования, учитывая бизнес-требования и пользовательский интерфейс.
• На основе всего вышеописанного описывает API-системы.
• Помня про бизнес-требования и исходя из API, описывает базу данных (БД).
• В конечном итоге назначает задачи:
• backend-разработчику – для реализации API и работы с БД;
• frontend-разработчику – для реализации дизайна пользовательского интерфейса и взаимодействия с API.
Давайте пройдем этот путь вместе: создадим и опишем техническое задание для интернет-магазина.