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