А вот реклама, за которую точно не стыдно: курс Ветчинкина я проходил сам, и считаю на данный момент лучшим по теме микросервисной архитектуры.
Для аналитиков, проектирующих решения, интеграции или описывающих сервисы, отличный уровень погружения: не слишком технический и не слишком общий. На курсе очень много практики, и, что важно — на каждое задание даётся образец решения от автора, что не всегда встретишь.
И ещё мне очень понравился переход и увязка разных уровней рассмотрения: от высокоуровневых решений и нефункциональных требований, до организации команд вокруг сервисов и быстрых примеров, как какая-то концепция может в коде выглядеть.
В общем, от всей души рекомендую!
Для аналитиков, проектирующих решения, интеграции или описывающих сервисы, отличный уровень погружения: не слишком технический и не слишком общий. На курсе очень много практики, и, что важно — на каждое задание даётся образец решения от автора, что не всегда встретишь.
И ещё мне очень понравился переход и увязка разных уровней рассмотрения: от высокоуровневых решений и нефункциональных требований, до организации команд вокруг сервисов и быстрых примеров, как какая-то концепция может в коде выглядеть.
В общем, от всей души рекомендую!
🔥13👍4💩1
Пока искал материалы к посту по историю системных аналитиков, натолкнулся на упоминание "легендарного" Лесли Маттиса (Leslie H. Matthies), "названного "Systems Man of the Year" в 1959 году Национальной Ассоциацией Системного Менеджмента".
Ни следов этой ассоциации, ни упоминаний Леса Маттиса нигде найти не удается, кроме его книг и некролога 2000 года на сайте города Талса в Оклахоме.
Между тем, по-видимому, он первым предложил формат текстового описания деятельности, напоминающий Use Case. И сделал это как раз где-то в середине 50-х. Кто-то даже утверждает, что именно этим форматом вдохновились создатели COBOL (прадедушки всех современных высокоуровневых языков программирования), но достоверно установить это теперь трудно.
Формат этот назывался "Сценарий процедуры" — 'Playnoscript procedure'. Слова "процесс" тогда ещё в языке менеджмента не было, а слов "use case" и подавно. Сценарий же произошел вот откуда: Маттис по образованию был журналистом, а после университета пробовал себя в написании сценариев к пьесам, пока его не наняли во время Второй мировой на авиационный завод кем-то вроде технического писателя — составлять и оптимизировать инструкции к технологическим операциям.
Сценарии выглядели именно как сценарии пьесы: тема и действия акторов.
Каждое действие было пронумеровано, и начиналось с глагола, за которым следует существительное — объект работы; структура: "актор что-то делает с чем-то".
Наиболее часто используемые глаголы ("14 рабочих лошадок сценария"): sends, shows, issues, obtains, records, provides, prepares, uses, checks, places, decides, receives, forwards, requests.
Там же содержится словарь по переводу с бюрократического языка ("Procedur-e-z-e") на обычный:
compilation -> list
classification -> like stuff together
design -> figure out
establish -> set up
increments -> pieces
justification -> reason for
processed -> work on it
procurement -> gets
requirements -> what is needed
sufficient -> enough
и т.д.
Как не хватает такого словаря при составлении требований и юскейсов сейчас!
Ни следов этой ассоциации, ни упоминаний Леса Маттиса нигде найти не удается, кроме его книг и некролога 2000 года на сайте города Талса в Оклахоме.
Между тем, по-видимому, он первым предложил формат текстового описания деятельности, напоминающий Use Case. И сделал это как раз где-то в середине 50-х. Кто-то даже утверждает, что именно этим форматом вдохновились создатели COBOL (прадедушки всех современных высокоуровневых языков программирования), но достоверно установить это теперь трудно.
Формат этот назывался "Сценарий процедуры" — 'Playnoscript procedure'. Слова "процесс" тогда ещё в языке менеджмента не было, а слов "use case" и подавно. Сценарий же произошел вот откуда: Маттис по образованию был журналистом, а после университета пробовал себя в написании сценариев к пьесам, пока его не наняли во время Второй мировой на авиационный завод кем-то вроде технического писателя — составлять и оптимизировать инструкции к технологическим операциям.
Сценарии выглядели именно как сценарии пьесы: тема и действия акторов.
Каждое действие было пронумеровано, и начиналось с глагола, за которым следует существительное — объект работы; структура: "актор что-то делает с чем-то".
Наиболее часто используемые глаголы ("14 рабочих лошадок сценария"): sends, shows, issues, obtains, records, provides, prepares, uses, checks, places, decides, receives, forwards, requests.
Там же содержится словарь по переводу с бюрократического языка ("Procedur-e-z-e") на обычный:
compilation -> list
classification -> like stuff together
design -> figure out
establish -> set up
increments -> pieces
justification -> reason for
processed -> work on it
procurement -> gets
requirements -> what is needed
sufficient -> enough
и т.д.
Как не хватает такого словаря при составлении требований и юскейсов сейчас!
❤33🔥7👍2👏1
Это из книги The Playnoscript Procedure, 1961 год.
А ещё в книге есть оценки зрелости процедур, обзор типовых ошибок и процедуры вокруг процедур (нумерация, индексирование, версионирование, контроль актуальности, пересмотр, изъятие устаревших).
В общем, всё, о чём мы говорим в связи с требованиями, вариантами использования или бизнес-процессами, известно (и забыто) ещё с 50-х годов.
Слов 'systems analyst' там нет, людей в этой роли называют 'Systems Men', "системщики".
Книгу можно взять почитать(!) на часок вот тут: https://archive.org/details/playnoscriptproced0000leli
А ещё в книге есть оценки зрелости процедур, обзор типовых ошибок и процедуры вокруг процедур (нумерация, индексирование, версионирование, контроль актуальности, пересмотр, изъятие устаревших).
В общем, всё, о чём мы говорим в связи с требованиями, вариантами использования или бизнес-процессами, известно (и забыто) ещё с 50-х годов.
Слов 'systems analyst' там нет, людей в этой роли называют 'Systems Men', "системщики".
Книгу можно взять почитать(!) на часок вот тут: https://archive.org/details/playnoscriptproced0000leli
Internet Archive
the playnoscript procedure: a new tool fo administration : lelie h. matthies : Free Download, Borrow, and Streaming : Internet Archive
❤26🔥4👍3
Чему аналитики могут научиться у сценаристов и режиссеров.
В комментарии к посту про Playnoscript Алина Миронова пишет, как ей помогает в системном анализе образование и паттерны мышления сценариста игрового кино:
1. Переход между крупным планом и общим, навык мысленного приближения и отдаления.
2. С одной стороны, не должно быть ничего лишнего, с другой — нужно подвесить чеховское ружье, которое сработает потом.
3. Описание только действий и реакций (пользователь не может догадаться о внутреннем состоянии системы, он может только увидеть что-то).
4. Думать о том, кто это будет читать.
5. Навык придумывания концовок и альтернатив.
Я бы к этому добавил несколько идей, которые я почерпнул, в основном, в канале знакомого сценариста. Они применимы к системному анализу, а точнее — к форме представления результатов, т.к. это тоже литература — не художественная, техническая, - но есть и общие литературные приёмы, обусловленные хотя бы способом восприятия текста - протяженном во времени. Текст не загружается в голову целиком, текст воспринимается читателем в течение времени, и этим восприятием можно (и нужно!) управлять. И вот какие тут есть аспекты:
👀 Чьими глазами мы смотрим в данный момент? Вот этот текст, он с чьей точки зрения написан? С точки зрения пользователя? Или с точки зрения программиста системы? Или с точки зрения DevSecOps инженера? Нельзя в одном описании перескакивать с одной точки зрения на другую. Вообще, у нас про точки зрения целый стандарт есть: ISO 42010 или ГОСТ Р 57100 "Systems and software engineering. Architecture denoscription".
🥸 Кто в какой момент что знает? У сценария это называется "драматическая структура", у проектного документа — просто структура. Есть три лица: автор, пользователь системы и читатель документа. Информация между ними распределена неравномерно: автор знает о системе и её сценариях почти всё, пользователь — только то, что может понять из взаимодействия с системой, читатель — то, что успел узнать из текста. Соотношение этих знаний определяет структуру истории, но и для технических документов было бы неплохо помнить — что мы уже рассказали читателю, а что ещё нет; что уже знает пользователь на каком-то экране, а что от него скрыто.
🏁 Когда заканчивается сцена? Это в проектировании применимо для пользовательских сценариев и бизнес-процессов. Ответ сценариста: сцена заканчивается, когда один из участников достигает своей мини-цели. У каждого участника сценария есть своя мини-цель, если участников много - из этих целей рождается мини-конфликт. Как только цель достигнута, персонажу больше нечего в ней делать — сцена закончилась. Это первый уровень. Второй — сцена заканчивается, когда в ней произошло то, что нужно вам, как проектировщику системы. А вам, как правило, нужно либо подготовить материал для дальнейшего развития сюжета, либо чтобы пользователь что-то понял и, например, приобрел мотив к дальнейшим действиям.
⚔️ Про конфликты и связи между участниками. В составе ролей пользователей (исполнителей процессов, стейкхолдеров — особенно стейкхолдеров!) не должно быть лишних людей. Все должны быть связаны друг с другом через конфликт или через поддержку/заботу. При этом, если мы смотрим с точки зрения главного героя — у него есть те, кто "выше"-главнее, кто его контролирует, кому он отчитывается, и те, кто "ниже": о ком он заботится, кому ставит задачи и т.п. Все должны быть свзязаны со всеми. Помним, что система только лишь отражает взаимодействия между людьми, системы нет — а конфликты и отношения всё равно есть. Хорошо бы их зафиксировать в явном виде, осознанно. (Ещё есть версия, что основные линии конфликта должны составлять треугольник — это верно для драматургии, уж не знаю, насколько это применимо к системному анализу).
♾ Проектирование от конца к началу. Сначала сформулируйте желаемый результат операции. Её финал. К чему мы должны прийти в итоге? Сформулируйте это состояние. Потом начинайте распутывать по шагам от конца к началу — а что было было перед этим? А за шаг до этого? Кто что должен был сделать? Когда понятная цель, проще становится привести к ней всех участников.
В комментарии к посту про Playnoscript Алина Миронова пишет, как ей помогает в системном анализе образование и паттерны мышления сценариста игрового кино:
1. Переход между крупным планом и общим, навык мысленного приближения и отдаления.
2. С одной стороны, не должно быть ничего лишнего, с другой — нужно подвесить чеховское ружье, которое сработает потом.
3. Описание только действий и реакций (пользователь не может догадаться о внутреннем состоянии системы, он может только увидеть что-то).
4. Думать о том, кто это будет читать.
5. Навык придумывания концовок и альтернатив.
Я бы к этому добавил несколько идей, которые я почерпнул, в основном, в канале знакомого сценариста. Они применимы к системному анализу, а точнее — к форме представления результатов, т.к. это тоже литература — не художественная, техническая, - но есть и общие литературные приёмы, обусловленные хотя бы способом восприятия текста - протяженном во времени. Текст не загружается в голову целиком, текст воспринимается читателем в течение времени, и этим восприятием можно (и нужно!) управлять. И вот какие тут есть аспекты:
🏁 Когда заканчивается сцена? Это в проектировании применимо для пользовательских сценариев и бизнес-процессов. Ответ сценариста: сцена заканчивается, когда один из участников достигает своей мини-цели. У каждого участника сценария есть своя мини-цель, если участников много - из этих целей рождается мини-конфликт. Как только цель достигнута, персонажу больше нечего в ней делать — сцена закончилась. Это первый уровень. Второй — сцена заканчивается, когда в ней произошло то, что нужно вам, как проектировщику системы. А вам, как правило, нужно либо подготовить материал для дальнейшего развития сюжета, либо чтобы пользователь что-то понял и, например, приобрел мотив к дальнейшим действиям.
⚔️ Про конфликты и связи между участниками. В составе ролей пользователей (исполнителей процессов, стейкхолдеров — особенно стейкхолдеров!) не должно быть лишних людей. Все должны быть связаны друг с другом через конфликт или через поддержку/заботу. При этом, если мы смотрим с точки зрения главного героя — у него есть те, кто "выше"-главнее, кто его контролирует, кому он отчитывается, и те, кто "ниже": о ком он заботится, кому ставит задачи и т.п. Все должны быть свзязаны со всеми. Помним, что система только лишь отражает взаимодействия между людьми, системы нет — а конфликты и отношения всё равно есть. Хорошо бы их зафиксировать в явном виде, осознанно. (Ещё есть версия, что основные линии конфликта должны составлять треугольник — это верно для драматургии, уж не знаю, насколько это применимо к системному анализу).
♾ Проектирование от конца к началу. Сначала сформулируйте желаемый результат операции. Её финал. К чему мы должны прийти в итоге? Сформулируйте это состояние. Потом начинайте распутывать по шагам от конца к началу — а что было было перед этим? А за шаг до этого? Кто что должен был сделать? Когда понятная цель, проще становится привести к ней всех участников.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25👍5❤1
📝 Экспозиция сеттинга, или установка "правил игры". Тут могут быть разные подходы, но в любом случае, так или иначе, мы должны ввести читателя в курс дела. Мы можем это делать сразу одним куском, или разбивая на части и помещая введение и объяснение перед очередными несколькими элементами, в которых используется это очередное правило. И наоборот — когда мы описываем какой-то процесс, мы до этого должны представить читателю сеттинг, в рамках которого это происходит. Это у нас кто? Это они делают зачем? Используя что? По каким правилам?
📈 Темпо-ритм документа. Если мы подразумеваем, что хоть кто-нибудь хоть когда-нибудь будет линейно читать наш документ, стоит задуматься про его темп и ритм (скорость и внутренние циклы). В техническом тексте это регулируется длиной и подробностью блоков, переходов с одной темы на другую. Темпо-ритм придумал Станиславский ("нарастание или спад, ускорение или замедление, плавное течение или бурное развитие сценического действия"). В первом приближении это означает, что вообще что-то должно меняться. Если весь текст состоит из однообразных блоков — получается сплошное однотонное бу-бу-бу, читатель от этого быстро устаёт и перестаёт различать их. Нужно как-то чередовать. Тут можно вспомнить принципы визуального монтажа "по крупности": нельзя монтировать встык планы одной или смежной крупности (кроме сочетания "крупный план-деталь"), нужно монтировать через план.
Можно попробовать применить это и к тексту: сначала даём общий план, потом приближаемся, углубляемся в детали, отдаляемся, уходим опять к общему — и снова, так создаётся определенный ритм.
А какие ещё идеи можно применить к технической документации из области литературного творчества?
Можно попробовать применить это и к тексту: сначала даём общий план, потом приближаемся, углубляемся в детали, отдаляемся, уходим опять к общему — и снова, так создаётся определенный ритм.
А какие ещё идеи можно применить к технической документации из области литературного творчества?
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍3
Регулярные выражения, RegEx или RegExp.
Написал для участников тренинга, вдруг вам тоже пригодится.
Интересно, что у аналитиков регулярно встречается запрос на SQL (и на собеседованиях дают задачки на него), а вот про регулярные выражения почему-то не вспоминают. То ли они аналитикам не нужны, то ли считается, что это знание "по умолчанию", ну что про них говорить :) Между тем, я вижу на курсах, что многие аналитики вообще про них не знают, а они начинают всплывать при интеграциях: при валидации параметров входящих сообщений (pattern в схеме данных в OpenAPI), при мэппинге данных, при указании имен файлов в файловом обмене.
Это специальный язык, через который можно задать условия для текста. То есть, найти в тексте такую подстроку, которая удовлетворяет этим условиям.
Для чего может использоваться:
🔹 проверка формата текстового значения (валидация — например, в json schema или xsd, причём валидировать можно как значения, так и названия полей);
🔹 поиск (например, в текстовом файле, CSV, таблице Excel или в БД);
🔹 извлечение подстроки из текста;
🔹 подсчет числа вхождений, соответствующих маске;
🔹 замена подстроки, подходящей под маску;
🔹 очистка данных (удаление кавычек, двойных пробелов, скобок и т.п., извлечение значений: ФИО, дат, телефонов, URL, email)
Регэкспы распространены повсеместно: от утилиты командной строки grep, выполняющей поиск в файлах и постоянно использующейся программистами и админами (отсюда глагол "грепать", "грепнуть" — получить подмножество соответствующих строк из исходного файла), до библиотек во всех языках программирования, функций в SQL, инструментов поиска в текстовых редакторах и интернет-поисковиках.
Синтаксис регулярных выражений стандартизован как часть стандарта POSIX. На практике чаще применяется более мощный PCRE, родом из языка Perl, так что в каждой конкретной системе синтаксис выражений может немного отличаться.
Движки выполнения хорошо оптимизированы и работают быстро; под регулярными выражениями лежит хорошая математика, и в среднем их вычислительная сложность линейна — O(n) — но можно написать такое выражение, которое надолго завесит ваш поиск :)
Язык задания паттернов в своей основе прост:
— просто набор символов -> полное совпадение с учетом регистра (по умолчанию. можно отключить учёт регистра)
— . -> любой символ
— вертикальная палка | -> одно или другое: елка|ёлка
— скобки -> область действия и последовательность операторов, как в математике: (е|ё)лка, Ната(л(ь|и)я|ша)
— квадратные скобки -> любой из указанных символов: [её]лка, Натал[ьи]я, [0-9] - цифры, [A-Z] - буквы латиницы в верхнем регистре
- [^] -> отрицание, символ, не входящий в набор: [^аеёиоуэюя] означает "любой символ, кроме гласных букв".
Квантификаторы:
? -> ноль или один предыдущий символ: RegExp? найдет и RegEx, и RegExp
* -> ноль или несколько предыдущих символов
+ -> один или несколько предыдущих символов
{n} -> повтор предыдущего символа n раз. {n,m} - повтор от n до m раз
^ и $ -> начало и конец строки. \w — слово, \b — граница слова (но только для английского языка!).
Пример: ^(?:\d{3}-){2}\d{4}$ - строка, содержащая телефонный номер. Или так: ^[0-9]{3}-[0-9]{3}-[0-9]{4}$.
Дальше начинается сплошной драконий покер: можно искать слово X, за которым не следует слово Y; строки, в которых упоминается Z, но не упоминается W, и так далее. Инструмент невероятно мощный, можно с ним удивительные вещи делать. Правда, разобраться в уже готовых регэкспах бывает сложно, их обзывают write only, а выглядят они, как шифр на клингонском.
Почитать вводную статью на русском: https://techrocks.ru/2022/05/31/regex-complete-guide/
Пройти подробнейший tutorial на английском: https://www.regular-expressions.info/tutorial.html
Попробовать составить и поотлаживать регулярные выражения: https://regex101.com/
Вот тут примеры пожестче: https://habr.com/ru/articles/349860/
Кстати, ChatGPT умеет по текстовому описанию умеет строить регулярные выражения (но рекомендую проверять, как обычно — он может и ошибок насажать).
Написал для участников тренинга, вдруг вам тоже пригодится.
Интересно, что у аналитиков регулярно встречается запрос на SQL (и на собеседованиях дают задачки на него), а вот про регулярные выражения почему-то не вспоминают. То ли они аналитикам не нужны, то ли считается, что это знание "по умолчанию", ну что про них говорить :) Между тем, я вижу на курсах, что многие аналитики вообще про них не знают, а они начинают всплывать при интеграциях: при валидации параметров входящих сообщений (pattern в схеме данных в OpenAPI), при мэппинге данных, при указании имен файлов в файловом обмене.
Это специальный язык, через который можно задать условия для текста. То есть, найти в тексте такую подстроку, которая удовлетворяет этим условиям.
Для чего может использоваться:
🔹 проверка формата текстового значения (валидация — например, в json schema или xsd, причём валидировать можно как значения, так и названия полей);
🔹 поиск (например, в текстовом файле, CSV, таблице Excel или в БД);
🔹 извлечение подстроки из текста;
🔹 подсчет числа вхождений, соответствующих маске;
🔹 замена подстроки, подходящей под маску;
🔹 очистка данных (удаление кавычек, двойных пробелов, скобок и т.п., извлечение значений: ФИО, дат, телефонов, URL, email)
Регэкспы распространены повсеместно: от утилиты командной строки grep, выполняющей поиск в файлах и постоянно использующейся программистами и админами (отсюда глагол "грепать", "грепнуть" — получить подмножество соответствующих строк из исходного файла), до библиотек во всех языках программирования, функций в SQL, инструментов поиска в текстовых редакторах и интернет-поисковиках.
Синтаксис регулярных выражений стандартизован как часть стандарта POSIX. На практике чаще применяется более мощный PCRE, родом из языка Perl, так что в каждой конкретной системе синтаксис выражений может немного отличаться.
Движки выполнения хорошо оптимизированы и работают быстро; под регулярными выражениями лежит хорошая математика, и в среднем их вычислительная сложность линейна — O(n) — но можно написать такое выражение, которое надолго завесит ваш поиск :)
Язык задания паттернов в своей основе прост:
— просто набор символов -> полное совпадение с учетом регистра (по умолчанию. можно отключить учёт регистра)
— . -> любой символ
— вертикальная палка | -> одно или другое: елка|ёлка
— скобки -> область действия и последовательность операторов, как в математике: (е|ё)лка, Ната(л(ь|и)я|ша)
— квадратные скобки -> любой из указанных символов: [её]лка, Натал[ьи]я, [0-9] - цифры, [A-Z] - буквы латиницы в верхнем регистре
- [^] -> отрицание, символ, не входящий в набор: [^аеёиоуэюя] означает "любой символ, кроме гласных букв".
Квантификаторы:
? -> ноль или один предыдущий символ: RegExp? найдет и RegEx, и RegExp
* -> ноль или несколько предыдущих символов
+ -> один или несколько предыдущих символов
{n} -> повтор предыдущего символа n раз. {n,m} - повтор от n до m раз
^ и $ -> начало и конец строки. \w — слово, \b — граница слова (но только для английского языка!).
Пример: ^(?:\d{3}-){2}\d{4}$ - строка, содержащая телефонный номер. Или так: ^[0-9]{3}-[0-9]{3}-[0-9]{4}$.
Дальше начинается сплошной драконий покер: можно искать слово X, за которым не следует слово Y; строки, в которых упоминается Z, но не упоминается W, и так далее. Инструмент невероятно мощный, можно с ним удивительные вещи делать. Правда, разобраться в уже готовых регэкспах бывает сложно, их обзывают write only, а выглядят они, как шифр на клингонском.
Почитать вводную статью на русском: https://techrocks.ru/2022/05/31/regex-complete-guide/
Пройти подробнейший tutorial на английском: https://www.regular-expressions.info/tutorial.html
Попробовать составить и поотлаживать регулярные выражения: https://regex101.com/
Вот тут примеры пожестче: https://habr.com/ru/articles/349860/
Кстати, ChatGPT умеет по текстовому описанию умеет строить регулярные выражения (но рекомендую проверять, как обычно — он может и ошибок насажать).
👍25🔥7❤1
Взялся писать пост про различные свойства систем (нефункциональные требования, фитнесс-функция и всякое такое), но столкнулся с известной проблемой великого и могучего...
С защищенностью, надежностью и точностью у нас всё просто, без нюансов — мы за всю историю эти штуки редко видели, много разных слов не успели придумать.
(Пост пишу, завтра закину).
UPD: вы не переживайте, в русском языке зато есть много слов про эмоции и отношения, эквивалентов которым нет в других языках.
С защищенностью, надежностью и точностью у нас всё просто, без нюансов — мы за всю историю эти штуки редко видели, много разных слов не успели придумать.
(Пост пишу, завтра закину).
UPD: вы не переживайте, в русском языке зато есть много слов про эмоции и отношения, эквивалентов которым нет в других языках.
😁24👎5❤2
Есть много акронимов и отдельных свойств архитектуры:
RASUI: reliability, availability, serviceability, usability and installability
Надежность, доступность, обслуживаемость, удобство использования и удобство установки.
FURPS: Functionality, usability, reliability, performance and supportability
Функциональность, удобство использования, надежность, производительность, поддерживаемость.
Agility (не путать с agile!): debuggability, extensibility, portability, scalability, securability, testability and understandability
Отлаживаемость, расширяемость, переносимость, масштабируемость, обеспечение безопасности, понятность(!)
С безопасностью есть нюанс: речь не о безопасности, как таковой, а о возможности обеспечить требуемый уровень безопасности. Кроме того, в переводах постоянно путают safety, security и protectability — всё называют "безопасность", но: если речь идёт о безопасности для пользователя (система ему не вредит) — это safety, о защищенности (чтобы систему никто не повредил) — security), о возможности обеспечить эту защищенность — securability, о защите от конкретных атак — protection и о возможности эту защиту в принципе организовать — securability (хороший термин "охраноcпособность", но зарезервирован в авторском праве).
Dependability: availability, reliability, safety, integrity and maintainability
Доступность, безотказность, безопасность, цельность и поддерживаемость.
Ещё одно сложное слово - по-русски это опять "надёжность". Reliability — это более техническая вещь, больше про отсутствие сбоев, а dependability — более широкая. В ГОСТ Р 27.102-2021 "НАДЕЖНОСТЬ ОБЪЕКТА. Термины и определения" dependability переведено как "надежность", а reliability как "безотказность".
Вы это, наверное, всё и так знаете, и знаете принцип разговора о качестве, как предлагает стандарт ISO 25000: сначала вид качества (или модель качества): качество продукта, качество данных, качество в использовании и качество ИТ-сервиса; затем — атрибуты качества (все эти -ilities); и, наконец, показатели качества — что мы объективно можем измерить. То есть, берём, к примеру, модель качества ИТ-сервиса, атрибут "доступность", а его показатели: вероятность того, что система в данный момент работоспособна, наработка на отказ, время восстановления, то есть все эти MTBF, MTTF, MTTR и т.д. Вот тут есть хорошая вводная статья (и даже с оговоркой, что MTTR может иметь 4 разных смысла!)
Говорят, что системные аналитики вообще нечасто задумываются о характеристиках качества. Мол, это всё области либо reliability engineers, либо девопсов, либо юзабилистов, либо безопасников. Или архитекторов, которые за всё отвечают.
Меня же всегда интересовали характеристики, не попадающие в распространенные классификации, но про которые может подумать аналитик. Это такие специфические вещи, которые как бы ничьи. Вот, например, доступность, но другая — та, что accessibility. Вроде кусочек из юзабилити, но на самом деле там в основном функциональные требования и требования к контенту. Или вот локализуемость, она же i18n. Там же бездны, особенно если с rtl-языками. И требования к контенту, опять же.
Дальше есть атрибуты, которые на самом деле ведут к функциональным требованиям:
1. Как мы систему развертываем, интегрируем, настраиваем и обновляем (может быть, это вопрос devops и организации deployment pipeline, а может быть у вас каждая установка у нового клиента — это отдельный проект на полгода).
Как мы приводим систему в нулевое состояние, готовое к работе? И что это за состояние — какие справочники должны быть загружены, какие первичные данные введены, что наоборот — удалено? Как мы организуем параллельную эксплуатацию, в случае надобности? (Hint: планируйте первичную загрузку данных и сброс "к нулю" как многократное действие)
2. Смежные характеристики: как мы систему можем менять и подгонять под конкретное окружение и задачу (расширяемость, интероперабельность, совместимость, наличие внешних интерфейсов, конфигурабельность, взаимозаменяемость частей)
RASUI: reliability, availability, serviceability, usability and installability
Надежность, доступность, обслуживаемость, удобство использования и удобство установки.
FURPS: Functionality, usability, reliability, performance and supportability
Функциональность, удобство использования, надежность, производительность, поддерживаемость.
Agility (не путать с agile!): debuggability, extensibility, portability, scalability, securability, testability and understandability
Отлаживаемость, расширяемость, переносимость, масштабируемость, обеспечение безопасности, понятность(!)
С безопасностью есть нюанс: речь не о безопасности, как таковой, а о возможности обеспечить требуемый уровень безопасности. Кроме того, в переводах постоянно путают safety, security и protectability — всё называют "безопасность", но: если речь идёт о безопасности для пользователя (система ему не вредит) — это safety, о защищенности (чтобы систему никто не повредил) — security), о возможности обеспечить эту защищенность — securability, о защите от конкретных атак — protection и о возможности эту защиту в принципе организовать — securability (хороший термин "охраноcпособность", но зарезервирован в авторском праве).
Dependability: availability, reliability, safety, integrity and maintainability
Доступность, безотказность, безопасность, цельность и поддерживаемость.
Ещё одно сложное слово - по-русски это опять "надёжность". Reliability — это более техническая вещь, больше про отсутствие сбоев, а dependability — более широкая. В ГОСТ Р 27.102-2021 "НАДЕЖНОСТЬ ОБЪЕКТА. Термины и определения" dependability переведено как "надежность", а reliability как "безотказность".
Вы это, наверное, всё и так знаете, и знаете принцип разговора о качестве, как предлагает стандарт ISO 25000: сначала вид качества (или модель качества): качество продукта, качество данных, качество в использовании и качество ИТ-сервиса; затем — атрибуты качества (все эти -ilities); и, наконец, показатели качества — что мы объективно можем измерить. То есть, берём, к примеру, модель качества ИТ-сервиса, атрибут "доступность", а его показатели: вероятность того, что система в данный момент работоспособна, наработка на отказ, время восстановления, то есть все эти MTBF, MTTF, MTTR и т.д. Вот тут есть хорошая вводная статья (и даже с оговоркой, что MTTR может иметь 4 разных смысла!)
Говорят, что системные аналитики вообще нечасто задумываются о характеристиках качества. Мол, это всё области либо reliability engineers, либо девопсов, либо юзабилистов, либо безопасников. Или архитекторов, которые за всё отвечают.
Меня же всегда интересовали характеристики, не попадающие в распространенные классификации, но про которые может подумать аналитик. Это такие специфические вещи, которые как бы ничьи. Вот, например, доступность, но другая — та, что accessibility. Вроде кусочек из юзабилити, но на самом деле там в основном функциональные требования и требования к контенту. Или вот локализуемость, она же i18n. Там же бездны, особенно если с rtl-языками. И требования к контенту, опять же.
Дальше есть атрибуты, которые на самом деле ведут к функциональным требованиям:
1. Как мы систему развертываем, интегрируем, настраиваем и обновляем (может быть, это вопрос devops и организации deployment pipeline, а может быть у вас каждая установка у нового клиента — это отдельный проект на полгода).
Как мы приводим систему в нулевое состояние, готовое к работе? И что это за состояние — какие справочники должны быть загружены, какие первичные данные введены, что наоборот — удалено? Как мы организуем параллельную эксплуатацию, в случае надобности? (Hint: планируйте первичную загрузку данных и сброс "к нулю" как многократное действие)
2. Смежные характеристики: как мы систему можем менять и подгонять под конкретное окружение и задачу (расширяемость, интероперабельность, совместимость, наличие внешних интерфейсов, конфигурабельность, взаимозаменяемость частей)
🔥18👍6👌1
3. Как мы систему эксплуатируем. В штатном и нештатном режиме, как входим и выходим из нештатного режима; как обеспечиваем альтернативные способы функционирования при отказе частей (business continuity plan); какие есть средства диагностики и поиска неисправностей (например, можно ли проверить отдельно работу какой-то подсистемы или функции на проде?), какие есть методы устранения сбоев? А средства прогнозирования сбоев?
4. И вот чего никогда не видел - средства вывода системы из эксплуатации.
Про фитнесс-функцию сегодня не влезло, и так телеграм на два поста побил :(
Ставьте какую-нибудь положительную реакцию, если тема интересна, и стоит продолжать.
А вы сами в какой мере сталкиваетесь с проработкой показателей качества?
4. И вот чего никогда не видел - средства вывода системы из эксплуатации.
Про фитнесс-функцию сегодня не влезло, и так телеграм на два поста побил :(
Ставьте какую-нибудь положительную реакцию, если тема интересна, и стоит продолжать.
А вы сами в какой мере сталкиваетесь с проработкой показателей качества?
🔥35👍13👌1
Продолжаем тему нефункциональных требований и атрибутов качества.
Слово Dependability, как "система, на которую можно положиться, ей можно доверять" придумал в 1981 году французский учёный Жан-Клод Лапри. К этому времени слово Reliability было уже заезжено, и обозначало всё подряд. Впрочем, по его определению, Dependability включает в себя Reliability, но в узком смысле, скорее как отказоустойчивость.
Полный список атрибутов Dependability:
➕ доступность (aviability): готовность предоставлять работающий сервис (вероятность, что система будет работать, когда мы к ней обратимся);
➕ надежность (reliability): неизменность параметров сервиса во времени;
➕ безопасность (safety): из-за сбоя не будет катастрофических последствий для пользователей и окружения;
➕ целостность (integrity): система не развалится при сбое и данные не будут искажены;
➕ ремонтопригодность (maintainability): систему можно будет починить после сбоя: обнаружить дефект, перезапустить, восстановить данные.
Иногда добавляют security, и наконец-то я нашел определение разницы: security — это про умышленные действия по нанесению вреда, тогда как safety — про отсутствие вреда в любом случае, были умышленные действия или нет. В свою очередь, вредоносные действия могут быть направлены на нарушение целостности, доступности или на раскрытие конфиденциальной информации. Эти понятия ортогональны, а не из одного ряда.
Вся модель выглядит так: атрибуты➡️ угрозы ➡️ меры.
Угрозы делятся на дефекты (fault), ошибки (error) и отказы (failure).
Дефект — это недостаток в конструкции системы; он не обязательно приводит к ошибке и сбою — возможно, система никогда не придёт в состояние, когда дефект проявится. Статическая вещь, имеется в системе уже в момент разработки.
Ошибка — несоответствие реального поведения системы указанному в спецификации. Это означает, что система приходит в непредусмотренное состояние в результате активации дефекта (возможно, связанного с нестандартными параметрами окружения или входов системы). Обнаруживается только во время работы.
Сбой — момент или интервал времени, когда система демонстрирует некорректное поведение или недоступна. То есть, это проявленная и не обработанная ошибка. Не все ошибки ведут к сбою — они могут быть, например, перехвачены обработчиком исключений.
Сбои проявляются на границах системы: в API, в интерфейсах, в выводе. Пока ошибка не превратилась в сбой, то есть не вышла за границу системы, про неё может никто и не догадываться.
В итоге, образуется цепочка: дефект➡️ ошибка ➡️ отказ, который, в свою очередь, приводит к ошибке в смежной системе и т.д.
Поэтому, с одной стороны, хорошо бы обнаруживать ошибки внутри системы, пока они ещё не привели к сбою, и хорошо бы прерывать распространение сбоя на смежные компоненты при взаимодействии. Поэтому мы особое внимание уделяем обработке ошибок при проектировании интеграций, чтобы ошибочное состояние не расползлось на всю распределенную систему. Поэтому же за корректную работу вне зависимости от степени испорченности входных данных отвечает каждый компонент самостоятельно.
Сбой в системе может привести к нарушению одного или нескольких атрибутов:
доступности, надежности, целостности, безопасности.
Слово Dependability, как "система, на которую можно положиться, ей можно доверять" придумал в 1981 году французский учёный Жан-Клод Лапри. К этому времени слово Reliability было уже заезжено, и обозначало всё подряд. Впрочем, по его определению, Dependability включает в себя Reliability, но в узком смысле, скорее как отказоустойчивость.
Полный список атрибутов Dependability:
Иногда добавляют security, и наконец-то я нашел определение разницы: security — это про умышленные действия по нанесению вреда, тогда как safety — про отсутствие вреда в любом случае, были умышленные действия или нет. В свою очередь, вредоносные действия могут быть направлены на нарушение целостности, доступности или на раскрытие конфиденциальной информации. Эти понятия ортогональны, а не из одного ряда.
Вся модель выглядит так: атрибуты
Угрозы делятся на дефекты (fault), ошибки (error) и отказы (failure).
Дефект — это недостаток в конструкции системы; он не обязательно приводит к ошибке и сбою — возможно, система никогда не придёт в состояние, когда дефект проявится. Статическая вещь, имеется в системе уже в момент разработки.
Ошибка — несоответствие реального поведения системы указанному в спецификации. Это означает, что система приходит в непредусмотренное состояние в результате активации дефекта (возможно, связанного с нестандартными параметрами окружения или входов системы). Обнаруживается только во время работы.
Сбой — момент или интервал времени, когда система демонстрирует некорректное поведение или недоступна. То есть, это проявленная и не обработанная ошибка. Не все ошибки ведут к сбою — они могут быть, например, перехвачены обработчиком исключений.
Сбои проявляются на границах системы: в API, в интерфейсах, в выводе. Пока ошибка не превратилась в сбой, то есть не вышла за границу системы, про неё может никто и не догадываться.
В итоге, образуется цепочка: дефект
Поэтому, с одной стороны, хорошо бы обнаруживать ошибки внутри системы, пока они ещё не привели к сбою, и хорошо бы прерывать распространение сбоя на смежные компоненты при взаимодействии. Поэтому мы особое внимание уделяем обработке ошибок при проектировании интеграций, чтобы ошибочное состояние не расползлось на всю распределенную систему. Поэтому же за корректную работу вне зависимости от степени испорченности входных данных отвечает каждый компонент самостоятельно.
Сбой в системе может привести к нарушению одного или нескольких атрибутов:
доступности, надежности, целостности, безопасности.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍2
Соответственно, мы можем принять меры в отношении всех этих угроз.
Видов мер 4:
1. Предотвращение. То есть, мы изначально не вносим в систему дефекты. Это ответственность системных аналитиков и тех, кто внедряет методы разработки. Аналитики тут отвечают за выявление возможных нештатных ситуаций и за контроль полноты рассмотрения всех вариантов — зачастую дефекты возникают ещё на этапе спецификации, когда не описано поведение системы в некоторой возможной ситуации. Тут же можно оценить — какие ситуации возможны и какова их вероятность, а точнее — риски (вероятность x ущерб). На этом этапе аналитик должен выяснить всё, что связано с диапазонами допустимых значений данных и эксплуатационных параметров и подумать над граничными условиями.
Сколько у нас может быть пользователей (документов/запросов/клиентов) максимально? В среднем? А сколько из них одновременно будут работать/создаваться/обрабатываться? А какой прирост в год/месяц/день/секунду? А если у нас не будет ни одного пользователя (с определенной ролью)/документа/организации/значения в справочнике? И т.д.
Иногда дефекты с проверкой значений возникают в неожиданных местах: длина имени файла, допустимые символы в учётной записи пользователя, точность округления значения с плавающей запятой, минимальное значение даты — это из того, что сам видел незамеченного уже на проде.
2. Устранение — на этапе разработки (это разные виды тестирования, ревью кода и т.д.) или на этапе эксплуатации — уже в рамках поддержки. С этой мерой аналитики обычно не сталкиваются — даже если участвуют в приёмке, фокусируются на happy path. Однако кто-то должен об этом задуматься и проверить.
3. Прогнозирование — наблюдение за параметрами системы и контроль тенденций, приводящих к возможным сбоям. Например, если у нас заканчивается место на диске, лучше узнать об этом заранее и предпринять меры. Или если растет время ответов от внешнего сервиса — это ещё не ошибка, но сигнал о возможной ошибке — так работает паттерн circuit breaker, например.
Это всё про мониторинг — как на техническом уровне, так и на бизнесовом. При этом на техническом инженерные команды часто ставят какой-нибудь Zabbix, но не настраивают прогнозирующие функции, только оповещения, когда уже совсем всё сломалось. А бизнесовые параметры вообще не мониторят — например, шлюз торговой площадки физически работает, но вместо типичных 100 сделок в день присылает только 4 — это сегодня так мало сделок, или уже какая-то ошибка?
4. Устойчивость к сбоям — когда система продолжает работать несмотря на сбои. Подумаешь, что-то упало — у нас есть альтернативный способ сохранять работоспособность, или мягко деградировать (graceful degradation). Подумаешь — в систему пытаются ввести мусор, или инъекцию, а мы ввод санитаризируем. Сюда относятся обработчики ошибок и реакция на них, когда мы не можем их предотвратить — скажем, на входе. Что если нам пришлют данные не в том формате? Если не будет хватать какого-то поля? Будут лишние поля? Пришлют слишком много данных, а мы ждали мало?
Или, например, функция рестарта после отказа. В пределе получаем подход Let It Crash, когда мы можем быстро перезапустить упавший процесс, неважно по какой причине он упал — потом разберемся по логам, давайте перезапустимся сначала. Тут возникают различные функциональные требования — или не возникают, если решение отдано архитекторам и команде эксплуатации. Они-то что-то придумают и про мониторинг, и про логи, и про средства восстановления, но вот будет ли это где-то зафиксировано? Будет ли документация на это? И как это будет проверяться?
Видов мер 4:
1. Предотвращение. То есть, мы изначально не вносим в систему дефекты. Это ответственность системных аналитиков и тех, кто внедряет методы разработки. Аналитики тут отвечают за выявление возможных нештатных ситуаций и за контроль полноты рассмотрения всех вариантов — зачастую дефекты возникают ещё на этапе спецификации, когда не описано поведение системы в некоторой возможной ситуации. Тут же можно оценить — какие ситуации возможны и какова их вероятность, а точнее — риски (вероятность x ущерб). На этом этапе аналитик должен выяснить всё, что связано с диапазонами допустимых значений данных и эксплуатационных параметров и подумать над граничными условиями.
Сколько у нас может быть пользователей (документов/запросов/клиентов) максимально? В среднем? А сколько из них одновременно будут работать/создаваться/обрабатываться? А какой прирост в год/месяц/день/секунду? А если у нас не будет ни одного пользователя (с определенной ролью)/документа/организации/значения в справочнике? И т.д.
Иногда дефекты с проверкой значений возникают в неожиданных местах: длина имени файла, допустимые символы в учётной записи пользователя, точность округления значения с плавающей запятой, минимальное значение даты — это из того, что сам видел незамеченного уже на проде.
2. Устранение — на этапе разработки (это разные виды тестирования, ревью кода и т.д.) или на этапе эксплуатации — уже в рамках поддержки. С этой мерой аналитики обычно не сталкиваются — даже если участвуют в приёмке, фокусируются на happy path. Однако кто-то должен об этом задуматься и проверить.
3. Прогнозирование — наблюдение за параметрами системы и контроль тенденций, приводящих к возможным сбоям. Например, если у нас заканчивается место на диске, лучше узнать об этом заранее и предпринять меры. Или если растет время ответов от внешнего сервиса — это ещё не ошибка, но сигнал о возможной ошибке — так работает паттерн circuit breaker, например.
Это всё про мониторинг — как на техническом уровне, так и на бизнесовом. При этом на техническом инженерные команды часто ставят какой-нибудь Zabbix, но не настраивают прогнозирующие функции, только оповещения, когда уже совсем всё сломалось. А бизнесовые параметры вообще не мониторят — например, шлюз торговой площадки физически работает, но вместо типичных 100 сделок в день присылает только 4 — это сегодня так мало сделок, или уже какая-то ошибка?
4. Устойчивость к сбоям — когда система продолжает работать несмотря на сбои. Подумаешь, что-то упало — у нас есть альтернативный способ сохранять работоспособность, или мягко деградировать (graceful degradation). Подумаешь — в систему пытаются ввести мусор, или инъекцию, а мы ввод санитаризируем. Сюда относятся обработчики ошибок и реакция на них, когда мы не можем их предотвратить — скажем, на входе. Что если нам пришлют данные не в том формате? Если не будет хватать какого-то поля? Будут лишние поля? Пришлют слишком много данных, а мы ждали мало?
Или, например, функция рестарта после отказа. В пределе получаем подход Let It Crash, когда мы можем быстро перезапустить упавший процесс, неважно по какой причине он упал — потом разберемся по логам, давайте перезапустимся сначала. Тут возникают различные функциональные требования — или не возникают, если решение отдано архитекторам и команде эксплуатации. Они-то что-то придумают и про мониторинг, и про логи, и про средства восстановления, но вот будет ли это где-то зафиксировано? Будет ли документация на это? И как это будет проверяться?
👍15
https://youtu.be/sjNKAd5l88M?si=vOtZ0sT_mSC8mgSv&t=2m27s
Прекрасное у Жванецкого про ИТ-системы в управлении, ну и вообще про управление на основе данных. (с 2:27)
В принципе, с 1985 года ничего и не поменялось!
Пока данные введут — подправят, после обработки — сдвигают...
Поэтому, кстати, многие системные аналитики не копают в сторону бизнес-смысла, а то ведь можно и докопаться.
Прекрасное у Жванецкого про ИТ-системы в управлении, ну и вообще про управление на основе данных. (с 2:27)
В принципе, с 1985 года ничего и не поменялось!
Пока данные введут — подправят, после обработки — сдвигают...
Поэтому, кстати, многие системные аналитики не копают в сторону бизнес-смысла, а то ведь можно и докопаться.
YouTube
Михаил Жванецкий - фельетон "Непереводимая игра слов" (1985)
Фельетон "Непереводимая игра слов". Исполняет автор - писатель-сатирик Михаил Жванецкий.
Фрагмент концертной программы "Новогоднее представление. "Голубой огонек".
Главная редакция музыкальных программ, 1985 г.
#гостелерадиофонд #НовогодняяКарусель…
Фрагмент концертной программы "Новогоднее представление. "Голубой огонек".
Главная редакция музыкальных программ, 1985 г.
#гостелерадиофонд #НовогодняяКарусель…
😁7
Слышали ли вы об инициативе SEMAT и стандарте OMG Essence?
Была такая великая инициатива Ивара Якобсона (который придумал UML, use cases и RUP), многие известные люди подписались: мол, в методиках разработки творится какая-то ересь непонятная, каждый изобретает свою методологию, а как их сравнить и как выбрать подходящую — непонятно.
В общем, придумали структуру для описания процесса (а заодно и проверки — как идут дела), провели как стандарт у своих друзей OMG (которые стандартизируют UML и BPMN), разрекламировали — Якобсон с коллегами даже в Россию несколько раз приезжал, выступал на SECR.
Идея была такая: разработаем структуру описания, а потом будем описывать существующие практики в этой структуре — "эссенциализировать" практики. На текущий момент описан SCRUM, базовые идеи Agile, Agile at scale, OpenUP, и, говорят, внутри в консалтинговой компании Якобсона есть описания процессов Spotify, SAFe и т.д. В принципе, в основном он эту тему и двигает, неясно — есть ли кто там ещё.
На удивление, есть ГОСТ Р 57195-2016, соответствующий OMG Essence. Вот только описания практик на русском нет.
Как думаете, интересная это тема — иметь библиотеку практик сразу в стандартном виде, готовую для внедрения, с чек-листами?
Была такая великая инициатива Ивара Якобсона (который придумал UML, use cases и RUP), многие известные люди подписались: мол, в методиках разработки творится какая-то ересь непонятная, каждый изобретает свою методологию, а как их сравнить и как выбрать подходящую — непонятно.
В общем, придумали структуру для описания процесса (а заодно и проверки — как идут дела), провели как стандарт у своих друзей OMG (которые стандартизируют UML и BPMN), разрекламировали — Якобсон с коллегами даже в Россию несколько раз приезжал, выступал на SECR.
Идея была такая: разработаем структуру описания, а потом будем описывать существующие практики в этой структуре — "эссенциализировать" практики. На текущий момент описан SCRUM, базовые идеи Agile, Agile at scale, OpenUP, и, говорят, внутри в консалтинговой компании Якобсона есть описания процессов Spotify, SAFe и т.д. В принципе, в основном он эту тему и двигает, неясно — есть ли кто там ещё.
На удивление, есть ГОСТ Р 57195-2016, соответствующий OMG Essence. Вот только описания практик на русском нет.
Как думаете, интересная это тема — иметь библиотеку практик сразу в стандартном виде, готовую для внедрения, с чек-листами?
👍32❤1
Слышали ли вы о SEMAT Essence и что думаете?
Anonymous Poll
60%
Впервые слышу, непонятно — что это и для чего
28%
Впервые слышу, интересно!
9%
Не в первый раз попадается, но так и не ясно, как применить
1%
Знаю и применяю!
1%
Другое (напишу в комментах) / посмотреть результаты
Стартовали Winter Analytical Weekend! Максим Цепков ведёт текстовую трансляцию впечатлений от докладов в своём канале: https://news.1rj.ru/str/mtsepkov
Telegram
Максим Цепков
Автор @MaximTsepkov, сайт http://mtsepkov.org - менеджмент самоуправления, soft skill модели, конференции.
Forwarded from Максим Цепков (Maxim Tsepkov)
Сегодня - на http://waw-conf.ru мой доклад - открывающий, о будущам общества, ИТ и аналитиков. Презентация - у меня на сайте https://mtsepkov.org/Future-WAW
Forwarded from Максим Цепков (Maxim Tsepkov)
#wawconf Алишер Умаров. Аналитик 2.0 - Шестирукий Шива или как выжить в современных реалиях с ИИ.
Основной тезис: ИИ может стать помощником: переписывать текст в заданном формате, например, OpenAI; разбираться в коде или настройках конфигураций, писать SQL-запросы, рисовать диаграммы и так далее.
Это несложно, и сильно повышает производительность, есть замеры. До 70% на шаблонных задачах. 50 в среднем экономии. Быстрое кросс-ревью. Ускорение *3 при неполной или отсутствующей документации: проект начинался, сделали как-то поговори об этом с разработчиками и узнай... Как оценивал эффективность? У него было несколько команд, в разных областях. Была оценка, плюс опыт аудита - для этого у него была моделька для оценки артефактов. И он оценивал изменения в работе команды до и после.
В конце Байкин добавил кейс. Нужно было разобраться с HR. Попросил ИИ написать типовые процессы, детализировать, придумать KPI. Послал, HR-директор оценил: о, какие хорошие!
И в ответ Алишер добавил использование: прослушай встречу 2 часа, расскажи что важное. Потом спросить про пояснения. Провалидируй требования.
Что нужно для этого? Главное - надо уметь ставить техническую задачу, чтобы понял ИИ. Он не домысливает, вернее, часто домысливает неверно. Очевидная вещь в SQL - синтаксис, ограничения, что хотите. Русский язык технически сложен, сложнее английского или испанского, там много ловушек неоднозначности - надо разжевывать, писать структурно. Это полезно не только для ИИ.
Риски ИИ известны: невалидированные результаты, неправильная постановка задачи, ограниченность данных обучения (ChatGPT знает состояние 21 года).
Зачем это надо? Аналитик может стать core-участникам команды.
Во всех вакансиях пишут полотенца текста, по которым аналитик должен понимать вообще все. Почему работодатель требует все это? Потому что часто источник требований - имеющаяся система. Посмотреть на базу данных, посмотреть на формы, код и так далее. И это надо уметь. Можно с помощью ИИ - и он реально поможет.
А вот умение говорить со всеми интересантами - это пока самому, отдельная компетенция.
Как делать, чтобы не утекало? Сбер и ВТБ - стали делать свои модельки. Еще можно обезличивать - как датасеты, ТЗ тоже можно обезличивать. И можно обезличивать код, если его надо прочитать. Еще можно договориться, что поднимаем в своем контуре.
Основной тезис: ИИ может стать помощником: переписывать текст в заданном формате, например, OpenAI; разбираться в коде или настройках конфигураций, писать SQL-запросы, рисовать диаграммы и так далее.
Это несложно, и сильно повышает производительность, есть замеры. До 70% на шаблонных задачах. 50 в среднем экономии. Быстрое кросс-ревью. Ускорение *3 при неполной или отсутствующей документации: проект начинался, сделали как-то поговори об этом с разработчиками и узнай... Как оценивал эффективность? У него было несколько команд, в разных областях. Была оценка, плюс опыт аудита - для этого у него была моделька для оценки артефактов. И он оценивал изменения в работе команды до и после.
В конце Байкин добавил кейс. Нужно было разобраться с HR. Попросил ИИ написать типовые процессы, детализировать, придумать KPI. Послал, HR-директор оценил: о, какие хорошие!
И в ответ Алишер добавил использование: прослушай встречу 2 часа, расскажи что важное. Потом спросить про пояснения. Провалидируй требования.
Что нужно для этого? Главное - надо уметь ставить техническую задачу, чтобы понял ИИ. Он не домысливает, вернее, часто домысливает неверно. Очевидная вещь в SQL - синтаксис, ограничения, что хотите. Русский язык технически сложен, сложнее английского или испанского, там много ловушек неоднозначности - надо разжевывать, писать структурно. Это полезно не только для ИИ.
Риски ИИ известны: невалидированные результаты, неправильная постановка задачи, ограниченность данных обучения (ChatGPT знает состояние 21 года).
Зачем это надо? Аналитик может стать core-участникам команды.
Во всех вакансиях пишут полотенца текста, по которым аналитик должен понимать вообще все. Почему работодатель требует все это? Потому что часто источник требований - имеющаяся система. Посмотреть на базу данных, посмотреть на формы, код и так далее. И это надо уметь. Можно с помощью ИИ - и он реально поможет.
А вот умение говорить со всеми интересантами - это пока самому, отдельная компетенция.
Как делать, чтобы не утекало? Сбер и ВТБ - стали делать свои модельки. Еще можно обезличивать - как датасеты, ТЗ тоже можно обезличивать. И можно обезличивать код, если его надо прочитать. Еще можно договориться, что поднимаем в своем контуре.
👍14
Зимние аналитические выходные (WAW-conf) получились, и, кажется, получились огненными!
Давно я не слышал столько восторженных отзывов. И докладчики, и программа, и мастер-классы, и дискуссии, и кулуары, и афтепати, и, конечно, участники — всё сложилось, как пазл, несмотря на отдельные косяки и шероховатости.
Очень мощная и заряженная движуха получилась, с нетворкингом, горящими глазами и вдохновением, как минимум, до лета.
В общем, первый запуск прошёл отлично, настоящий праздник среди зимы
❄️🔥 🎆
Давно я не слышал столько восторженных отзывов. И докладчики, и программа, и мастер-классы, и дискуссии, и кулуары, и афтепати, и, конечно, участники — всё сложилось, как пазл, несмотря на отдельные косяки и шероховатости.
Очень мощная и заряженная движуха получилась, с нетворкингом, горящими глазами и вдохновением, как минимум, до лета.
В общем, первый запуск прошёл отлично, настоящий праздник среди зимы
❄️
Please open Telegram to view this post
VIEW IN TELEGRAM
👏13👍2🔥2🥰2