IT АНАЛитика | Вильд Виктор – Telegram
IT АНАЛитика | Вильд Виктор
2.06K subscribers
105 photos
16 videos
6 files
178 links
БАЗА про бизнес и системный анализ.

Главный системный аналитик ВТБ, в IT c 2018 года.

Прошел путь от тех. поддержки до тестировщика, аналитика и тимлида.

Связь и реклама: @tako_man
Download Telegram
Немного воскресного чтения для тех, кому интересны не только фичи, но и как может быть устроена продуктовая разработка👀

В статье разбирают доменную структуру, зоны ответственности команд и то, как бизнес и IT взаимодействуют на масштабе большой компании.

Читать 📚

IT АНАЛитика | Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32🔥1
Сейчас в голосовой расскажу про одну ошибку в резюме, от которой у меня каждый раз конкретно пригорает, когда я её вижу:
За деньги ДА!

В прошлом году и немного в этом я проводил консультации.

Я специально это не пушу.
Свободного времени немного, и после работы хочется либо заняться своими делами, либо просто почилить.
Да и консультировать «всех подряд» не самая интересная для меня история.

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

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

👉Ссылка

IT АНАЛитика | Подписаться
6
IT АНАЛитика | Вильд Виктор
Аналитик в банке — это так, для души. На самом деле, я админ Telegram-канала. 😎 Но если серьёзно, это уже 100-й пост! Спасибо, что читали, репостили, комментировали и ставили реакции. 1000 подписчиков — это пока так, разогрев. Обнимаю каждого! ❤️ В следующем…
Айтишники, аналитики - газ отмечать Новый год⛄️

Спасибо всем, кто в этом году читал канал, писал в личку, спорил в комментариях и делился постами.
Канал вырос почти в два раза, и вы, дорогие подписчики, мотивируете меня продолжать писать и делать контент дальше.

Год для IT был неспокойный. Много неопределённости, тревоги и вопросов. Но мы как-то справились и продолжаем двигаться дальше.

От себя хочу пожелать:
🌟 работы, которая приносит кайф, а не только деньги
💫 интересных задач и новых офферов
🌟 почаще отдыхать и ходить в отпуск (я проверял, это реально работает).

Спасибо, что вы здесь и остаетесь на канале.
С наступающим 🎄

IT АНАЛитика | Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🎄173💯1
Идемпотентность - это та самая штука, про которую все вроде слышали, про которую любят спрашивать на собесах, но в реальных проектах о ней чаще вспоминают уже после первого инцидента 😐

Годная статья от Яндекса, где на живых примерах разбирают, как повторные запросы могут ломать бизнес-логику, приводить к дублям и странным багам и что с этим делать на уровне API и архитектуры.

Читать📚

IT АНАЛитика | Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍4
Прибейте меня, я делаю интеграцию. Часть 1 🍑

Вы - аналитик.
И вам говорят:
«Нужно интегрироваться с другой системой».
А можно я в очередной раз опишу задачу на покраску кнопочки?🥺

Я уже писал про то, почему не люблю интеграции. Чаще всего это душная однотипная х*йня, в которой особо негде проявить фантазию.
Или большая сложная задача, где много документации и данных, которые желательно не упустить, чтобы потом не разгребать серьёзные ошибки.

Но одними фичами сыт не будешь, и работа с интеграциями - неотъемлемая часть жизни аналитика.

В прошлом году я уже делал серию постов про ведение проектов с нуля:

Как вести проекты с нуля?
Как вести проекты с нуля? 2
Как вести проекты с нуля? 3
Как вести проекты с нуля? 4
Как вести проект с нуля? 5
Как вести проект с нуля? 6

Как вести проект с нуля? 7

В этом году хочется повторить такой же формат, но уже про интеграции.
Чтобы если интеграции вас душат, то теперь вы могли сказать:
Ща всё будет «hold my beer», или чай, если вы не пьёте, как я ☕️

Что вообще такое интеграция?
Интеграция - это когда две или больше системы обмениваются данными или событиями, чтобы бизнес-процесс работал целиком.

По-простому:
одна система что-то создает;
другая это принимает;
и между ними есть договорённости, формат, правила и ответственность.

Пример
Допустим, у нас есть новая система, которая отвечает за работу с клиентами.
Пока что она умеет только одно - создавать клиента.

Клиент пришёл → мы приняли данные → сохранили → создали личный кабинет.
Никаких интеграций пока нет, всё живёт внутри одной системы.

А потом приходит бизнес и говорит:
— клиенту нужно создать счет (это делает другая система);
— клиента нужно проверять в системе проверок;
— часть данных нужно отправлять в систему отчётности.

И вот тут внезапно появляется сразу несколько интеграций.
Если хоть одно звено отвалиться, то бизнес-процесс ломается.

Вот это и есть интеграция.

Поставщик и потребитель
В любой интеграции всегда есть минимум две роли.

Поставщик (provider) - это система, которая:
➡️ владеет данными;
➡️ их создаёт или обновляет;
➡️ отвечает за их корректность.

Потребитель (consumer) - это система, которая:
➡️ получает эти данные;
➡️ использует их в своих процессах;
➡️ живёт с последствиями, если данные приехали криво.

Очень частая ошибка не договориться на старте:
🧐кто владелец данных;
🧐кто имеет право их менять;
🧐кто вообще отвечает, если всё сломалось.

Если этого не зафиксировать, интеграция потом начинает жить своей собственной жизнью, а любой разбор проблемы превращается в вереницу писем и поиск «кто виноват».

Зачем тут вообще аналитик?
Потому что именно он:
👍видит бизнес-процесс целиком;
👍 понимает, зачем вообще нужна эта интеграция;
👍 переводит хотелки бизнеса на человеческий язык для команды;
👍 фиксирует договорённости между системами.

В следующей части поговорим про виды интеграций.

А пока расскажите в комментариях:
с какой самой странной или болезненной интеграцией вам приходилось сталкиваться?
👇

Вторая часть

IT АНАЛитика | Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥13😍31👍1
Прибейте меня, я делаю интеграцию. Часть 2 🍑

В прошлой части мы разобрались, что такое интеграция и с чем её едят.

И казалось бы всё, тимлид, давай задачку, ща спроектируем-нах*евертим 💃
Но тут важно понимать одну вещь:

Интеграции бывают разные.
И если выбрать не ту модель, могут быть проблемы.

Начнем с того, что мы их можем разделить по двум направлениям:
1. С кем мы интегрируемся.
2. Как мы это делаем.

1. С кем: внутренние и внешние
🏠Внутренняя интеграция (Internal)
Когда мы связываем наш сервис с другим сервисом внутри компании.

Пример:
Сервис «Оформление заказа» стучится в сервис «Склад», чтобы проверить, есть ли нужная модель телефона в наличии.

Зачастую это более простой вариант:
🤗 Все свои. Можно дойти до соседней команды или написать в личку;
🤗 Быстрее договориться о доработках;
😳 Более быстрый разбор ошибок.

Из минусов:
😒 Знания часто живут в головах и может быть плохо описанная документация;
💬 У другой команды свой бэклог и задачу могут взять в работу не так быстро, как хотелось бы;
🤓 Могут выкатить правки без предупреждения и молча сломать вам прод.


🌐 Внешняя (External)
Когда мы интегрируемся с системой вне нашей компании.

Пример:
У нас есть сервис авторизации и мы хотим, чтобы пользователь мог войти через Госуслуги или Google (внешние сервисы).

Из плюсов:
😋 Обычно есть подробная документация, которую можно изучить самому;
🔺 Есть чёткие правила и форматы данных, которые меняются не так часто.

Из минусов:
💀 Вы не влияете на процесс. Если они решили что-то поменять, вы просто подстраиваетесь, иначе всё сломается;
💀 Если внешний сервис упал, то разрабу в личку уже не напишите, придется писать в саппорт и ждать ответа.


2. Как: синхрон или асинхрон
📞 Синхронная интеграция (Request–Response)
Самый популярный вариант - REST, gRPC, SOAP.

Логика простая:
Запрос → Ожидание → Ответ. Пока мы не получим результат от другой системы, дальше не идем.

Пример:
Создали клиента → отправили запрос в систему проверок → ждем 5 секунд → получили статус «Одобрено» → создали личный кабинет.

Плюсы:
🎉 Всё просто: отправил - получил. Легко проектировать.
😊 Сразу понятно, на каком этапе возникла ошибка.
😌 Дернул метод через Postman и сразу увидел результат.

Минусы:
😅 Если вторая система упала, то процесс встал;
🤨 Любая задержка бьёт по пользователю.

Когда использовать:
👉 Ответ нужен здесь и сейчас (например, проверка баланса или авторизация);
👉 Пользователь смотрит в экран и не может продолжать работу без этих данных.


📨 Асинхронная интеграция (Event-Driven / MQ)
Kafka, RabbitMQ и другие брокеры сообщений.

Логика простая:
Отправили → Забыли. Нам не важно, когда именно другая система обработает данные. Главное, что мы зафиксировали событие и пошли дальше.

Пример:
Клиент нажал «Оформить заказ» → мы кинули событие в очередь → Склад начал сборку, а программа лояльности начислила баллы. Клиент сразу видит экран «Заказ принят», а не ждёт, пока отработают все внутренние сервисы.

Плюсы:
😏 Система не «тупит» в ожидании ответа, пользователь доволен скоростью.
😋 Если сервис почты упал, заказ всё равно оформится. Сообщение полежит в очереди и долетит позже, когда сервис поднимется.
👍 Можно легко добавить ещё пять систем-потребителей, и основной процесс от этого не замедлится.

Минусы:
🥲 Сложнее тестировать: приходится прыгать по логам разных систем, чтобы понять, где и почему застряло сообщение.
😉 Аналитику нужно продумать кучу нюансов: что делать с дублями сообщений (идемпотентность) и как не перепутать их порядок.


Самое простое объяснение:
Синхрон - вы звоните в ресторан.
Пока вам не подтвердят бронь, вы держите трубку.

Асинхрон - вы оставили заявку.
Администратор подтвердил её через 2 часа.
Вы не ждали у телефона.

Какой тип интеграций в ваших задачах встречается чаще всего? И что из этого больше всего бесит? 👇

IT АНАЛитика | Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍2
Прибейте меня, я делаю интеграцию. Часть 3 🍑

Во второй части разобрались с видами интеграций и как выбрать нужную.
Теперь главное не угробить её и довести до прода живой.

Как аналитик проектирует интеграцию: 5 шагов 🧠
Шаг 1. Понять зачем
Как и в любой другой задаче — сначала выясни, какую проблему решает интеграция.
Звучит очевидно, но порой от неё можно вовсе отказаться в пользу уже существующего решения. Или окажется, что интеграция уже была и просто никто её не описал 🙂

Шаг 2. Определить стороны
Кто поставщик, кто потребитель, кто владелец данных.
Договорились — зафиксировали письменно. В идеале прикладываем куда-то себе в аналитику, чтобы не потерять.

Шаг 3. Выбрать модель
Один из самых важных шагов.
Если есть архитектор — выбор модели можно дополнительно согласовать с ним.
Нет архитектора? Соберитесь с командой и обсудите варианты вместе.

Или в системе, с которой будете интегрироваться есть только Kafka, то и выбирать не придется.
Если у внешней системы есть только Kafka, то выбирать способ и вовсе не придется

Шаг 4. Описать данные
Какие поля едут, в каком формате, что обязательно, что делать если поле пустое.
Это и есть маппинг — про него у меня есть отдельный пост.

Шаг 5. Договориться об ошибках
Что делает система, если запрос упал? Таймаут? Ретрай? Алерт?
Этот вопрос часто забывают и потом на разборе инцидента кому-то приходится краснеть.


Типичные ошибки, через которые думаю многие проходили 🤦

«Договорились устно»
Вы попросили команду соседнего сервиса сделать доработку, получили ответ «да, без проблем». Никто это не зафиксировал. Через месяц они выкатили релиз без вашей правки и сломали вам прод. Классика.

Не проработали обработку ошибок
Happy path описан на 5 страниц, ручки готовы, диаграммки построены.
А что делать, если внешний сервис вернул 500? Все забили и потом «ой, какая-то ошибка на проде»

Забыли про нефункциональные требования
Сколько запросов в секунду? Какой допустимый таймаут? Без этого интеграция может работать на стенде и падать на проде под высокой нагрузкой.

Не согласовали интеграцию с обеими сторонами
Одну сторону спросили, вторую нет. В итоге маппинг написан под старую версию API.
У меня такое довольно часто бывало и теперь всегда спрашиваю ссылку на свежую доку.


Что зафиксировать в документации 📄
Базовый минимум любой интеграционной доки:
➡️ Цель интеграции и бизнес-контекст
➡️ Участники: кто поставщик, кто потребитель
➡️ Тип интеграции: синхрон/асинхрон, REST/Kafka и.т.д
➡️ Описание запроса и ответа (маппинг полей)
➡️ Обработка ошибок
➡️ Нефункциональные требования: таймауты, нагрузка, доступность
➡️ Ссылки на API-документацию внешней системы

Ну и чеклист готовности интеграции к проду

Сохраняй, пригодится:
Бизнес-цель понята и зафиксирована
Стороны определены, владелец данных назначен
Тип интеграции выбран и обоснован
Маппинг полей согласован с обеими командами
Обработка ошибок описана
НФТ прописаны
Документация актуальна и доступна команде
Тестовый стенд проверен

Раньше интеграции казались мне душной однотипной х*йней, с которой лень разбираться.
Но приняв их, вдумчиво разобравшись и проработав огромное количество становиться проще.

Надеюсь, если вы их и не полюбите, то хотя бы начнёте щёлкать как орешки.

Когда разбираешь интеграцию по частям она перестаёт пугать. Потому что за техническими терминами всегда одно и то же: две системы, которым нужно договориться. А помочь им в этом твоя работа 😉

А какой пункт из чеклиста вы чаще всего пропускаете? Признавайтесь в комментариях 👇

IT АНАЛитика | Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31🔥1