Вера Коновалова | Системный аналитик в IT
2.19K subscribers
205 photos
6 videos
127 links
Системный аналитик 8+ лет
Жиза и наблюдения про работу в IT
Мой курс по СА на Stepik 👉 https://stepik.org/a/247866
Практика 👉 https://stepik.org/a/253170
Связаться 👉 @verakonovalova
Download Telegram
Шаблон описания элементов пользовательского интерфейса 📄

Привет! 👋
Недавно я делилась примером, как не стоит описывать элементы UI.
Сегодня — обещанный шаблон, который поможет описывать экраны ясно и понятно для команды.

Сохраняйте, пригодится 👆

Смотрите в картинках пример описания страницы Профиля в соцсети: какие поля, форматы, ограничения, примеры ошибок и что происходит по клику.

#requirements
👍167🔥6
Системный аналитик, конечно, не дизайнер, но с макетами пользовательского интерфейса мы работаем постоянно

Как минимум мы ревьюим макеты от дизайнера. Проверяем, учтены ли все кейсы, нет ли противоречий с требованиями, учтены ли технические ограничения.
А ещё нередко бывает, что на проекте просто нет выделенного дизайнера — и тогда макетами занимается именно системный аналитик. В основном собирает экран из компонентов дизайн-системы.

Недавно наша подписчица София поделилась своей историей — как она работает с макетами, и почему это делает именно она 😉

Публикуем 👇

Привет, подписчики AnalystCore!
Я уже почти 2 года работаю системным аналитиком в заказной разработке на крупном госпроекте. В первый месяц работы мой наставник спросил меня: «А ты хорошо рисуешь? Как у тебя с фигмой?» 😉. Я ответила, что в принципе нормально, научусь, готова попробовать. У нас в команде нет закрепленного дизайнера, но есть подобие дизайн-системы, которой все пользуются.

Вначале он давал мне конкретные указания, что нужно добавить на макет «Добавь это поле на вторую строку, назови примерно так-то». Позже вводных становилось меньше, и моя работа изменилась:
Собираю у наставника требования, далее сама определяю, какие поля нужны, с каким типом они будут, ищу и потом согласовываю сколько символов можно вводить, какие и прочее. Если поле с выпадающим списком, прорабатываю справочники. После создания макета согласовываю его и описываю все элементы по шаблону в конфлюенсе. Вношу доработку в описания сервисов (так у нас называются методы апи), ставлю задачу, отдаю на ревью наставнику.

Практически через 3 месяца мне начали поручать все задачи, связанные с пользовательским интерфейсом) У наставника не очень с фигмой, а другой аналитик всегда описывал только сервисы. Так что я заняла свое место и получила ответственность за свой кусочек в системе)
На самом деле, мне очень нравится работать с UI. Мне изначально это было проще. Через продумывание макетов, мне проще понять, как должна работать система. И именно после макетов проще понять, как нужно доработать сервис.


А вы сталкивались с подобными задачами? Делитесь в комментариях, интересно узнать ваш опыт 😊

#requirements #mockups
👍125🔥5
🛠 Сделайте чек-лист по своему проекту, чтобы не забыть все точки входа

Немного про организацию своей работы. Часто при проработке задачи мы забываем про какую-то часть системы. Решение — составить чек-лист по вашему проекту: «что не забыть учесть?»

Пример такого чек-листа:
Если добавляется новое поле, то нужно убедиться, что покрыты все места, и описать это в задачах для команды:

добавить поле в UI
добавить поле в БД
передавать параметр в контракте между фронтом и бэком
учесть в контракте с внешней системой_А
учесть в контракте с внешней системой_Б
передаётся ли поле в отчёты?
передаётся ли в письма?
влияет ли поле на функциональность_А?
влияет ли на функциональность_Б?
если поле обязательное — чем заполнять для существующих записей?
...и так далее.

Такие чек-листы не только упрощают жизнь, но и делают ваши задачи намного качественнее.

💬 А у вас есть свои приёмы? Поделитесь, какие лайфхаки помогают вам не забыть ничего важного при проработке задачи?

#requirements #лайфхаки
9👍5🔥4
🧠 Тема, которая часто вызывает вопросы: чем отличается бизнес-аналитик от системного и почему в вакансиях под "бизнес-аналитиком" часто на самом деле имеют в виду системного?

Я как-то писала короткую статью с моим мнением на этот счёт.

📌 Почитайте, если вы сейчас на распутье или хотите лучше понять свою роль:
https://analystcore.com/knowledge-base/differences-between-system-and-business-analyst
🔥9👍53👏3
🧩 Как оформить задачу на разработку справочника?

Казалось бы, простая задача — сделать справочник. Но как оформить это в ТЗ?

Предлагаю такой вариант оформления 👇

1️⃣ Описываем значения
Создайте страницу в Confluence, где зафиксируете все значения справочника. В задаче на разработку в Jira дайте ссылку на эту страницу.

2️⃣ Уточняем ответственных
Кто будет отвечать за актуальность справочника? Узнайте, как часто он будет меняться, и зафиксируйте это прямо на странице в Confluence.

3️⃣ Если справочник будет меняться
Имеет смысл продолжать вести его значения в Confluence. Это упростит поддержку и добавление новых значений.

4️⃣ Если справочник фиксированный
После реализации укажите, что актуальные значения будут храниться, например, в таблице some_table в БД. Добавьте: «За данными обращаться к [имя/роль]».
А страницу в Confluence после этого можно перенести в архив.

💬 Если у вас есть свои приёмы или шаблоны оформления справочников — делитесь в комментариях.

#requirements #documentation
8👍6🔥5
🛠 Давно не было мини-лайфхаков — ловите!

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


Что стоит уточнить:
— при каком HTTP-коде или бизнес-коде ошибки выводим сообщение
— какое именно сообщение должно быть показано (желательно с текстом или ключом из ресурс-файла)
— ссылка на макет, если отображение нестандартное
— сколько секунд показывать сообщение (особенно если это toast-уведомление)
— любые другие нюансы, важные для вашего проекта

📌 Чем точнее описана логика обработки ошибок, тем меньше недопонимания у команды и багов на проде.

#лайфхаки #requirements
👍124
Как вести историю изменений в требованиях? 😉

Как писала выше, очень важно вносить любые правки в историю изменений.
- Меняете макс. число символов с 50 до 100?
- Меняете обязательность параметра?
- Добавляете шаг на схему процесса?

Всё это нужно отметить в истории!

Как?
На каждой странице в Confluence создайте таблицу «История изменений» со столбцами: Дата, Инициатор, Что изменилось, Причина/Обоснование изменений (тут ссылка на задачу в Jira)

💡Сам Confluence тоже ведёт историю по каждой странице и там можно сравнивать версии.
Как это можно использовать?
Помимо таблички, которую вы заполнили вручную, прикладывайте к задаче получившийся diff из Confluence. Так, спустя года вы сможете раскопать, как работала система год назад, кто поменял требования и когда.

Смотрите в картинках, как это всё будет выглядеть 👆

#лайфхаки #requirements
❤‍🔥9🔥6
Как сочетать Use Case с другими артефактами и разделами в документации?

Предлагаю один из вариантов, как можно включить Use Case в вашу документацию👇

1️⃣ Шаблон предполагает ведение большинства функциональных требований в формате Use Case.

2️⃣ Если в Use Case предполагается использование экранной формы, то в шаги включается отображение этой формы со ссылкой на отдельную страницу с её описанием (GUI). Ранее я давала шаблон описания элементов интерфейса.

3️⃣ Если к Use Case вы хотите добавить диаграмму, это тоже возможно. Просто на странице этого Use Case создайте внизу раздел «Детализация требований» и добавьте диаграмму туда.

4️⃣ Если в Use Case предполагается отправка запроса, добавьте шаг, описывающий этот момент, и дайте ссылку на страницу с описанием API (метод, сценарий, входные/выходные параметры, коды ответа и т.д.)

5️⃣ Как сочетать User Story и Use Case при таком подходе?
В задаче в Jira укажите формулировку User Story, а затем добавьте раздел «Вспомогательные материалы». Сюда входят все связанные требования из Confluence: ссылки на Use Case, GUI, требования в произвольном формате и пр. Это и будут критерии приёмки вашей User Story.

#requirements
👍10🔥6
Часто бывает так, что один и тот же кусок логики используется в нескольких требованиях. Классический способ избежать дублирования — вынести общее описание на отдельную страницу и в других требованиях написать: «см. Общие требования такие-то».
Это работает, и всех это устраивает. Но бывают случаи, когда не хочется уводить читателя документа со страницы, и хочется показать ему всё описание здесь и сейчас. Для таких случаев в Confluence есть макросы «Excerpt» и «Excerpt Include».

Пример использования смотрите на картинке 👆

#requirements
🔥10👍72
Про названия параметров в документации 🤔

В последнее время я часто замечаю, что у многих названия параметров в документации и в реализации сильно отличаются. Да, такое бывает, не уследили, или просто не успели обновить. Но это объясняют тем, что в документации у нас «требования», а в сваггере «реализация». Это 2 разных мира, и мы не обязаны синхронизироваться.

Я думала над этим вопросом, и всё-таки, не могу это принять.
У меня вопрос, а что делать командам, которые являются потребителями вашего контракта?

Представьте, системному аналитику кидают в Confluence контракт с описанием параметров: как они называются, какой тип, какие правила валидации. Для нас это источник правды.
Мы же дальше несём это описание в свою команду и гарантируем, что параметр будет называться именно discountPercent и означает размер скидки в процентах, целое число.
А в реализации вдруг другое название. Что теперь?

Вижу три выхода из ситуации:

1️⃣ Синхронизировать названия. Если параметры описаны и в документации, и в сваггере, они должны совпадать.

2️⃣ Писать названия в доке по-русски. Пусть разработчики сами зададут названия на английском, а команды-потребители будут ориентироваться уже на сваггер.

3️⃣ После реализации удалить параметры из доки и оставить ссылку на сваггер. В документации останется только логика работы метода, примечания, интеграционный use case, а параметры и коды ответа будут в сваггере. Но этот вариант работает, только если сваггер оформлен нормально.

Мы, как аналитики, не должны вводить в заблуждение коллег из смежных команд. Давайте следить за актуальностью документации. Выходы есть. 😉

#requirements
👍14👏3💯31🔥1