Вера Коновалова | Системный аналитик в IT
2.18K subscribers
199 photos
6 videos
125 links
Системный аналитик 8+ лет
Жиза и наблюдения про работу в IT
Мой курс по СА на Stepik 👉 https://stepik.org/a/247866
Практика 👉 https://stepik.org/a/253170
Связаться 👉 @verakonovalova
Download Telegram
Что лучше использовать — ENUM или справочник?

На самом деле вопрос не в том, что лучше, а какие данные вы собираетесь хранить в поле.

🔹 ENUM — отличный выбор, когда значения заранее известны и редко изменяются. Например, если тип клиента может быть только «Basic» или «Premium», тогда ENUM подходит идеально. Это решение упрощает архитектуру, так как нет необходимости создавать дополнительную таблицу.

🔹 Справочник лучше использовать, если возможные значения могут изменяться со временем или пополняться. Например, для поля «Специализация врача» справочник будет подходящим вариантом, так как список специализаций может расширяться, и каждая специализация может иметь дополнительную информацию (описание, коды, и т.д.).

Сравнение подходов см. в картинках👆

#db
👍83💯3
Когда документация говорит одно, а проект работает по-другому… 🤯

Как думаете, о чем подумал системный аналитик в этот момент?
Выбирайте наиболее близкий вам вариант👇
👍4❤‍🔥3💯1
Судя по прошедшему опросу, проектирование бизнес-логики — ваша любимая задача! 🎯
https://t.me/analystcore/91

И это неудивительно! Для системных аналитиков бизнес-логика — это основа всего. Продумывать её — значит превращать разрозненные требования в чёткое и понятное «А что мы делаем?».

💡 Почему это важно? Да потому что без этого никуда! Ни к проектированию БД, ни к API, ни к интеграциям не приступить, пока бизнес-логика не будет продумана от и до.

Вот несколько инструментов, которые помогут вам на этом этапе:
- UML (диаграммы активности и последовательности) — для визуализации процессов и взаимодействий.
- BPMN — для построения бизнес-процессов с участием всех ролей.
- Use Case — помогает продумать сценарии взаимодействия пользователя с системой.
- Flowcharts — простые и понятные блок-схемы, показывающие пошаговые действия.

Ключевые моменты при проектировании бизнес-логики:
1️⃣ Понять основные цели бизнеса.
2️⃣ Учесть все возможные сценарии.
3️⃣ Проработать расширения «а что может пойти не так?»

Для многих аналитиков это самый важный и интересный этап работы, потому что именно здесь рождаются основные решения, которые определяют успех всего проекта. 🔥
👍103💯3
Что мы знаем о Lean?

Когда мы говорим об Agile, первыми на ум приходят Scrum и Kanban. Но есть и Lean, который также заслуживает внимания. 😎

Lean означает «бережливый» и пришёл из производства (Lean Enterprise). Он направлен на минимизацию потерь: устраняем лишнее и концентрируемся на ценности для клиента.

Lean в IT работает аналогично: создаём минимальную версию, получаем фидбэк и дорабатываем. Знакомо? Да, ведь многие идеи Lean мы используем, не осознавая этого — например, концепцию MVP. Это ключевой элемент подхода Lean Startup, предложенного Эриком Рисом.

Принцип 20/80 (Принцип Парето) также пересекается с философией Lean.

Основная идея Lean — создавать, тестировать и учиться. Идеально подходит для новых продуктов. Это модель экспериментов: потратив минимальные ресурсы (те самые 20%), вы получаете обратную связь и решаете, стоит ли продолжать разработку.

Более подробно смотри в картинках 👆

#dev_process
👍10🔥3💯2
Коротко о Scrum

Сегодня Scrum — одна из самых популярных гибких методологий. Многие команды работают по Scrum, хотя редко можно встретить тех, кто полностью следует методологии. Всегда идет что-то не по плану. 😅

Основная идея Scrum — это деление работы на короткие итерации — спринты (обычно 2-4 недели). В конце каждого спринта команда предоставляет работающий продукт или его часть 🚀.

Команда небольшая и включает три ключевые роли:
- Product Owner — управляет приоритетами задач.
- Scrum Master — помогает команде следовать Scrum.
- Команда разработчиков — выполняет задачи 👩‍💻👨‍💻.

Основной инструмент управления задачами — Backlog (список всех задач проекта). Задачи, которые выполняются в текущем спринте, входят в Спринт-бэклог.

Также в Scrum есть ряд обязательных мероприятий: планирование, дейли, демо, ретроспектива.

Scrum предлагает чёткую структуру работы и регулярную обратную связь от заказчиков 🤝.

#dev_process
👍8❤‍🔥2💯2
Такой себе дейли...

Сегодня поговорим о мероприятии «Дейли», которое есть в Скраме, Канбане и других методологиях. У каждой команды дейли проходят по-разному, и судить, хороший он или нет, — дело субъективное 😅. Но всё-таки попробуем!

Такой себе дейли, когда один человек что-то рассказывает, а другой параллельно кодит/пишет ТЗ/переписывается и никого не слушает. Или когда это дейли со всеми аналитиками или разработчиками из разных областей/проектов — им, конечно, неинтересен статус друг друга. Плохой дейли — это когда всё сводится к простому отчёту: «Что я сделал вчера? Что буду делать сегодня?» и никакого обсуждения проблем.

Какой дейли считается хорошим?
Хороший дейли — это не отчёт. Он должен быть направлен на решение блокеров. Обсуждаем только то, что мешает двигаться вперёд. Нечего обсуждать? Расходимся.

Почему дейли ещё называют стендапом? В былые времена люди на нём стояли. Он должен быть настолько быстрым, чтобы никто не устал стоять. Быстро разобрали блокеры — и всё.

#dev_process
👍8💯41
JOIN или WHERE для фильтрации данных в БД? И как на это влияет проектирование?

Вопрос от подписчика: Что быстрее — запросы с фильтрацией через WHERE или JOIN? Лучше поместить все атрибуты в одну таблицу и фильтровать там, или использовать несколько таблиц и объединять их с помощью JOIN?

Давайте разбираться 💡

В реляционных БД нормализация подразумевает разделение данных на таблицы, которые объединяются через JOIN. Это предотвращает дублирование данных и поддерживает их целостность.

НО! Если критична скорость запросов, денормализация (где все данные в одной таблице, фильтруются через WHERE) может быть быстрее, хотя увеличивает объём БД.

Пример, когда действительно уместно поместить все данные в одну таблицу, — это аналитические отчёты 📊.
Для аналитики продаж можно объединить таблицы «клиенты», «заказы», и «продукты» в одну — «Sales_Report». Это ускорит выполнение запросов, особенно когда данные редко изменяются и вам просто нужно быстро фильтровать и сортировать их для аналитики.

Любое существенное изменение в БД лучше обсуждать с разработчиками 👥, чтобы выбрать оптимальный вариант. Скорее всего, разработчики предложат использовать JOIN и продумают, как ускорить запросы с помощью индексов, VIEW или кэширования.

Помните, вы всегда можете задать свой вопрос в форме ниже.
https://forms.gle/PEfLrfaxA5evix7VA

Всё анонимно и без стеснения 💬😉

#db
👍1032💯1
Коротко о Kanban

Kanban — это гибкая методология разработки ПО.
🛠️ Визитная карточка канбана — доска с задачами.

Главная идея Kanban — это непрерывная работа над задачами, которые появляются по мере необходимости. Процесс не требует фиксированных спринтов, что делает метод идеальным для однотипных задач, например, для очереди задач в команде техподдержки.

В канбане постоянно что-то «наваливается», а команда распределяет задачи между сотрудниками и продолжает работу. Здесь важна взаимозаменяемость членов команды: если один сотрудник не может продолжить задачу, её легко подхватывает другой — это обеспечивает гибкость и оперативность в решении проблем. ⚡️

#dev_process
🔥7👍32💯1