Для сегодняшнего поста я выбрал такой заголовок, потому что достаточно давно заметил одну любопытную вещь.
Когда дело доходит до обсуждения требований, буквально каждый мгновенно превращается в эксперта. Функциональные требования? Легко! Нефункциональные? Тоже окей. Но вот переходные?..
Знаете, это как мифические животные. Кто-то про них вообще ничего не слышал. А другие уверены, что они существуют, но найти их им порой оказывается труднее, чем йети или единорога.
Кроме того, если обратиться к серьёзной литературе вроде BABOK или PMBOK, то окажется, что этот вид требований если и упоминается, то удостаивается лишь нескольких предложений.
Возможно, кто-то скажет, что раз вопросу не уделяется много внимания, то его значимость минимальна. Но это не так. Практика показывает, что игнорирование переходных требований — это прямая дорога к провалу всего проекта и загубленному реноме продукта. А раз так, то с этим определённо надо что-то делать. Что делаю лично я?
К настоящему времени я провёл серьёзную работу и систематизировал знания, накопленные мною в этой сфере за годы работы. Осталось
Как это будет происходить, сообщу чуть позже. В общем, буду держать вас в курсе!
Ну а пока предлагаю вспомнить, какие бывают требования в принципе.
👉 Вспоминаем! 👈
#требования #анонсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥4🤔1🏆1
В мире высоких нагрузок и быстрых приложений даже самые умные алгоритмы требуют разминки 🏋️♂️. Это помогает системе набрать рабочую скорость 🏃🏽 и встретить пиковую нагрузку во всеоружии. Такие "разминки" получили название прогревов. Рассмотрим наиболее популярные из них.
Процесс, при котором виртуальная машина (например, JVM или .NET CLR) постепенно компилирует наиболее часто используемые участки кода в машинный код с помощью JIT-компиляции (Just-In-Time). В результате приложение со временем начинает работать быстрее и отзывчивее. Правда, производительность во время прогрева может меняться неравномерно, и пиковая скорость достигается не всегда мгновенно — но в целом техника действительно ускоряет долго работающие программы.
Предварительное заполнение кэша данными, которые скоро понадобятся. Это помогает избежать задержек при первом обращении пользователей после запуска приложения, обновления сервера или при пиковых нагрузках. Самые популярные данные уже лежат в быстрой памяти и, как следствие, ответы приходят мгновенно.
Метод продления активной сессии без повторного входа. Мобильные приложения и веб‑сервисы периодически отправляют серверу сигнал (ping), чтобы сервер не закрывал сессию из-за таймаута. Обычно сессия просто продлевается, и клиент продолжает использовать тот же идентификатор. В некоторых системах при этом может выдаваться новый токен, клиенту может возвращаться заголовок Set-Cookie с новым значением Expires или что-то иное, но, при этом, главной задачей является сохранение пользователя в системе, пока он активен.
Техника для баз данных и поисковых движков. Индексы — это структуры данных, ускоряющие поиск. Их прогрев означает предварительную загрузку индексных данных в оперативную память, чтобы первые запросы после запуска системы обрабатывались максимально быстро. Часто для этого используются специальные команды (например, LOAD INDEX INTO CACHE в MariaDB) или прогревочные запросы (искусственные запросы, которые заставляют систему загрузить в память данные из критичных таблиц). Прогрев индекса фактически является частным случаем прогрева кэша, но применительно к кэшу СУБД.
#термины #данные #проектирование #архитектура
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍2🎉1
Ну что, немного похулиганим? Предлагаю вспомнить народную мудрость, но уже в новом исполнении. Специально ко Дню смеха
Друзья, тоже посетило вдохновение? Тогда пишите свои шедевры в комментариях.
#юмор
Please open Telegram to view this post
VIEW IN TELEGRAM
😁8🔥3👍2
Смотря на происходящее вокруг и читая мнения людей о рынке труда, у меня невольно возник этот образ. Надеюсь, в историии это так и останется грустной шуткой.
P.S. Если что, имею водительское удостоверение категорий "B", "B1", "M". 16 лет водительского стажа. Предложения о работе направляйте в личку🙄
#юмор
P.S. Если что, имею водительское удостоверение категорий "B", "B1", "M". 16 лет водительского стажа. Предложения о работе направляйте в личку
#юмор
Please open Telegram to view this post
VIEW IN TELEGRAM
😢4🔥2😁2
⚡ CodeFest 16: а поговорить?
Спешу поделиться отличной новостью!
✅ Этой весной, 30–31 мая, в Новосибирске пройдёт ежегодная ИТ-конференция CodeFest. Это уже само по себе замечательное событие, но есть и ещё одна приятная деталь.
✅ Программный комитет утвердил меня в качестве спикера трека "Архитектура и анализ". Я выступлю с докладом на тему: «AS IS → TO BE: минимизируем риски перехода».
В рамках выступления мы обсудим переходные требования: их природу, виды, возможные последствия игнорирования и многое другое. Более подробную информацию вы найдёте в описании. Приходите!
#анонсы #события #выступления #требования #проекты
Спешу поделиться отличной новостью!
В рамках выступления мы обсудим переходные требования: их природу, виды, возможные последствия игнорирования и многое другое. Более подробную информацию вы найдёте в описании. Приходите!
#анонсы #события #выступления #требования #проекты
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍2👌2
Эта памятная доска прекрасно иллюстрирует идею, что иногда полезно в спецификации/ТЗ явно прописывать то, что точно не стоит ожидать после реализации ☝️🙄
Для этих целей стоит предусмотреть отдельный раздел документа, назвав его, например, "Ограничения и допущения".
Но зачем вообще описывать то, что делать не планируется? Я выделяю две основные причины.
В общем, как ни крути, сплошная польза
#требования
Please open Telegram to view this post
VIEW IN TELEGRAM
💯5👍3🔥2
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍2🤝2🤩1
Сегодня хочу рассказать о нескольких ключевых словах JSON Schema, польза которых может быть на первый взгляд сомнительной. На конкретных примерах, хоть и выдуманных🙄, убедимся, что в жизни эти ключевые слова вполне могут пригодиться.
Позволяет ограничивать кратность числовых значений заданному числу. Если по-простому: проверяемое значение должно без остатка делиться указанное вами. Примеры:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"minutes" : {
"type": "integer",
"multipleOf": 15
}
}
}{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"area" : {
"type": "number",
"multipleOf": 0.1
}
}
}{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"price" : {
"type": "number",
"multipleOf": 0.01,
"minimum": 0,
"exclusiveMinimum": true
}
}
}{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"capacity" : {
"type": "number",
"minimum": 0,
"exclusiveMinimum": true,
"maximum": 2.5,
"exclusiveMaximum": true,
"multipleOf": 0.5
}
}
}Ограничивает значение поля единственным значением. Формально использование const эквивалентно использованию enum с одним единственным значением, но const позволяет выстраивать более гибкие условия. Пример:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"role" : {
"type": "string",
"oneOf": [
{"const": "seller"},
{"const": "cashier"}
]
}
}
}Позволяет задать условия проверки полей. Например, мы можем проверить значение и в зависимости от результата проверки потребовать выполнение других условий. Пример:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"order_status": { "enum": ["pending", "processing", "paid"] },
"payment_details": {
"type": "object",
"properties": {
"account_number": { "type": "string" },
"amount_paid": { "type": "number" }
},
"required": ["account_number", "amount_paid"]
}
},
"if": {
"properties": { "order_status": { "const": "paid" } }
},
"then": {
"required": ["payment_details"]
},
"else": {}
}Позволяет запретить использование конкретных значений или целых групп значений. Использование not полезно, когда проще описать исключение, чем правило. Примеры:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"name" : {
"type": "string",
"not": { "enum": ["admin", "root", "guest"] }
}
}
}{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"title": {
"type": "string",
"minLength": 1,
"not": { "pattern": "^\\s*$" }
}
}
}#проектирование #интеграции #сервисы #форматы
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍5🏆2
🤖 Схематрон: что это и зачем
В довольно заметной части актуальных вакансий можно натолкнуться на требования владения XML и XSD, что намекает на их стабильную востребованность. Вот чего ни разу не встречал в вакансиях — ни сейчас, ни ранее — так это упоминания Схематрона.
Тем не менее, Схематрон — чрезвычайно полезный инструмент, позволяющий проверять данные на соответствие гораздо более гибким правилам, нежели стандартные XSD-схемы.
Не берусь утверждать, что Schematron своими возможностями превосходит популярную JSON Schema для JSON, но всё же благодаря ему становится возможным выполнение комплексных проверок, зависящих от контекста данных внутри XML.
Позволю себе процитировать Википедию.
Я сам впервые столкнулся со Схематроном года четыре назад, разбираясь со свежим тогда API налоговой службы. Сейчас не скажу наверняка, применяют ли в ФНС его по-прежнему, но вполне допускаю такую возможность. Тем более что потребность в валидации данных явно никуда не исчезнет.
Если заинтересовало, то советую посмотреть эту коротенькую статью на Хабре. А далее уже можно углубляться и идти на официальный сайт (правда без посторонних инструментов с доступом к нему из РФ могут быть проблемы).
#форматы #интеграции #сервисы
В довольно заметной части актуальных вакансий можно натолкнуться на требования владения XML и XSD, что намекает на их стабильную востребованность. Вот чего ни разу не встречал в вакансиях — ни сейчас, ни ранее — так это упоминания Схематрона.
Тем не менее, Схематрон — чрезвычайно полезный инструмент, позволяющий проверять данные на соответствие гораздо более гибким правилам, нежели стандартные XSD-схемы.
Не берусь утверждать, что Schematron своими возможностями превосходит популярную JSON Schema для JSON, но всё же благодаря ему становится возможным выполнение комплексных проверок, зависящих от контекста данных внутри XML.
Позволю себе процитировать Википедию.
Schematron — язык разметки, предназначенный для проверки правильности содержимого XML документов, основанный на правилах, использует XPath и генерацию XSLT. Стандарт ISO/IEC 19757-3:2006.
Я сам впервые столкнулся со Схематроном года четыре назад, разбираясь со свежим тогда API налоговой службы. Сейчас не скажу наверняка, применяют ли в ФНС его по-прежнему, но вполне допускаю такую возможность. Тем более что потребность в валидации данных явно никуда не исчезнет.
Если заинтересовало, то советую посмотреть эту коротенькую статью на Хабре. А далее уже можно углубляться и идти на официальный сайт (правда без посторонних инструментов с доступом к нему из РФ могут быть проблемы).
#форматы #интеграции #сервисы
🔥6👍2❤1🙏1
Оказывается, месяц назад обо мне выходил пост у Hackathon Raptors 🦖 И как я это пропустил?🤔
#достижения #события #судейства
https://www.linkedin.com/feed/update/urn:li:ugcPost:7442297239508615168/
#достижения #события #судейства
https://www.linkedin.com/feed/update/urn:li:ugcPost:7442297239508615168/
LinkedIn
#sudomakeworld #systemintegration #systems #ai #llms #rag #scalability #api #sudomakeworld #hackathon #opensource #systemdesign…
⭐ Introducing our Judge — Roman Seleznev
We were honored to have Roman Seleznev, Senior/Lead Systems Analyst at Sberbank, serve as a judge for #sudomakeworld. Roman brought deep expertise in #systemintegration, AI-powered applications, and designing enterprise…
We were honored to have Roman Seleznev, Senior/Lead Systems Analyst at Sberbank, serve as a judge for #sudomakeworld. Roman brought deep expertise in #systemintegration, AI-powered applications, and designing enterprise…
🔥3👍2🤯2🏆1
🧮 Алгоритмы, структуры данных и пельмени
Когда-то давно, на одном из первых уроков УПК(про такой школьный предмет помнят разве что только олды) , нам дали определение термина "алгоритм". Я до сих пор помню его наизусть.
Сегодня я решил привести это определение не для того, чтобы похвастаться хорошей памятью. Цель в другом — поделиться своими соображениями и материалами для развития.
Если аналитик не понимает, что такое алгоритм, если он не способен структурно и пошагово изложить логику решения задачи, то польза от такого специалиста вызывает вопросы.
По этой причине, проводя собеседования, я часто прошу кандидата дать определение "алгоритму" своими словами, а после даю задание проговорить вслух простейший алгоритм вроде варки пельменей 🥟 или кипячения воды в чайнике 🫖.
Помимо этого, особенно если аналитик высокогрейдовый, будет совсем недурственно понимать, что такое сложность алгоритма, O-нотация и знать основные структуры данных. А с этим вам поможет эта статья. Рекомендую! 😉
#статьи #термины #данные #алгоритмы
Когда-то давно, на одном из первых уроков УПК
Алгоритм — это понятное и точное указание исполнителю совершить последовательность действий, направленных на выполнение поставленной задачи.
Сегодня я решил привести это определение не для того, чтобы похвастаться хорошей памятью. Цель в другом — поделиться своими соображениями и материалами для развития.
Если аналитик не понимает, что такое алгоритм, если он не способен структурно и пошагово изложить логику решения задачи, то польза от такого специалиста вызывает вопросы.
По этой причине, проводя собеседования, я часто прошу кандидата дать определение "алгоритму" своими словами, а после даю задание проговорить вслух простейший алгоритм вроде варки пельменей 🥟 или кипячения воды в чайнике 🫖.
Помимо этого, особенно если аналитик высокогрейдовый, будет совсем недурственно понимать, что такое сложность алгоритма, O-нотация и знать основные структуры данных. А с этим вам поможет эта статья. Рекомендую! 😉
#статьи #термины #данные #алгоритмы
👍4🤯2💯2
Ⓜ M-shaped: расширяем словарный запас
Наверняка многие из вас слышали, что нужно стремиться стать T-shaped специалистом. Сам я тоже часто сталкивался с этой идеей и считал её вполне обоснованной. Но буквально сегодня услышал, что теперь гораздо правильнее быть M-shaped🙈
Что это вообще означает? Думаю, пересказывать саму концепцию не лучший выход. Проще сразу поделиться полезными ресурсами👇
🙂 Если хотите быстро познакомиться с этой новой моделью, почитайте вот эту статью: https://www.rbc.ru/education/07/11/2025/6905df819a7947dd6c6fb913
🙂 Но если интересуетесь деталями и личным опытом, рекомендую посмотреть это видео: https://youtu.be/ExvUFrHuBHM?si=xP4QCkSW01oVG2dG
Мне оно очень понравилось, многое стало понятно, и точно есть над чем поразмыслить.
#карьера #статьи #видео
Наверняка многие из вас слышали, что нужно стремиться стать T-shaped специалистом. Сам я тоже часто сталкивался с этой идеей и считал её вполне обоснованной. Но буквально сегодня услышал, что теперь гораздо правильнее быть M-shaped
Что это вообще означает? Думаю, пересказывать саму концепцию не лучший выход. Проще сразу поделиться полезными ресурсами
Мне оно очень понравилось, многое стало понятно, и точно есть над чем поразмыслить.
#карьера #статьи #видео
Please open Telegram to view this post
VIEW IN TELEGRAM
РБК
Пришло время M-shaped. Что это за специалисты и почему они вам необходимы
Научно-технический прогресс ускоряется. Это подталкивает компании к открытию новых направлений и порождает спрос на экспертов, обладающих знаниями на стыке дисциплин. Василий Лебедев (Школа инноваций
👍2🔥2🏆1
Что происходит, когда компания принимает решение прекратить развитие функционала какой-нибудь информационной системы? Казалось бы, жизнь становится проще: новые фичи не появляются, нагрузка на команду снижается, можно расслабиться... Ан нет!
Оказывается, что даже остановив развитие функциональности, команда продолжает получать постоянные задания на обновление её компонентов и приведение архитектуры в соответствие с действующими стандартами
Фокус в том, что ваша разработка не живёт в вакууме. У неё есть элементы вроде библиотек и обязательных компонентов журналирования и мониторинга, а вокруг — внешняя среда в виде политик, арх. стандартов, базовых образов и сопряжённых внешних систем.
И всё это добро живёт своей жизнью: API меняются, в сторонних компонентах находят уязвимости, после чего их надо обновлять, вводятся новые требования к эксплуатирующимся системам и т.д.
☝️ Отсюда мораль: заморозка функциональности вовсе не означает статику, а границы системы — это не предел, а источник постоянных задач.
Знакомо? Если да, поделитесь в комментариях своим опытом и впечатлениями.
#системныйподход
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥1🏆1
☠ История про 12000 часов, или как угробить компанию
Сегодня хочу с вами поделиться реальным случаем из жизни одной компании. Компании, которой больше нет.
В угоду желанию заполучить контракт там решили уложиться к нужному сроку с нужными трудозатратами, отринув здравый смысл и ранее полученные от специалистов оценки. Закончилось всё плохо.
Заинтриговал? Тогда рекомендую обратиться к отрезвляющей👉 статье
#методыуправления #статьи
Сегодня хочу с вами поделиться реальным случаем из жизни одной компании. Компании, которой больше нет.
В угоду желанию заполучить контракт там решили уложиться к нужному сроку с нужными трудозатратами, отринув здравый смысл и ранее полученные от специалистов оценки. Закончилось всё плохо.
Заинтриговал? Тогда рекомендую обратиться к отрезвляющей
#методыуправления #статьи
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3💯3👍2❤1
На прошлой неделе на работе я решил, что мне не хватает адреналина, и дважды подряд наступил на одни и те же грабли
Сценарий классический: сжатые сроки, решение — сложное, многое проходим впервые, куча интеграций, чтобы собрать нужные данные. А параллельно заказчики доводят клиентский путь до блеска. Всё как мы любим.
И вот в процессе возникает красивое требование переводить пользователя на то или иное место в системе, если он кликнет на описание продукта. Критерий — вид продукта. Звучит просто, да? Да и верхнеуровнево всё выглядит пристойно. Смежники тоже настраивают на оптимистичный лад: тип продукта есть, мы работаем в одном домене, говорим на одном языке
Но тут начинается самое интересное. Когда я начал копать вглубь, оказалось, что реальность — это не то, чем кажется
Выяснилось:
Но почему? Классификацию смежные команды вводили довольно давно для своих локальных задач, и их "номенклатуры" ложится на нашу примерно так же, как попытка зарядить старенький iPhone через USB-шный шнурок коллеги.
Стадии принятия неизбежного прошли по классике: гнев ("Как так?!"), отрицание ("Этого не может быть, у нас же есть стандартизованная типизация...") и торг ("А может, всё-таки можно как-то..?").
Торг, кстати, провалился с треском. Пришлось выкручиваться самому и придумывать варианты 🛠️ на своей стороне.
Даже если команды сидят в одном офисе, решают задачи одного бизнес-заказчика и говорят на одном языке, их словари могут отличаться до неузнаваемости.
А раз так, то пока вы не докопались до сути и не подтвердили всё сами, заверения смежников о том, что "это есть" — это лишь иллюзия.
#статьи #психология #мозг
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍2🤔1🙏1
🔥 CodeFest 16: начало
Всем доброго сибирского утра! На площадке Экспоцентра стартовала конференция CodeFest.
В этом году, как и ранее, на CodeFest открыты двери 8 параллельно действующих залов. Однако в этот раз организаторы решили отойти от привычного деления на секции. Программа свëрстана, как говорится на официальном сайте, "вокруг инженерных и продуктово-управленческих дициплин, а также сквозных тем" 🤔
На практике это означает, что все доклады, квартирки и выступления в других форматах можно отнести к тому или иному довольно объëмному треку: "Горизонты технологий", "Технологии и фреймворки", "Базы данных", "Дизайн и пользовательский опыт" и т.д.
Моё выступление будет проходить в рамках трека "Архитектура и анализ". Этот трек оказался таким ëмким, что порою относящиеся к нему доклады, будут проходить в двух разных залах параллельно.
Второй день тоже обещает быть насыщенным. Но это будет завтра. А пока я осмотрелся на местности и занял место поудобнее на открывающем докладе первого дня конференции. Тема интригует: "Электрические автомобили: на пороге технологической сингулярности".
#события #выступления #анонсы #требования #codefestru
Всем доброго сибирского утра! На площадке Экспоцентра стартовала конференция CodeFest.
В этом году, как и ранее, на CodeFest открыты двери 8 параллельно действующих залов. Однако в этот раз организаторы решили отойти от привычного деления на секции. Программа свëрстана, как говорится на официальном сайте, "вокруг инженерных и продуктово-управленческих дициплин, а также сквозных тем" 🤔
На практике это означает, что все доклады, квартирки и выступления в других форматах можно отнести к тому или иному довольно объëмному треку: "Горизонты технологий", "Технологии и фреймворки", "Базы данных", "Дизайн и пользовательский опыт" и т.д.
Моё выступление будет проходить в рамках трека "Архитектура и анализ". Этот трек оказался таким ëмким, что порою относящиеся к нему доклады, будут проходить в двух разных залах параллельно.
Второй день тоже обещает быть насыщенным. Но это будет завтра. А пока я осмотрелся на местности и занял место поудобнее на открывающем докладе первого дня конференции. Тема интригует: "Электрические автомобили: на пороге технологической сингулярности".
#события #выступления #анонсы #требования #codefestru
🔥2🏆2❤1👍1
🚀 CodeFest 16: выступил!
Недавно завершил своё выступление на тему "AS IS → TO BE: минимизируем риски перехода".
Доклад, который услышали участники, содержит обобщение знаний и опыта, которые я накапливал многие годы. И буквально по крупицам. Однако этих крупиц собралось столько, что встал вопрос, как уложиться в фиксированный слот для выступления и не потерять важное. Надеюсь, всё получилось.
Теперь делюсь впечатлениями.
Аудитория встретила выступление доброжелательно. Время на сцене для меня пролетело довольно быстро. После самой речи вопросы аудитории плавно перетекли в кулуары и ещё минут 15 обсуждали рабочие кейсы. И это здорово, значит тема нашла отклик, "зашла"!
P.S. Пишу эти строки, уже на следующем выступлении. Решил не пропускать мастер-класс по лидерству. Ну а что, надо расти😉
#события #выступления #требования #codefestru
Недавно завершил своё выступление на тему "AS IS → TO BE: минимизируем риски перехода".
Доклад, который услышали участники, содержит обобщение знаний и опыта, которые я накапливал многие годы. И буквально по крупицам. Однако этих крупиц собралось столько, что встал вопрос, как уложиться в фиксированный слот для выступления и не потерять важное. Надеюсь, всё получилось.
Теперь делюсь впечатлениями.
Аудитория встретила выступление доброжелательно. Время на сцене для меня пролетело довольно быстро. После самой речи вопросы аудитории плавно перетекли в кулуары и ещё минут 15 обсуждали рабочие кейсы. И это здорово, значит тема нашла отклик, "зашла"!
P.S. Пишу эти строки, уже на следующем выступлении. Решил не пропускать мастер-класс по лидерству. Ну а что, надо расти😉
#события #выступления #требования #codefestru
👍5🔥2🏆2