JetBrains стала платиновым спонсором проекта для развития игрового движка Godot Foundation. Платиновое спонсорство составляет от €36 000 до €100 000 в год.
«Клей» для GPIO в QEMU
В прошлой статье мы пришли к выводу, что QMP — это лучше, чем ничего. Но хочется большего — библиотеку или программу (желательно, уже готовую), которая умеет читать/писать и узнавать об изменении состояния через poll() / pselect() / select() / epoll() / read().
В таком случае для каждой модели GPIO нужен «клей», похожий на тот, что используется с chardev — мы включаем его прямо в модифицированный QEMU. Очевидное название такого «клея» — gpiodev. Вот его основные функции, которые сейчас почти полностью соответствуют GPIO UAPI в Linux:
сообщать количество линий, конфигурацию, название и потребителя каждой линии,
читать и задавать состояние линии,
отслеживать изменения состояния и конфигурации линии (вход/выход, запрос/освобождение).
«Клей» состоит из двух групп, первая — это индивидуальные для каждого модуля GPIO функции, которые gpiodev использует, чтобы запросить специфическую информацию:
LineInfoHandler() — информация о линии: имя, флаги и потребитель,
LineGetValueHandler() — состояние линии: условный 0 или 1,
LineSetValueHandler() — задать состояние линии: 0 или 1.
По аналогии с GPIO UAPI напрашиваются также функции LineGetMultiValueHandler() и LineSetMultiValueHandler() для запроса и выставления линий, но я решил ограничиться минимальным набором.
Можно ли организовать прозрачное взаимодействие с устройствами внутри QEMU — использовать те же библиотеки и инструменты, как и для реальных устройств? Читайте во второй части трилогии о долгом пути до GPIO в QEMU.
Ахиллесова пята патента на промышленный образец
Допустим, ваша компания что-то производит. К примеру, корпуса для серверных шкафов или детские площадки.
Скорее всего, с внешним видом изделия вы работаете в два этапа:
Первый. По вашей просьбе художник создает дизайн изделия и передает вам право на получение патента.
Второй. Вы получаете патент на промышленный образец и запускаете изделие в работу.
Вам кажется, что все законно.
Но через какое-то время вы получаете претензию. В ней просьба перестать использовать чужой дизайн. Отправитель вам не знаком и требует денег.
Возникают два вопроса:
1. Возможны ли ситуации, когда у дизайна изделия появляется еще один автор?
2. Защищает ли вас патент на промышленный образец от притязаний "нового" автора?
Ответ на первый вопрос: да, такие ситуации возможны.
Например, в договоре авторского заказа заложено условие о том, что оформление изделия может быть разработано с привлечением других лиц.
В этом случае на свет появляется соавтор вашего дизайна. Он не давал вам разрешение на получение патента и защищает свои интеллектуальные права.
Другой пример. Ваш дизайнер фактически ничего не создавал: он подсмотрел внешний вид изделия в интернете и выдал его за свой труд.
В этом случае к вам обращается настоящий автор дизайна, защищая результаты своей интеллектуальной деятельности.
Ответ на второй вопрос: в описанной ситуации промышленный образец вас не защищает.
Все дело в разнице правовых режимов - авторские права защищаются по нормам авторского права, промышленный образец берегут нормы патентного права.
Разные правовые режимы не заходят на половину друг друга.
В примере выше налицо авторское право. Вы будете отбиваться от претензии, используя главу 70 Гражданского кодекса РФ.
Важно! Разборки с подателем претензии сами по себе не повлекут аннулирование вашего патента.
Поговорите с вашим адвокатом. Он предложит минимум два варианта выхода, если автор обвинил вас в посягательстве на его дизайн.
Попадались ли вам в интернете картинки, похожие на дизайн ваших изделий?
OpenAI выпустила GPT-5. Разница между GPT-4 и GPT-5 примерно как между студентом и доктором наук, заявлил Сэм Альтман.
GPT-5 является самой мощной существующей моделью для кодинга. Она может выстраивать более сложные цепочки действий и писать более сложный код в одном стиле. Простым промптом можно создать функционирующее веб-приложение — на презентации сгенерировали Duolingo платформу для изучения французского языка с полноценными дизайном, анимациями, озвучками и игрой. Новая модель значительно меньше склонна к галлюцинациям — она будет меньше врать и притворяться. Также она стала гораздо менее «подхалимской». Тексты, генерируемые GPT-5, стали более естественными и человечными. Вместе с этим модель лучше понимает и исправляет свои ошибки. ChatGPT интегрируют в Gmail и Google Календарь на следующей неделе. Можно будет управлять как электронной почтой, так и своим расписанием прямо в чате. GPT-5 сама определяет, как лучше ответить — быстро или «подумав».
GPT-5 умеет не только вести разговор, но и выполнять реальные задачи: создавать приложения, планировать календарь, проводить исследования. Она сама определяет, как лучше ответить — быстро или «подумав». Модель справляется с генерацией кода, выдаёт меньше галлюцинаций, и даже даёт более точные ответы на медицинские вопросы.
По тестам GPT-5:
Обходит Claude Opus 4.1 и Gemini 2.5 Pro в программировании
Слегка уступает Grok 4 Heavy в тесте «Humanity’s Last Exam»
Отвечает на медицинские вопросы с ошибками всего в 1.6% случаев (у GPT-4o — 12.9%)
Ведёт себя безопаснее: меньше обманывает, точнее различает вредные и безопасные запросы.
Платные подписчики Plus и Pro получили доступ к более мощной версии GPT-5 Pro. В API теперь доступны три размера: gpt-5, mini и nano.
GPT-5 можно попробовать в Cursor — тут, и в Copilot — тут.

DeepSeek, Qwen, T-lite, T-pro: на чем мы запускаем LLM для своих ИИ-сервисов

До фреймворка vLLM мы использовали NVIDIA Triton в паре с TensorRT LLM бэкендом. Но перешли на vLLM, потому что с ним оказалось намного проще добавлять новые модели. Да и по стабильности vLLM показал себя лучше: нормально работал под нагрузками там, где связка Triton и TensorRT начинала сбоить и падать. К тому же инференс-сервер vLLM изначально предоставляет OpenAI-совместимые REST API, что упрощает его использование в других продуктах. А инференс-сервер Triton работает с более обобщенным KServe REST API, который сложнее интегрировать в другие продукты.
Не обошлось без проблем и с vLLM: на наших валидационных тестах модель давала неконсистентные ответы даже с нулевой температурой. Оказалось, что это известная особенность vLLM, даже упомянутая в документации. Мы нашли несколько советов, как минимизировать этот эффект: отключать prefix caching опцией --no-enable-prefix-caching и фиксировать random seed опцией --seed. Это помогало при одном запущенном инстансе модели, но при нескольких, даже работающих на одном железе и версии софта, проблема всплывала снова. Также неконсистентность ответов возникает при больших нагрузках — например, когда тесты запускаются одновременно с бенчмарком.
Еще один вызов — это накладные расходы от litellm-proxy и его масштабирование под нагрузками. LLM Gateway, в качестве которого мы используем LiteLLM, превращается в боттлнек кластера, так как все другие сервисы взаимодействуют с кластером именно через него. То есть именно на него идет суммарная нагрузка от всех возможных пользователей, которая потом распределяется между разными моделями и их инференс-серверами.
О том, как устроен инференс-кластер YADRO, подробно рассказал Владислав Виноградов. Бонус к разбору программной и аппаратной части кластера — челленджи и бенчмарки!
Если нужна бесплатная альтернатива Cursor AI и Copilot в VS Code, вот самое быстрое и оптимальное решение, как мне кажется:
Качаешь VS Code
Устанавливаешь расширение Continue - open-source AI code assistant
Получаешь бесплатный API key от думающей модельки Deepseek: https://openrouter.ai/deepseek/deepseek-r1-0528:free/api
Устанавливаешь соответствующие настройки провайдера и модельки в Continue. Можно это сделать в yml файле, выглядеть он будет так:
name: Local Assistant
version: 1.0.0
schema: v1
models:
- name: deepseek-r1
provider: openrouter
model: deepseek/deepseek-r1-0528:free
apiBase: https://openrouter.ai/api/v1
apiKey:
5. Пользуешься чатиком или агентом со всей дури.
Можно поиграться с настройками, провайдерами и модельками, но это уже сами.

Когда тебя спрашивают про Питон, а ты только “Летающий цирк“ смотрел.
Всем добрый день! На днях позвонил товарищ и сказал, что проходит курс по Питону.
Сказал что понимает, что я пишу на 1С, но может ли он ко мне обращаться с вопросами. Хороший повод посмотреть что это за язык. Нужно какое-то ТЗ.
Пусть в SQL есть таблица «Prices» с двумя колонками. «Product», «Price». Требуется посчитать и вывести среднюю стоимость.
Средняя стоимость = Сумма/количество различных позиций.
Задача стоит. На чём её решать?
Есть компьютер с Windows 11.
В качестве движка БД думаю поставить SQLite. Так же нужно установить Python.
IDE наверное будет перебором, поэтому поставлю Sublime Text с каким-нибудь плагином. Так-с. Что я знаю о Python. Он полный по Тьюрингу. Блоки определяются отступами. Есть объекты…. Вроде всё.
Приступим. Что нам понадобится:
1. Установленная SQLite.
2. Созданная БД с нужными данными.
3. Объект «Подключение» в Python.
Так-с SQLite. На https://www.sqlite.org/download.html есть собранный для Windows. В принципе логично, но всё равно приятно… Ага, вот и первый нюанс. Есть DLL и есть tools.
Похоже придётся чутка почитать... Пишут ставить Tools “sqlite-tools-win-x64” (Если кто-не слушал, то настойчиво рекомендую послушать Tool – Vicarious).
Скачиваем — распаковываем, видим 4 exe файла.
Нам нужно:
1. Создать БД.
2. Создать таблицу.
3. Заполнить таблицу.
4. Написать запрос для получения данных таблицы.
4. Написать запрос для получения среднего.
Открываем документацию к SQLite. Приступим.
1. Создаём БД: C:\sqlite> .\sqlite3.exe average.sqlite;
2. Создаём таблицу с колонками нужных типов: create table prices(product text, price int);
3. Проверяем что таблица создалась: sqlite> .tables;
4. Заполняем строки:
insert into prices values('Bike',1);
insert into prices values('Car',2);
insert into prices values('Boat',3);5. Проверяем заполнение: select * from prices;
6. Пишем запрос средней цены: SELECT AVG(price) AS average_price FROM prices;
Получили 2.
Отлично! С этим разобрались.
Теперь нужно:
1. Установить python.
2. Разобраться объект какого класса следует использовать для подключения к SQLite.
3. Получить результат запроса.
4. Вывести результат запроса.
Смотрим.
1. Скачиваем learn_python.winget.
2. winget configure -f C:\Users\Имя пользователя\Downloads\learn_python.winget.
3. Пишем код в текстовом редакторе:
#https://docs.python.org/3/library/sqlite3.html
import sqlite3
conn = sqlite3.connect('C:\\sqlite\\average.sqlite')
cursor = conn.cursor()
cursor.execute('SELECT AVG(price) AS average_price FROM prices;')
result = cursor.fetchone()
if result and result[0] is not None:
print(f"Average Price is {result[0]:.2f}")
else:
print("No prices found.")
conn.close()
4. Сохраняем как print_average_price.py.
5. Запускаем: python3.13.exe .\print_average_price.py.
«Average Price is 2.00».
Отлично! Задача выполнена.
Мне надоели платные приложения для учета расходов, поэтому я сделал свое: бесплатное и с открытым исходным кодом.
Согласитесь, идея довольно проста: мобильное приложение, в котором можно было бы записывать свои расходы и строить какие-нибудь планы по тратам. Количество таких инструментов в магазинах приложений, по моим ощущениям, сравнимо с количеством самописных будильников и калькуляторов - их довольно много.
Я перепробовал десятки решений, но в каждом находил какие-то ограничения. Где-то были платные подписки или ограниченный функционал, где-то требовалась регистрация и данные о моих расходах улетали на сервера (зачем?), а где-то приложение просто не подходило мне по функционалу. В итоге я решил уйти от готовых приложений к учету в таблицах Excel. Но такой подход тоже был неудобным, и я понял, что пора создать свое собственное приложение: приватное, бесплатное и, самое главное, открытое.
В общем, так появилось Profitocracy - бесплатное Open Source мобильное приложение, написанное на .NET MAUI. Его главная цель — помочь пользователям организовать учет личных расходов по популярному правилу 50-30-20, а также обеспечить конфиденциальность данных. Profitocracy хранит всю информацию локально на вашем устройстве. Приложение не передает никакие данные третьим лицам и полностью свободно от рекламы и монетизации.
Среди основных особенностей приложения я хотел бы выделить:
Автоматическое планирование бюджета. Вы указываете дату окончания периода (получение зарплаты, например), и приложение расчитает для вас ежедневные расходы, расходы по типам (по правилу 50-30-20), а также по категориям (которые вы можете создать сами).
Индивидуальная настройка. Вы можете создавать собственные профили расходов: для личных нужд, на время отпуска или поездку в командировку. Причем столько сколько вам потребуется.
Приватность. Все данные - на вашем устройстве и только. Также, имеется возможность создания бэкапов (выгрузка данных в файл) для переноса данных на другое устройство.
Открытый исходный код. Исходный код проекта выложен на GitHub (ссылка на репозиторий). Каждый может внести свой вклад, предложить новый функционал или изучить как работает приложение.
Кроссплатформенность. Приложение доступно как для Android, так и для iOS.
Перевод на несколько языков. Profitocracy поддерживает русский, английский и другие языки.
На момент написания поста проект завоевал небольшой, но значимый отклик в сообществе разработчиков:
100+ звезд на GitHub;
20+ форков;
3 активных контрибьютора. Причем, это не мои друзья :)
Ссылки на скачивание:
Буду рад вашим отзывам, предложениям и комментариям как на GitHub, так и здесь. Надеюсь, Profitocracy поможет вам так же, как оно помогло мне!
Лучшие анимации на Scratch: программирование для детей
В скретч можно создавать игры и анимировать их: оживлять предметы, сделать их подвижными.
Мы собрали для вас лучшие анимации на Scratch, которые помогут в программировании для детей.
Научиться создавать игры в Scratch можно на нашем курсе: https://pixel.study/scratch
Видео ниже:
Стартовала работа над новым бумажным спецвыпуском журнала «Хакер». На этот раз в коллекционный сборник войдут лучшие статьи, опубликованные в 2025 году: от разбора сетевых протоколов до хакерских применений LLM.
После выпуска трёх бумажных сборников с архивными статьями за 2015–2021 годы в «Хакере» решили попробовать новый формат: журнал, в котором будут собраны лучшие статьи за год. В новый номер войдут более 20 топовых текстов, публиковавшихся на страницах «Хакера» в 2025 году. Каждая статья по традиции будет сопровождаться уникальными комментариями от авторов и редакторов, которые позволят заглянуть за кулисы работы журнала. 240 страниц на плотной бумаге — вдвое толще старых номеров «Хакера» образца 2015 года.

Лучшие статьи за год, подшивка всего самого интересного:
Автоматизация хакерских тасков при помощи LLM;
Полный гайд по разведке перед пентестом;
Разбор популярных сетевых протоколов с примерами;
Туториал по опенсорсному отладчику radare2;
Новые способы обфускации малвари в Windows;
Хакерские трюки и софт для Android;
И многое другое.
Интеграция PVS-Studio с Hexway
Компания PVS-Studio и платформа Hexway заключили технологическое партнёрство для обеспечения интеграции статического анализатора кода PVS-Studio в экосистему DevSecOps.

Hexway VamPy — это решение, агрегирующее данные о безопасности из разных источников для работы с уязвимостями.
В Hexway стало возможным загрузить результаты анализа PVS-Studio в виде отчёта и работать с конкретными ошибками так же, как это позволяют другие инструменты. Загрузка возможна двумя способами: через пользовательский интерфейс или командную строку с использованием CLI-инструментов.
Подробнее о том, как загрузить результаты анализа PVS-Studio в Hexway VamPy можно прочитать в соответствующем разделе нашей документации.
Лето в самом разгаре, а мы не сбавляем темп! Рассказываем про самое интересное, что было в июле. Свежий #дайжест Luxms.
Главная новость лета — наша конференция в сентябре!
Приглашаем, будет полезно и интересно!
Не просто конференция. Настоящая премьера.
Luxms BI признана самой безопасной BI-платформой по версии «BI-круга Громова 2025». Это не случайность, ведь безопасность — одна из тех фич, которыми мы гордимся.
Подтвердили совместимость с российской СУБД Postgres Pro — больше возможностей для импортонезависимой аналитики и работы в безопасном контуре.
Провели экспертный совет, на котором рассказали о модуле Luckysheet — Excel прямо внутри BI-системы.
Приняли участие в вебинаре «BI в стройке: что анализировать, чтобы экономить и зарабатывать на проектах», запись можно посмотреть здесь. А вот тут Андрей из ГК «Синтека» нас хвалит, спасибо, нам приятно.
Рассказали о кейсе, реализованном для НИИОЗММ ДЗМ — Нацпроекты и научная деятельность здравоохранения Москвы. Когда действительно важна каждая цифра.
Департамент информационных технологий г. Москвы завершил перевод компонента централизованной аналитической системы MOS BI, построенного на платформе Luxms BI, на российскую операционную систему Мос.ОС.
Приняли участие в конференции «НОРБИТ 360», где рассказали почему озёра данных могут превратиться в «болото» и как этого не допустить. Смотрим тут.
Вышел новый выпуск подкаста «Метафизика IT» - Про мышь, где Александр Тютюнник, Директор по развитию бизнеса, размышляет о том, эволюционирует ли IT или деградирует, почему self-service становится новой религией, как меняется сложность входа в профессию, и почему ИИ и масштабы бизнеса не позволят всем двигаться в одном темпе.
Все новости в нашем телеграм-канале.
Вам не нужен Activity Bar в vscode!
В видео я показываю несколько возможных оптимизаций вашего рабочего процесса. Станет удобнее и проще использовать ваш основной инструмент для работы.
Раз. Убираем Activity Bar. В нем есть три типа иконок: нужные нам часто, нужные иногда, совсем ненужные. Логика такая: для нужных мы создаем горячие клавиши (или пользуемся существующими). Для средне-нужных используем cmd+p и выбор команды. Ненужными – не пользуемся :)
Кастомные настройки для горячих клавиш для управления разными View (плюс к стандратным):
[
{
"key": "shift+cmd+g",
"command": "workbench.view.scm",
"when": "workbench.scm.active"
},
{
"key": "ctrl+shift+g",
"command": "-workbench.view.scm",
"when": "workbench.scm.active"
},
{
"key": "shift+cmd+o",
"command": "outline.focus"
}
]Два. Убираем Side Bar. Большую часть времени он не нужен. В основном нам просто нужно читать и реже писать код. Зачем нам Side Bar? Убирается основной по cmd+b, а второй по cmd+alt+b.
Но если оставить Side Bar справа, то его появление / скрытие будет двигать код. Что будет мешать. Потому – убираем его вправо.
Настройки:
{
"workbench.activityBar.location": "hidden",
"workbench.sideBar.location": "right"
}Три. И не забудьте поместить Command Palette в центр рабочей области. Так будет удобнее: появяться она будет сразу перед глазами. Просто перетаскиваем мышкой.
Ссылка со всеми материалами: https://github.com/sobolevn/the-best-python-course/blob/main/minimal_vscode Там будет много полезного.
Ближайшие события
Представлен сервис Polyglotta для перевода любого текста на 5 языков одновременно бесплатно и без регистрации. Поддерживает 34 языка, среди которых английский, испанский, французский и русский. Есть встроенный ИИ-помощник — он объясняет перевод, подсказывает синонимы, происхождение слова и примеры использования.

Представлен бесплатный обучающий курс по SQL с 10 объёмными уроками с необходимой теорией, практикой в редакторе Mode от полных новичков до продвинутых спецов SQL, включая всю базу (SELECT, WHERE, ORDER BY, LIMIT и логические операторы), а также продвинутые темы (агрегирующие функции, GROUP BY, HAVING, соединение таблиц). В проекте доступен симулятор аналитика на реальных данных, A/B тестирование и инсайты продукта.

Как облачные сервисы продвигают продукты на хакатонах
Хакатон — способ поднять узнаваемость бренда и расширить воронку найма, все хорошо это знают.
При этом немногие учитывают, что хакатон — еще инструмент продвижения свой продукта среди разработчиков.
Облачные сервисы успешно этим пользуются. Ниже несколько кейсов с выводами.
Все топовые облака: Amazon, Google Cloud, Azure, Cloud.ru, VK Cloud, Yandex Cloud провели хакатоны в последние 3 года.
Самый масшабный был с призовыми в $150 000.
К участию приглашались стартапы для решения социально значимых задач. Единственное требование — использовать сервис в своем решении.
В РФ сильнее всего отметились Selectel и Cloud.ru, тогда под брендом SberCloud.
На SberCloud Advanced Hacking собралось 70 команд из малого и среднего бизнеса. Они внедряли облачные технологии в свои продукты — самые оригинальные решения получили призы.
Всего мы проанализировали 10 хакатонов от облаков. Делимся выводами.
Хакатоны облачных сервисов выделяются необычно взрослой аудиторией: как правило, ЦА — средний и малый бизнес. Это потенциальные клиенты.
Задачи ставятся максимально широко. Ограничения бывают
А) по тематике, например, «сделайте что-то социально значимое»,
Б) по технологии, например, собираются решения в области AI, Web3, Blockchain, IoT.
Это идеально для хакатона.Максимум по участникам в РФ — около 260 человек. Есть простор для яркого крупного ивента.
Вывод: облачные сервисы и вообще все, кто производит продукт для разработчиков, одним махом закрывают сразу 3 задачи с помощью хакатона:
продвинуть продукт
поднять узнаваемость бренда
расширить воронку найма
Если ваша компания относится к таким — донесите ценность до бизнеса, это поможет «продать» идею хакатона внутри и оставить всех довольными.
Тестируем микросервисное приложение с кучей интеграций — четыре совета из практики
На одном из финтех-проектов наша команда тестирования столкнулась с серьезными вызовами: нестабильные партнерские API, отсутствие тестовых сред у партнеров, лимиты на запросы и риски всё сломать одним обновлением.
В этом посте — примеры, как команда с этим справилась и как можно поступить в похожих ситуациях. Эта подборка может сэкономить кому-то часы (а то и дни) работы.
🛠️ Внешние сервисы без тестовых контуров
Решение: собственный мок-сервис на основе WireMock.
Как он работает:
тестировщик задает нужный ответ и отправляет его через HTTP-запрос в БД;
нужные вызовы подменяются в конфигурации;
при тестировании запрос уходит не во внешний API, а в мок, который отдает нужный ответ.
Моки у нас кастомные, конфигурируются через Swagger, и не завязаны напрямую на CI/CD — это упрощает запуск и дает гибкость.
Плюс: так мы не зависим от внешних API, которые то работают, то нет.
💸 Платные вызовы и лимиты на тестовые запросы
Решение: изолированные стенды и замещение моками везде, где возможно.
Если API-партнер дает 150 вызовов в месяц, а вам нужно 500 на автотесты — моки опять же спасают. Мы блокируем обращения к реальным API на командных стендах и заменяем их заглушками. Проверку живых интеграций оставляем только на пред-проде.
Плюсы:
не сжигаем бюджет;
эмулируем ошибки и нестандартные ответы;
ускоряем тесты без зависимости от внешней стороны.
🔄 Нестабильность интеграционных тестов
Решение: изоляция и моки как защитный слой.
Микросервисная архитектура — это боль, когда один упавший сервис ломает релиз. Поэтому мы:
эмулируем нестабильные вызовы моками;
изолируем свою часть и фокусируемся на ее стабильности;
прогоняем тесты на командных стендах — быстро, стабильно и без флуктуаций от партнеров.
🤝 Десятки команд, завязанных на общий процесс
Решение: интеграционные проверки и ревью на совместимость.
Когда много команд делают один продукт, любое изменение может зацепить чужой модуль. Мы выстроили систему так, чтобы ошибки ловились до мерджа, а не после инцидента. Что помогло:
общие тестовые фреймворки и единый подход к интеграционным тестам;
сценарии, которые включают зависимости от других команд;
проверка обратной совместимости: если что-то ломает чужой функционал — фича не проходит MR.
Подробнее о каждом из подходов читайте в статье QA-инженера AGIMA Святослава Волохова.
По мнению Microsoft, через пять лет искусственный интеллект будет играть в работе Windows решающую рол. Компания опубликовала видеоролик под названием «Видение Windows 2030», в котором говорится, что основным средством взаимодействия человека и операционной системы станет естественная речь и ИИ-агенты. А вот работа с мышкой, клавиатурой и набор текста в 2030 году будут чуждыми и уйдут на второй план.
Говорим на языке событий: что даёт ивент-шторминг и как его правильно провести

Привет! Я Иван Чернов, системный архитектор, в этом посте расскажу про ивент-шторминг.
В Островке есть набор сервисов, который разбит на логические блоки так, чтобы в рамках блока можно было итерировать: Островок, Островок B2B и Островок Командировки. При этом запускать новые фичи, которые будут сквозь эти слои прорезаться.
Мы растём по количеству и продуктов, и людей, нанятых для их разработки. Недавно начали толкаться локтями: не понимали, как качественно контрибьютить в большие кодовые базы, как они должны эволюционировать. Поэтому пришли к ивент-штормингу.
Что это за практика? На встрече с одной стороны сажаем бизнес, с другой — разработку. Просим бизнес рассказать, что и как он делает в работе с клиентом.
Ивент-шторминг проводится с фокусом на цикличную реактивность: происходит событие, которое визуально меняет что-то для пользователя, тот принимает решение и отдаёт команду, команда приводит к новому событию.
На этих циклах фокусируемся на доске в Miro во время встречи.
В ивент-шторминге 3 этапа:
1. Сейлзы выстраивают по циклам цепочку событий: от «клиента у нас ещё нет» до «клиент нас окончательно покинул». Даже в простых цепочках 20–30 действий. В готовом таймлайне есть happy pass: клиент успешно прошёл весь путь. И альтернативные пути: что-то пошло не так.
2. Проходим по таймлайну с конца, ищем ошибки. Выделяем ключевые события, которые нельзя откатить: клиент зарегистрировался, совершил бронирование, провёл оплату. Здесь происходит стык сервисов. На стыках обогащаем цепочку. Пишем, кто и что делает: актор-клиент зарегистрировался, подключился сервис юзер-менеджмента.
3. Выявляем, какие агрегаты работают с событием. Мапим команды: клиент регистрируется, в работе участвует команда регистрации.
Цепочка готова, мы получили полезный контекст, все одинаково понимают процессы и видят, что нужно делать, чтобы их улучшить.
Во время встречи составляем словарик. Если сейлз говорит непонятное разработчикам слово — мы его добавляем в словарь, и оно просасывается в наш интерфейс и кодовую базу. Всё это учит разработчиков понимать, на какие рычажки они влияют своим кодом.
Поделюсь советами, как круто провести ивент-шторминг.
Онлайн-формат
● Для проведения онлайн достаточно доски в Miro.
● Разбивайте встречу на три части, каждая встреча — один этап.
● На последней встрече отпустите бизнес, выявите агрегаты и сервисы, задействованные в таймлайне с разработкой.
● Максимум людей для успешной фасилитации онлайн — 8–10 человек.
Подбор людей и подготовка
● Соотношение участников: 70% бизнеса, 30% разработки.
● Ищите представителей бизнеса в оргчате выбранного домена: спрашивайте у руководства, «кто тут самый инициативный».
● Вам нужны работники «с полей», которые лучше всего шарят в процессах, и тимлиды первого уровня.
● Берите людей из разных направлений домена.
● Бизнес-участники должны понимать: ивент-шторминг — процесс обучения, они эксперты, а разработка — ученики. Им нужно говорить на своём языке, а не подстраиваться под разработку.
● Дайте участникам базовый словарь. Четыре самых важных слова: актор, команда, событие, термин.
● Важны вводные по времени и цели: на сессию уйдёт суммарно 6–8 часов, она даст единое понимание процессов.
Фасилитация
● На старте не бойтесь повторить все вводные.
● Дайте сейлзсам 10 минут на то, чтобы каждый выстроил индивидуальный таймлайн, дальше начинайте мёржить таймлайны с общим обсуждением.
● Событие — факт в прошедшем времени, его не отмотать. Следите, чтобы так и записывали.
● Первым делом простройте happy pass, иначе у вас не выстроится цельное видение процесса. Альтернативные ветки обозначьте на первом этапе, а достраивайте на втором, проверяя таймлайн с конца.
● Если бизнес утверждает, что два события происходят одновременно, это важная точка обсуждения.
● Организуйте пост-процессинг: важно передать разработке результаты, объяснить, какие процессы у нас уже верно реализованы, а где нужно обновление и дополнительное внедрение.










