<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>cgvictor</title><subtitle>Про IT, управление, разработку и маркетинг. Важные моменты, которые я счел нужными записать, чтобы потом поделиться. Считайте это блокнотом.</subtitle><author><name>cgvictor</name></author><id>https://teletype.in/atom/cgvictor</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/cgvictor?offset=0"></link><link rel="alternate" type="text/html" href="https://cgvictor.ru/?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=cgvictor"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/cgvictor?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-09-12T12:17:17.733Z</updated><entry><id>cgvictor:not-only-cases</id><link rel="alternate" type="text/html" href="https://cgvictor.ru/not-only-cases?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=cgvictor"></link><title>Сценарии или свойства?</title><published>2026-08-29T21:36:56.886Z</published><updated>2026-08-31T16:49:36.419Z</updated><category term="development" label="Разработка"></category><summary type="html">Кейсы и сценарии не единственный подход проектирования. И точно не панацея. Можно иначе. Есть инструменты, для которых кейсы не важны, а важно другое.</summary><content type="html">
  &lt;p id=&quot;Jj9F&quot;&gt;Кейсы и сценарии не единственный подход проектирования. И точно не панацея. Можно иначе. Есть инструменты, для которых кейсы не важны, а важно другое.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;EX6Y&quot;&gt;Так получилось, что последние 20 лет народ массово увлекается в проектировании &lt;em&gt;сценариями&lt;/em&gt;. Кейсы, акторы, вот такой вот чувак от жизни хочет вот этого — а мы ему даем инструментину, которая ровно это делает.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;Zxgx&quot;&gt;Не безнадежно, потенциал есть. Чего таить, я сам 15+ лет топил за сценарии, «пишите кейсы, твари ленивые» и всё такое прочее. Потому что если рукожопие и кризис, кейсы это то, с чего вы начнёте. Возможно, ими же и закончите. &lt;/p&gt;
    &lt;p id=&quot;bLbh&quot;&gt;Методика проблему решает, решение даёт — чего еще тебе надо, собака.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;dG9M&quot;&gt;Но штука не единственная. Есть другие, и вот конкретно другая. Поехали пример.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;mskd&quot;&gt;У вас задача бизнесовая стоит: механизм, чтобы (на)писать вот такие бизнесовые документы. Приходите вы как инженер-проектировщик, начинаете курить кейсы. Вот такие документы — вот такие акторы — вот такие данные — вот такие цепочки и бизнес-процессы — и в общем-то дальше понятно. Так множество систем рождаются. Документо-ориентированных. Успешных, я подчеркиваю; упаси боже сказать, что плохо — нет, это не так. Задача решается, и решается красиво. Оговорок и сарказма нет, всё честно.&lt;/p&gt;
  &lt;p id=&quot;jQu7&quot;&gt;А вот другой подход: вместо кейсов вы даете инструмент. &lt;em&gt;Ручку шариковую&lt;/em&gt;. Можно ею написать документ? Очевидно да, бери пиши. Будет работать? Куда оно денется, веками так происходило. Чтобы совсем не скатываться в идиотизм примера, выдумаем к этому формочки, правила, цепочки — и мы получили решение задачи, тоже. Минусы у него есть. Но… что с плюсами?&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;7wBo&quot;&gt;Нас во втором случае не настолько волновали кейсы. &lt;/p&gt;
    &lt;p id=&quot;Db00&quot;&gt;Инструмент — шариковая ручка. У нее есть свойства, они жестко заданы ее устройством. &lt;/p&gt;
    &lt;p id=&quot;6ZM5&quot;&gt;А вот сценарии как раз жестко не заданы. К нашим обозначенным задачам инструментик подходит, этого достаточно.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;Zv6x&quot;&gt;Свойств у инструментика есть, в количестве. Может писать, может не писать. Может писать что-то умное, может глупое. Может показывать статус владельца и на столе стоять. Может пиво открывать, если жесткость позволит. Можно в глаз недругу воткнуть. Можно топливные шланги прочищать. Можно коллекционировать. Можно перепродать, туземцам за бусы. Можно в носу ковырять, себе, соседу. Можно вместе с матом и изолентой починить космический корабль. Где пригодится — там и пригодится.&lt;/p&gt;
  &lt;p id=&quot;Lz2X&quot;&gt;И выше перечисленное явно покрывает (может покрывать) какой-то ненормально широкий набор кейсов, если вы рискнете заморочиться их описывать.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;aUDI&quot;&gt;То есть, применимость инструмента описывается его свойствами, как физического предмета в данном случае. Набор кейсов вторичен. &lt;/p&gt;
    &lt;p id=&quot;0XzB&quot;&gt;Поменяется задача, поменяются кейсы — вы все еще сможете написать шариковой ручкой любой документ. Даже тот, который вы пока не придумали. Поведение инструмента не изменится.&lt;/p&gt;
  &lt;/section&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;aIl1&quot;&gt;С чисто инженерной точки зрения, широта свойств и потенциальная применимость — плюс. Жирный плюс. Если экстраполировать, под неизвестную заранее задачу лучше иметь неидеальный, но все-таки мульти-тул в кармане, чем узкозаточенную крутую систему, которая становится &lt;em&gt;моментально бесполезна&lt;/em&gt; для всего остального, для чего она не проектировалась.&lt;/p&gt;
  &lt;p id=&quot;Um5z&quot;&gt;Об этом явлении и феномене рекомендую задуматься, минут на пять. Шариковую ручку никто не проектировал, чтобы намеренно прочищать ей сортир, отбиваться от врагов или (о, ужас) писать шекспировские сонеты. Она просто всё это может, в силу каких-то своих свойств. Не нравится чистить сортир паркером, ну возьми что-то поудобнее. Или не возьми, если под рукой только это — в моменте, дорога ложка к обеду. Или ручка к сортиру.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;dDHX&quot;&gt;Так вот: подход построения универсальных инструментов — он тоже есть, он не безнадежен, и тоже в чем-то неплох. В первую очередь как показывает нам пример — когда мы не знаем конкретные задачи, а можем только предположить их общий класс.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;AJ5G&quot;&gt;Корректно вспомнить unix way в этой связи: вот тебе ворох весьма разнообразных инструментов, каждый из которых имеет какие-то свойства, и что-то своё может. Понятное заранее, и даже описанное. Собирай из этого балагана и винегрета всё, что заблагорассудится. Не получится — допиши недостающее, мелкое и конкретное. Если куда-то еще пригодится, окей, все порадуются.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;Wo2e&quot;&gt;Достаточно наивно было бы пытаться описать «все кейсы» использования &lt;em&gt;Экселя&lt;/em&gt;, гугло-таблиц. Они просто могут то, что могут; делают то, что делают. Хочешь, считай мировую экономику, хочешь — конфеты в банке, хочешь Doom в браузере рисуй. Таблицам пофиг. Авторам тоже.&lt;/p&gt;
  &lt;p id=&quot;3pUP&quot;&gt;И я отмечу, что делают они свои задачи хорошо. Как минимум, предсказуемо. Это всё, что в данном моменте от них требуется. Походящесть экселя под расчет мировой экономики, и под соответствующий набор сценариев, никто заведомо не проектировал и не гарантировал: эта возможность органически следует из их заявленных (и проверяемых) свойств: считать арифметику.&lt;/p&gt;
  &lt;p id=&quot;iiAM&quot;&gt;&lt;em&gt;Страницы блокнота пусты; ты волен писать там шедевр, но волен также писать там чепуху или ложь, или даже вырвать их.&lt;/em&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;lPMj&quot;&gt;Что в универсальном инструментарии потенциально хорошо: знание о нем, и навыки работы — также универсальны. Этим можно пользоваться; на этом, например, выехал Apple с тотальной жесточайшей стандартизацией UX на мобиле. Пока не наплодили бардака с 2015. Мне не нужно знать, что там накодили в конкретном случае очередные укуренные индусы; я точно знаю, как у них внутри экосистемы будет выполнена работа с текстом, контекст задач (приложуха), тапы-скроллы и прочая мишура. &lt;/p&gt;
  &lt;p id=&quot;Zs3q&quot;&gt;Если в линуксе «всё файл», мне достаточно инструментов работы с файлами. Если под виндой есть папки-каталоги-окошки, я справедливо жду что меня этих инструментов не лишат без жестокой необходимости — а если такое произойдет, я справедливо спрошу «а какого хрена?» мне и миллионам юзеров повышают порог входа &lt;s&gt;всяким говно-креативом&lt;/s&gt; там, где без этого можно обойтись. К всеобщей пользе.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;4ctH&quot;&gt;Да, одно решение придется вписывать в ограничения, и оно может пострадать. Вся масса инструментов (и их пользователей) заведомо выигрывает.&lt;/p&gt;
    &lt;p id=&quot;x8u2&quot;&gt;Capitalize on the experience.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;87Se&quot;&gt;Сюда попадают &lt;em&gt;наборы инструментов&lt;/em&gt; (toolkit) — раз. Если ты можешь вот этим ключом открутить вот этот болт, значит ты можешь так сделать применительно к любому болту, который удовлетворяет &lt;strong&gt;свойствам — не сценариям&lt;/strong&gt;, сценарии любые, даже пока не существующие.&lt;/p&gt;
  &lt;p id=&quot;2kHI&quot;&gt;Сюда же попадают разнообразные &lt;em&gt;песочницы&lt;/em&gt; — два. Есть правила и ограничения среды, «физика» взаимодействия и правила игры. Пока правила соблюдаются, реализуй там потенциально любые фантазии. Очевидно, любая бизнес-область, в смысле business domain, точно также песочница со своим DSL и правилами — аналогию дальше сами.&lt;/p&gt;
  &lt;p id=&quot;pyEE&quot;&gt;Где-то между примерами лежит еще набор подходов и методов типа behaviour design, aspect-driven, DDD (который про другое ащет) и аналогичные скрещивания идей.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;GlYs&quot;&gt;Если вы где-то внутри себя и своих мета-задач замахиваетесь на инструментарий, для которого не до конца формализованы задачи (или даже вообще никогда не будут формализованы) — присмотритесь к проектированию на свойствах.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;FPdH&quot;&gt;Сюда попадают, также, многие классы задач где звучат слова «инфраструктура» или «экосистема». &lt;/p&gt;
    &lt;p id=&quot;RGlP&quot;&gt;Вам надо, чтобы в меняющемся мире то, что вы собираете (проектируете) сегодня, не стало фундаментально бесполезным завтра. &lt;/p&gt;
    &lt;p id=&quot;5J3v&quot;&gt;Идеальность не получится, но за полезность можно побороться.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;P9Jo&quot;&gt;Всё еще занудно подушню, что писать «универсальные конструкторы» под конкретную конечную задачу — обычно, плохо. Дорого энд глупо. &lt;/p&gt;
  &lt;p id=&quot;DOrC&quot;&gt;Это не отменяет факта, что не все задачи заранее понятны и конечны; вот там надо покурить вопрос.&lt;/p&gt;
  &lt;p id=&quot;0hQR&quot;&gt;&lt;strong&gt;Hope that helps&lt;/strong&gt;.&lt;/p&gt;

</content></entry><entry><id>cgvictor:ab-analytical-bullshit</id><link rel="alternate" type="text/html" href="https://cgvictor.ru/ab-analytical-bullshit?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=cgvictor"></link><title>Валидация продуктовых гипотез при помощи A/B-тестов</title><published>2026-08-16T19:02:18.074Z</published><updated>2026-08-17T19:36:24.559Z</updated><category term="development" label="Разработка"></category><summary type="html">Специально унылый заголовок, потому что дальше я буду ворчать. Сильно.
Метриками и А/Б тестами можно завести разработку в кромешную жопу, зато все при деле.</summary><content type="html">
  &lt;p id=&quot;nRyQ&quot;&gt;Специально унылый заголовок, потому что дальше я буду ворчать. Сильно.&lt;br /&gt;Метриками и А/Б тестами можно завести разработку в кромешную жопу, зато все при деле.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;TpxI&quot;&gt;A/B-тест — это когда вы делаете 2 варианта чего угодно, запускаете их параллельно. Потом пытаетесь что-то оценить относительно того, как они себя показали.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;AUuo&quot;&gt;На этом теоретическая часть всё, достаточно.&lt;br /&gt;Дальше разбираемся предметно. Докапываться я буду до практически всего.&lt;/p&gt;
  &lt;p id=&quot;2pLX&quot;&gt;Сама идея неплохая — а вот то, во что она потом превращается…&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;qV2f&quot;&gt;Фундаментальный затык из проблематики, почему такой A/B-инструмент вообще появляется — это «&lt;em&gt;&lt;strong&gt;мы не знаем&lt;/strong&gt;&lt;/em&gt;». Запомните эту мысль, она пригодится. &lt;/p&gt;
  &lt;p id=&quot;UZ37&quot;&gt;Не знаем мы, или можем не знать, вообще-то многого:&lt;/p&gt;
  &lt;ul id=&quot;9DBI&quot;&gt;
    &lt;li id=&quot;63yI&quot;&gt;как новая версия или гипотеза себя поведет технически&lt;/li&gt;
    &lt;li id=&quot;bLgE&quot;&gt;как новый вариант воспримут конечные пользователи&lt;/li&gt;
    &lt;li id=&quot;VU8r&quot;&gt;выиграет ли он по какой-то эргономике&lt;/li&gt;
    &lt;li id=&quot;vkeF&quot;&gt;принесет ли это нам больше конверсий, может нам скажут «о, давно бы так» и начнут больше денег давать&lt;/li&gt;
    &lt;li id=&quot;Pq9g&quot;&gt;станет ли у нас больше хорошего, и меньше плохого&lt;/li&gt;
    &lt;li id=&quot;0uJU&quot;&gt;станет ли у кого-то еще больше хорошего, а мы так и быть, потерпим затраты&lt;/li&gt;
    &lt;li id=&quot;CIQk&quot;&gt;так далее, так далее.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;nMdz&quot;&gt;И в общем-то инструмент позволяет не угадывать, а попробовать. То есть &lt;em&gt;сделать и замерить&lt;/em&gt;. Беда только в том, что если в руках микроскоп (вот этот), все проблемы = гвозди.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;Stm9&quot;&gt;А/Б тестированием легко подменить реальные, продуманные, взвешенные и просчитанные (заранее!) прогрессивные убедительные шаги вперёд на бесконечную возню с метриками. &lt;/p&gt;
    &lt;p id=&quot;H7Mh&quot;&gt;Один раз это сработает. Для действительно непонятного или комплЕксного вопроса — тоже сработает. А дальше гоп-компания аналитиков принимается «пробовать и мерить» всё подряд, потому что это несложно, можно голову не включать. Ни на старте, ни на финише. &lt;/p&gt;
    &lt;p id=&quot;QNks&quot;&gt;Затраты? А это не наши затраты.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;27iB&quot;&gt;Идея «не включать голову» и херачить по накатанной методике работает ровно до тех пор, пока не перестаёт. Но все уже привыкли «пробовать и мерить». Как же так, как мы можем вынести мусорку, не проводив исследование, стало ли лучше?&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;2t1H&quot;&gt;Один проблемный момент в этой связи &lt;a href=&quot;https://cgvictor.ru/better-evolution&quot; target=&quot;_blank&quot;&gt;я уже описывал&lt;/a&gt;: это риск скатиться в реактивные ситуативные шатания, вместо нормального аналитического (и стратегического) подхода. Мы не знаем, что действительно надо делать — поэтому давайте лучше кидать говно в стену, и смотреть, где больше налипнет. Это ж метрика!&lt;/p&gt;
  &lt;p id=&quot;XTkm&quot;&gt;Но это уже было, повторяться лень.&lt;/p&gt;
  &lt;p id=&quot;R8vt&quot;&gt;Второй проблемный момент от того, что в ваших процессах &lt;a href=&quot;https://cgvictor.ru/change-factor&quot; target=&quot;_blank&quot;&gt;управления изменениями&lt;/a&gt; вырастает &lt;em&gt;обязательный слой псевдо-аналитического буллшита&lt;/em&gt;. Ребята из команды_А теперь почему-то не могут просто взять, и сделать нормально (как их просили); им потребуется:&lt;/p&gt;
  &lt;ul id=&quot;fgt6&quot;&gt;
    &lt;li id=&quot;PJ4U&quot;&gt;выкатить список гипотез&lt;/li&gt;
    &lt;li id=&quot;s2ZG&quot;&gt;обосновать, какие из них они считают перспективными, и откуда-то выдумать цифры (потому что если они не выдуманные, что вы мерить собрались?)&lt;/li&gt;
    &lt;li id=&quot;EOkP&quot;&gt;«защитить» это всё на совете каких-то скучающих васянов (защитить от чего? от здравого смысла?)&lt;/li&gt;
    &lt;li id=&quot;hZIo&quot;&gt;воткнуть это всё в планы реализаций и выкаток, чтобы не пересекаться с другим буллшитом, который уже кто-то «меряет»&lt;/li&gt;
    &lt;li id=&quot;U9m7&quot;&gt;озадачить инженерный отдел, чтобы минимум две версии не конфликтовали между собой, между инженеркой, между смежными системами и между другими экспериментами&lt;/li&gt;
    &lt;li id=&quot;Fxnz&quot;&gt;озадачить тестирование, чтобы они быстренько (тм) сделали двойную+ работу по проверке косяков и взаимных коллизий, причем успев в релизный план&lt;/li&gt;
    &lt;li id=&quot;hdcO&quot;&gt;тормознуть раскатку других фич и развитие смежных систем, потому что «у нас тут эксперимент, неделю ничего делать нельзя, мы данные собираем»&lt;/li&gt;
    &lt;li id=&quot;TjX1&quot;&gt;очень быстро качественно (ха) проанализировать собранное, зафиксировать и презентовать результаты эксперимента&lt;/li&gt;
    &lt;li id=&quot;02zt&quot;&gt;снова вернуть все системы в состояние, когда механика одна (старая, или новая), желательно не запачкав себе штаны техническим долгом&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;I04R&quot;&gt;Это дорого. Это развесисто. Мотивации всё это делать, каждый раз, ради трехгрошовых изменений — исчезающе мало.&lt;/p&gt;
  &lt;p id=&quot;KgTJ&quot;&gt;И да, это &lt;a href=&quot;https://cgvictor.ru/anti-process&quot; target=&quot;_blank&quot;&gt;признак анти-паттерна&lt;/a&gt; и того, что происходит какая-то хуйня.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;0AtW&quot;&gt;Если у вас любой, каждый чих вместо двух дней на реализацию (день + день проверка) обрастает херотой длиною в месяц на 20+ рыл = удачи вам в этом непростом мире. &lt;/p&gt;
    &lt;p id=&quot;zdE7&quot;&gt;И продукты у вас будут всё еще говно. Потому что бюрократия ради собственной важности, и дроч ради дрочки. Причем безо всякого удовольствия.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;GVda&quot;&gt;В общем, если мозг не включать — сдуру можно и хер сломать, даром что гидравлика.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;57PW&quot;&gt;Пойдем дальше. А что вы, собственно, меряте? И как вы это делаете?&lt;/p&gt;
  &lt;p id=&quot;MCOa&quot;&gt;Если подходить правильно, системно и комплексно, то вы должны мерить (в своем эксперименте) не просто набор метрик, которые выбрали. А вообще &lt;strong&gt;все доступные вам метрики&lt;/strong&gt;, которые вы можете оценить качественно (лучше/хуже), и которые хотя бы гипотетически могут быть затронуты. Чтобы потом понять, нужны ли вам такие улучшения, такой ценой. Если еще будет на тот момент, что оценивать.&lt;/p&gt;
  &lt;ul id=&quot;CIu3&quot;&gt;
    &lt;li id=&quot;EhSM&quot;&gt;&lt;em&gt;плохой пример&lt;/em&gt;: мы ставим задачу «повысить проклик по кнопке», окей, рисуем кнопку размером с весь доступный экран. Еще чтоб мигала, чтоб наверняка. По кнопке — точно не промахнешься, вон как метрика выросла! Все остальные показатели разумеется сходили нахрен, и значительная часть аудитории считает вас рукожопыми дебилами. Booking-com не даст соврать. Дебилам обычно денег не дают. &lt;/li&gt;
    &lt;li id=&quot;H3Us&quot;&gt;&lt;em&gt;плохой пример&lt;/em&gt;: «увеличить LTV, снизить показатель отписок». Так давайте кнопку отмены подписки запрячем поглубже, на три экрана, через валидацию заказным письмом. И еще она работать перестанет, нет кнопки нет проблем. И конечно у вас показатель вырастет в моменте; следом аудитория пошлет вас нахрен как разводил и пидорасов (Яндекс, привет), чтобы потом не возвращаться к вам примерно никогда.&lt;/li&gt;
    &lt;li id=&quot;627K&quot;&gt;&lt;em&gt;плохой пример&lt;/em&gt;: давайте на конверт зальем еще вот такую аудиторию, завлекушечку нарисуем. А то, что аудитория говно, трафик мёртвый и все эти «новые пользователи» отваливаются через месяц, не отбивая даже затраты на привлечение — ну тут увы, тут наши полномочия всё, это уже за рамками нашего эксперимента. Надо ещё один, чтоб наверняка.&lt;/li&gt;
    &lt;li id=&quot;VlNy&quot;&gt;&lt;em&gt;плохой пример&lt;/em&gt;: у нас вот здесь поведение кривое-косое, но мы тупые и ссымся просто взять и сделать как надо — давайте рисовать эксперимент, чтобы за тот месяц пользователи прочувствовали, как им элементарный баг починить не могут, они же нас точно больше любить начнут.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;LoBV&quot;&gt;Аналитик, который очень хочет показать, как он вот тут поднял метрику, будет максимально вовлечённо и старательно игнорировать все негативные последствия — и решения, и хода «эксперимента» — которые ему невыгодны.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;OnZc&quot;&gt;Но это же удобно, голова не включалась, берут своё лень, косность и безразличие. Иногда даже прямо &lt;a href=&quot;https://cgvictor.ru/negative-outcome&quot; target=&quot;_blank&quot;&gt;с саботажем&lt;/a&gt; идет процесс: как вы можете утверждать обратное, &lt;em&gt;если не проводили эксперимента? Мы здесь аналитики.&lt;/em&gt; &lt;s&gt;Этот суд не может судить королеву&lt;/s&gt;. &lt;/p&gt;
  &lt;p id=&quot;38Rf&quot;&gt;И далее у нас отрастает «эксперимент на эксперимент», потом если повезет «эксперимент чтобы понять, где мы обосрались в первом», «эксперимент чтобы все-таки показать, что получилась лажа» — &lt;em&gt;ой, его же не произойдет, это тогда кому-то станет явно видно, что мы делали херню&lt;/em&gt;; не, вот такого эксперимента не будет.&lt;/p&gt;
  &lt;p id=&quot;zg1d&quot;&gt;Паровоз &lt;a href=&quot;https://cgvictor.ru/one-way-army&quot; target=&quot;_blank&quot;&gt;едет только вперед&lt;/a&gt;. Выкатывая сомнительные «улучшения», эксперименты ради экспериментов, и метрики ради метрик.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;xkaK&quot;&gt;Наверное, если быть большим оптимистом, ваш продукт от этого не станет фундаментально в моменте &lt;strong&gt;хуже&lt;/strong&gt; (что, впрочем, тоже не факт). Со временем — естественно, станет. &lt;/p&gt;
    &lt;p id=&quot;NSnk&quot;&gt;Но проблемнее то, что и &lt;strong&gt;лучше &lt;/strong&gt;он от всего этого тоже не станет; нормальные исправления, нормальные улучшения, просто требуемые инженерные решения никогда вовремя никуда не доедут, а если доедут, то будут полужопыми, с кучей лишних телодвижений и с опозданием в год. &lt;/p&gt;
    &lt;p id=&quot;i7nQ&quot;&gt;Дальше «ой, а почему мы закостенелое насквозь устаревшее говно», и «когда мы стали грёбаным мейлру».&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;8kwn&quot;&gt;Зато столько народу при деле, все чем-то заняты, все зарплату получают. Зачем отказываться.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;dGvm&quot;&gt;Еще уместно задать вот какой вопрос. Вы хотите эксперимент, потому что вы не знаете ответа, и хотите его поискать.&lt;/p&gt;
  &lt;p id=&quot;aVby&quot;&gt;Задаю вопрос: &lt;em&gt;а почему вы, собственно, не знаете ожидаемого результата?&lt;/em&gt; Причем настолько, чтобы месяц жечь ресурсы — чтобы что? Чтобы расписаться в собственной профнепригодности?&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;opL7&quot;&gt;Ситуация «ну мы попробуем и потом решим» это очень слабая позиция, и не надо себя обманывать. У вас аналитически и эмпирически данных нет? Выводы не сделать? Вы настолько не понимаете потребности аудитории, что готовы туда-сюда кровати в борделе двигать? Так это иначе решается.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;rAum&quot;&gt;Если у вас кромешный кризис идей, «что мы должны прямо сейчас улучшить, чтобы стало заебись», то это два варианта:&lt;/p&gt;
  &lt;ul id=&quot;bUhe&quot;&gt;
    &lt;li id=&quot;04uL&quot;&gt;либо улучшать &lt;a href=&quot;https://cgvictor.ru/do-not-touch&quot; target=&quot;_blank&quot;&gt;уже нечего&lt;/a&gt; (так бывает), нечего маяться дурью, мальчик положи молоток где взял, работает = не трогай&lt;/li&gt;
    &lt;li id=&quot;HjcC&quot;&gt;либо ни хрена не одупляете, что для чего и для кого делаете, а значит надо закрыть рот, разуть глаза, и отправиться задавать вопросы к тем, кто в этом что-то понимает&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;yLyi&quot;&gt;На последнем следует остановиться подробнее.&lt;/p&gt;
  &lt;p id=&quot;vSC2&quot;&gt;Самых простых (но не самых правильных) способа сходу два. Попробовать самому — раз, и спросить тех кто вам деньги платит (пользователей) — два. &lt;/p&gt;
  &lt;p id=&quot;cxrh&quot;&gt;Понять херню самому и наощупь проще всего, но — для этого надо &lt;em&gt;стать пользователем&lt;/em&gt;, хотя бы притвориться, хотя бы по станиславскому. Глобально здесь есть ограничения и потолок, но хотя бы самые элементарные штуки вы сможете найти и выписать на бумажечку. &lt;/p&gt;
  &lt;p id=&quot;FLjj&quot;&gt;Спрашивать пользователей — всегда отдельная дисциплина &lt;s&gt;олимпиады для инвалидов&lt;/s&gt;, но опять же, хотя бы вектора идей вы нащупать сможете. Которые пойдёте прорабатывать.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;MkD1&quot;&gt;Если даже на этих двух подходах прозвучит фраза «давайте соберём A/B эксперимент», следует автору фразы мгновенно уебать с ноги.&lt;br /&gt;Надеюсь, понятно, почему.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;ZDnA&quot;&gt;Хорошие и качественные подходы (другие!) предполагают проблематику, карту целей, анализ альтернатив + плюс две базовые метрики. &lt;/p&gt;
  &lt;ul id=&quot;M3fc&quot;&gt;
    &lt;li id=&quot;CjEp&quot;&gt;как дать человеку то, что он действительно хочет, причем быстро и без всякой лажи&lt;/li&gt;
    &lt;li id=&quot;8V8T&quot;&gt;как сделать так, чтобы когда человек несет к нам денег, он не споткнулся в процессе&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;NC0h&quot;&gt;Но тут думать надо. Порекомендую все-таки начать.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;Pkj7&quot;&gt;Вы не можете дома взять и вынести мусор, надо обязательно разложить и вынести сначала половину, чтобы оценить перспективы и потенциальную пользу?&lt;/p&gt;
  &lt;p id=&quot;EBCI&quot;&gt;Вы в магазине покупаете только половину списка покупок, потому что надо «оценить что станет лучше»?&lt;/p&gt;
  &lt;p id=&quot;FOV1&quot;&gt;Механик вам в автомобиле тоже гайки наполовину закручивает? Или только с выбранной стороны на колёсах?&lt;/p&gt;
  &lt;p id=&quot;3Amx&quot;&gt;Регулярно моете только половину посуды, чтобы была контрольная группа пользователей, которые едят с немытых тарелок, а то &lt;a href=&quot;https://cgvictor.ru/decision-is-made&quot; target=&quot;_blank&quot;&gt;вдруг еще откатим&lt;/a&gt;?&lt;/p&gt;
  &lt;p id=&quot;y0Ha&quot;&gt;Еще можете заплатить только половину налогов, вдруг метрики просядут. &lt;br /&gt;А чорт, таких людей я даже знаю.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;8rTO&quot;&gt;Вывод у меня в общем-то простой: использовать A/B инструмент под задачу, и только там, где он действительно нужен + оправдан с точки зрения сожженного времени и тонны затраченных сопутствующих ресурсов.&lt;/p&gt;
  &lt;p id=&quot;0B4l&quot;&gt;Но мне по опыту кажется, что если ситуация уже запущенная, «само по себе» так точно не произойдет. Надо на управленческом уровне посчитать косты (включая неявные, типа сожженного ФОТ на дармоедов и проваленного годами time to market), затем записать всю эту дрочку в &lt;a href=&quot;https://cgvictor.ru/anti-process&quot; target=&quot;_blank&quot;&gt;запрещенный анти-паттерн&lt;/a&gt;, и жестко бить по рукам — за подмену результата «взяли и сделали» псевдо-аналитическими бездарными туда-сюда фрикциями.&lt;/p&gt;
  &lt;p id=&quot;biKF&quot;&gt;Будет не то чтоб просто. &lt;br /&gt;Но &lt;strong&gt;hope that helps&lt;/strong&gt;.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;dngQ&quot;&gt;Вот тут еще правильный вопрос прозвучал, и его тоже надо рассмотреть.&lt;br /&gt;Попозже, пока просто подумайте.&lt;/p&gt;
  &lt;p id=&quot;m9pM&quot;&gt;— &lt;em&gt;а почему А/Б, в смысле два варианта?&lt;/em&gt; Почему не три, не пять, не их комбинации.&lt;/p&gt;
  &lt;p id=&quot;vpNi&quot;&gt;Это очень правильный вопрос. Если мы (или вы) уже морально готовы сами задолбаться на месяц, и всех задолбать вокруг сложной аналитической штукой, то почему делать это самым тупым заходом в бинарный выбор?&lt;/p&gt;
  &lt;p id=&quot;xu9X&quot;&gt;Да, больше двух считать сложнее. Но операционно это выгоднее, или &lt;em&gt;может оказаться&lt;/em&gt; выгоднее, особенно если у вас scope какой-то однотипный, и пилить его вы собираетесь еще долго. Год = всего 12 экспериментов по 1 месяцу, следовательно 11 гипотез. Не жирно ли распыляться на год ФОТа ради 11 правок?&lt;/p&gt;
  &lt;p id=&quot;AUCB&quot;&gt;Как считать — посмотрите например у Московица (там где RDS и сложные комбинации); как подобрать комбинации тестов, топологически по Шеннону; из прикладного применения — вместе с инструментарием — гуглить «атомарное тестирование». Методическая база есть.&lt;/p&gt;
  &lt;p id=&quot;Z4Aj&quot;&gt;Но прям сюда дописывать еще и про это я пока не готов, и так портянка текста.&lt;/p&gt;

</content></entry><entry><id>cgvictor:decision-is-made</id><link rel="alternate" type="text/html" href="https://cgvictor.ru/decision-is-made?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=cgvictor"></link><title>«Решение принято» и «я вам говорил»</title><published>2026-08-09T19:10:04.720Z</published><updated>2026-08-09T21:37:30.558Z</updated><category term="development" label="Разработка"></category><summary type="html">Думать и переобуваться надо в выделенное для этого время.
Сомневаться постфактум, метаться и нудить — не полезно и так делать не надо (можно даже запретить).</summary><content type="html">
  &lt;p id=&quot;kYbq&quot;&gt;Думать и переобуваться надо в выделенное для этого время.&lt;br /&gt;Сомневаться постфактум, метаться и нудить — не полезно и так делать не надо (можно даже запретить).&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;8fZT&quot;&gt;Если бы у всех ваших сложных вопросов заранее были простые, понятные и удобные ответы — это бы называлось справочником. И умные люди были бы нафиг не нужны. Но нет, так не работает.&lt;/p&gt;
  &lt;p id=&quot;6n9R&quot;&gt;Ответы надо искать. Если &lt;em&gt;есть&lt;/em&gt; единственно правильное решение — это хорошо. И в этом смысле оно достаточно очевидно всем присутствующим: вот такое решение, вот такие затраты/ресурсы, вот такие риски: бери, пользуйся.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;gmo2&quot;&gt;Если не очевидно, начинаются метания. Вот можно сделать подороже, но побыстрее. Или побыстрее, но пожертвовать вон там. Или дёшево и быстро, но если огребёмся и чего-то не учли — сядем в лужу. &lt;/p&gt;
    &lt;p id=&quot;yNuj&quot;&gt;Или вроде метнулись, но стало страшно, давайте передумаем в полёте, и будем брать пропасть в два прыжка.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;Mnl7&quot;&gt;Веселухи добавляет то, что дальше вам с принятым решением придется жить. Даже если «оба с виду выглядят нормальными». Вы не заратустра (и никто не заратустра), прикидывать что там триггернёт из рисков на дистанции +5 лет.&lt;/p&gt;
  &lt;p id=&quot;NtPB&quot;&gt;Поэтому неизбежны бодалова. Вася, Петя и Аня каждый считают, что лучше сделать вот так; за их мнением стоит опыт, аргументация и в общем-то рациональные аргументы. Все умные и скилловые, 2/3 участников седые и бородатые, договариваться придётся обстоятельно.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;4vYe&quot;&gt;Сложное решение практически всегда = компромисс. Если бы у нас было всё время мира, все деньги мира, все люди мира, и остальной анлим возможностей — мы бы поступали как-нибудь жирно и офигенно. Пока этого нет, имеем что имеем. Решение принимается не в вакууме, ресурсы можно отрезать только в ущерб чему-то другому полезному. Воевать во всех направлениях сразу тоже не получится.&lt;/p&gt;
  &lt;p id=&quot;bal7&quot;&gt;У различных решений есть свои авторы, и свои интересы (включая бюджетно-финансовые). Один топит за одно, другой за другое; и хорошо, если из общей инженерной &lt;a href=&quot;https://cgvictor.ru/not-eureka&quot; target=&quot;_blank&quot;&gt;осознанности&lt;/a&gt;, а не из прикладных корыстных интересов. Чтобы были все довольны, эта уравненька не решается.&lt;/p&gt;
  &lt;p id=&quot;mAnH&quot;&gt;Налицо коллизия. Её надо разрешать.&lt;/p&gt;
  &lt;p id=&quot;z3BP&quot;&gt;Разрешается коллизия принятием решения. Взвесили все варианты, прикинули хрен к носу, дальше выбрали какой-то один (любым согласованным способом), и пошли его делать.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;9IhU&quot;&gt;Вот когда пошли делать — разночтений уже быть не может. И не должно. Было время думать и принимать решение — думали, и принимали. &lt;/p&gt;
    &lt;p id=&quot;IZI5&quot;&gt;Сейчас оно принято, у этого решения есть факт принятия и ответственность за него; остальная пересортица вам далее не нужна, и чаще всего — вредна.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;8yE6&quot;&gt;Если этот момент явно не сказать, и не зафиксировать в процессных документах — вы рано или поздно получите пицзец. Много.&lt;/p&gt;
  &lt;ul id=&quot;nFnK&quot;&gt;
    &lt;li id=&quot;cZcU&quot;&gt;Вася до сих пор считает что Петя был не прав, и начинает тихо (или громко) саботировать принятое решение&lt;/li&gt;
    &lt;li id=&quot;y1Nu&quot;&gt;команда X втихаря пилит что-то свое, потому что команда Y уебаны и не шарят в вопросе&lt;/li&gt;
    &lt;li id=&quot;5RbC&quot;&gt;команда Z встает в позу итальянской забастовки, и не собирается ничего делать без тонны бумаги за регламент&lt;/li&gt;
    &lt;li id=&quot;R15P&quot;&gt;в случае любых разночтений (а они по любому будут, решение = принятый компромисс) вылезает отряд плакальщиц, которые точно знают «как лучше можно было»&lt;/li&gt;
    &lt;li id=&quot;IrQn&quot;&gt;какие-то черти регулярно бегают ныть верхнему руководству, потому что считают, что считают, что знают и умеют лучше&lt;/li&gt;
    &lt;li id=&quot;8b71&quot;&gt;встает в полный рост проблема субординации, когда кто-то кого-то нахер шлёт (и это административные потери) &lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;Ji4G&quot;&gt;Проще всего это &lt;a href=&quot;https://cgvictor.ru/completed-staff-work&quot; target=&quot;_blank&quot;&gt;решили&lt;/a&gt; в армии. Когда приказ отдан и принят к исполнению — он исполняется. Если не исполняется — это нарушение приказа.&lt;/p&gt;
  &lt;p id=&quot;JKFM&quot;&gt;Мы чаще всего не в армии, но суть идеи примерно та же.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;hDWN&quot;&gt;&lt;strong&gt;После того, как решение принято, каждый участник обязуется принять и выполнять его так, как если бы оно было его собственное.&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;DDcZ&quot;&gt;Надо помнить и понимать, что у компромиссных решений есть и будут негативные стороны. Иногда даже больше, чем планировалось (но все еще в допустимых &lt;a href=&quot;https://cgvictor.ru/killswitch&quot; target=&quot;_blank&quot;&gt;рамках&lt;/a&gt;). Без пруда не вытащишь рыбу из него, чем-то придется &lt;a href=&quot;https://cgvictor.ru/decision-outcome&quot; target=&quot;_blank&quot;&gt;жертвовать&lt;/a&gt;, кто-то будет не доволен. &lt;/p&gt;
  &lt;p id=&quot;hG6V&quot;&gt;На моменте, когда кому-то не досталось вкусной конфеты — будут вопли и заламывания рук, иногда даже излишне демонстративные.&lt;/p&gt;
  &lt;p id=&quot;XJaW&quot;&gt;Если вы это не прописали, как и процесс/порядок действий в таких ситуациях — придется отвлекаться, и разруливать «на руках». Лично я склонен к жестким мерам пресечения подобного; знаешь, как лучше, и команде слаженно работать, с принятым решением не согласен — пиздуй на все четыре стороны, в любой подходящий тебе бизнес и/ли команду, все дальнейшие эксперименты сам, и за свой счет.&lt;/p&gt;
  &lt;p id=&quot;XlmM&quot;&gt;&lt;em&gt;Мнение людей, которые точно знают, как лучше, если бы сами умели и могли.&lt;/em&gt;&lt;/p&gt;
  &lt;p id=&quot;ZEqt&quot;&gt;Это плодит отдельный слой «внутриполитической борьбы», который я также крайне недолюбливаю, до уровня нетерпимости.&lt;/p&gt;
  &lt;p id=&quot;ulPv&quot;&gt;&lt;a href=&quot;https://cgvictor.ru/yes-no-make-this&quot; target=&quot;_blank&quot;&gt;Чье мнение и в каких случаях&lt;/a&gt; является определяющим, и в какой момент времени — лучше прописать.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;KeWu&quot;&gt;Про «я же говорил»&lt;/h3&gt;
  &lt;p id=&quot;uzcD&quot;&gt;Знаю минимум &lt;s&gt;одну&lt;/s&gt; две конторы, где в документах прямо запрещена фраза «а я говорил».&lt;/p&gt;
  &lt;p id=&quot;psyU&quot;&gt;Потому что если «ты говорил», то твоя задача, как специалиста и профессионала, состояла в том чтобы:&lt;/p&gt;
  &lt;ul id=&quot;QZYU&quot;&gt;
    &lt;li id=&quot;8mAX&quot;&gt;сказать всё важное вовремя, когда на это выделялось время, и принималось решение&lt;/li&gt;
    &lt;li id=&quot;763W&quot;&gt;убедиться, что тебя и твои аргументы услышали, и желательно зафиксировали&lt;/li&gt;
  &lt;/ul&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;TnCI&quot;&gt;В этом была твоя задача (и ее надо было выполнить), и твои полномочия (специально розданные). Прыгать постфактум, и демонстрировать заднего ума палату — уже не надо, спасибо, дорога ложка к обеду. &lt;/p&gt;
    &lt;p id=&quot;LxgW&quot;&gt;Любой финансовый аналитик замечательно умеет предсказывать &lt;em&gt;вчерашний график&lt;/em&gt;. Если ты требуемого вовремя не сделал — запиши наблюдения в заметки, авось пригодятся, &lt;em&gt;и завали ебало&lt;/em&gt;.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;Rivl&quot;&gt;Отсюда проистекает момент про то, что «говорил» неплохо бы слышать и фиксировать. Например, в ADR. Хорошо, если там будет написано не только рабочее primary-решения, но и все остальные опции, и рассмотренные варианты&lt;/p&gt;
  &lt;ul id=&quot;7XrX&quot;&gt;
    &lt;li id=&quot;nnW5&quot;&gt;можно прикинуть и оценить риски&lt;/li&gt;
    &lt;li id=&quot;3YDS&quot;&gt;пригодится на &lt;a href=&quot;https://cgvictor.ru/postmortem&quot; target=&quot;_blank&quot;&gt;постмортеме&lt;/a&gt; (удачном или не очень)&lt;/li&gt;
    &lt;li id=&quot;23cl&quot;&gt;может пригодиться для смежных решений; в основном кейсе не подошло, а &lt;a href=&quot;https://cgvictor.ru/process-green-yellow&quot; target=&quot;_blank&quot;&gt;на более узких&lt;/a&gt; — пригодится&lt;/li&gt;
    &lt;li id=&quot;M0uH&quot;&gt;избавляет от тупых вопросов «почему мы идем именно туда, именно такой походкой»&lt;/li&gt;
    &lt;li id=&quot;FawN&quot;&gt;записанное позволяет потыкать мордой: кто именно, что именно и в какой момент говорил (когда надо было), а не додумал постфактум и не переобулся в процессе&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;nwhP&quot;&gt;Некоторые решения принимаются единолично; есть конкретные люди, которые их принимают, и кто-то из них обычно несет за это ответственность. &lt;/p&gt;
  &lt;p id=&quot;7EBB&quot;&gt;Это также означает, что всех остальных, которые «точно знают как лучше» — не спрашивали, потому что требуемой &lt;a href=&quot;https://cgvictor.ru/tech-control&quot; target=&quot;_blank&quot;&gt;компетенцией&lt;/a&gt; и контекстом вопроса они не обладают. &lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;Hr0q&quot;&gt;Это нормально и приемлемо (и так надо делать). Проектировщик фундамента моста совершенно не намерен спрашивать мнения мастера по маникюру; выделенные задачи решают выделенные специалисты. Но, как вы понимаете, &lt;em&gt;для мастера по маникюру&lt;/em&gt; это всегда звучит обидно.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;lhle&quot;&gt;Вся страна с дивана лучше знает, как должны играть 11 футболистов.&lt;/p&gt;
  &lt;p id=&quot;S5MN&quot;&gt;В этот момент включаются soft skills и hard docs.&lt;br /&gt;На одних софт скиллах вывозить достаточно муторно. &lt;br /&gt;Тексто-говорильня рискует никогда не закончиться.&lt;/p&gt;
  &lt;p id=&quot;mVMF&quot;&gt;Фраза «это решение принято, и мы действуем согласно плану» работает лучше, если к нему можно показать а) что именно принято и б) какой &lt;a href=&quot;https://cgvictor.ru/plan-b&quot; target=&quot;_blank&quot;&gt;план&lt;/a&gt;. Остальное мнение — это &lt;em&gt;мнение тех, кого не спрашивали&lt;/em&gt;. По крайней мере, в этот момент.&lt;/p&gt;
  &lt;p id=&quot;te1n&quot;&gt;Излишне бюрократизировать процесс смысла тоже не вижу; мнения со стороны всегда были, есть и будут, само отрастёт; как правило «хочешь &lt;a href=&quot;https://cgvictor.ru/anti-process&quot; target=&quot;_blank&quot;&gt;мне помочь&lt;/a&gt; — отойди и не мешай».&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;ANfW&quot;&gt;В общем, пересортицу и переобувания в прыжке надо пресекать. Ничего хорошего и полезного в них чаще всего нет. &lt;/p&gt;
  &lt;p id=&quot;2jI7&quot;&gt;Если действительно надо принимать решения в &lt;a href=&quot;https://cgvictor.ru/flow-control-feedback&quot; target=&quot;_blank&quot;&gt;контрольных точках&lt;/a&gt; — лучше (для всех) не полениться, и прописать заранее: что проверяем, каким образом, когда и кем. Чтобы метания «&lt;em&gt;а вот тогда надо было вот так…&lt;/em&gt;» не сбивали прицел.&lt;/p&gt;
  &lt;p id=&quot;NnWJ&quot;&gt;&lt;strong&gt;Hopa that helps&lt;/strong&gt;.&lt;/p&gt;

</content></entry><entry><id>cgvictor:three-buttons</id><link rel="alternate" type="text/html" href="https://cgvictor.ru/three-buttons?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=cgvictor"></link><title>Метод «трех кнопок» (функциональный анализ)</title><published>2026-08-01T20:38:26.038Z</published><updated>2026-08-02T09:15:30.882Z</updated><category term="howto" label="Рецепты"></category><summary type="html">Хотел сослаться на концепцию, а интернет её похоже успешно забыл. Быстрорастворимый читкод про анализ и требования (2003)</summary><content type="html">
  &lt;p id=&quot;YLlm&quot;&gt;Хотел сослаться на концепцию, а интернет её похоже успешно забыл.&lt;br /&gt;Быстрорастворимый читкод про анализ и требования (2003)&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;lD0j&quot;&gt;Это опять &lt;a href=&quot;https://cgvictor.ru/+howto&quot; target=&quot;_blank&quot;&gt;рецепт&lt;/a&gt;, и метод быстрой оценки требований и потребностей. &lt;/p&gt;
  &lt;p id=&quot;3pVn&quot;&gt;Удобно применять для набросков, и как способ «сняться с ручника», стартовать анализ и последующее. Полноценную работу, естественно, собой не заменяет.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;hfe0&quot;&gt;Придумал/озвучил его кажется Горбунов в 2003. Ну или я от него просто в пересказе услышал. Может и вовсе ошибаюсь. &lt;/p&gt;
    &lt;p id=&quot;tvrZ&quot;&gt;Но Артём = голова, и точно мог. На сайте Бюро не нашел.&lt;/p&gt;
  &lt;/section&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;EtmR&quot;&gt;В чем прикол. От вас что-то хотят.&lt;br /&gt;Или вы решили, что от вас (вашего решения, системы, куска взаимодействий) что-то требуется, и вам нужно это запроектировать.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;08Rn&quot;&gt;— Дайте мне волшебную кнопку «пыщ!», и всё станет хорошо.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;O3Zy&quot;&gt;(вы про себя думаете: &lt;em&gt;может и не станет, но давай попробуем&lt;/em&gt;)&lt;/p&gt;
  &lt;p id=&quot;UVzq&quot;&gt;Требования пока мутные, постановка вялая, решение еще искать и искать.&lt;/p&gt;
  &lt;p id=&quot;KMQm&quot;&gt;И вы представляете себе &lt;em&gt;кнопку&lt;/em&gt;. Вы же можете себе представить кнопку? Если вы инженер, представьте рычаг; если вы басист или водитель, я не знаю, представьте педаль. Какую-то хрень, с которой можно повзаимодействовать уже известным, приемлемым способом.&lt;/p&gt;
  &lt;figure id=&quot;NyAT&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/5c/57/5c577357-dff9-4445-9903-dacf0d9dc7a5.png&quot; width=&quot;286&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;ivdY&quot;&gt;Она нихрена не делает. И не должна. От вас просили кнопку — ну вот, пожалуйста. За ~500 лет уже худо-бедно &lt;em&gt;кнопку&lt;/em&gt; все рожать научились.&lt;/p&gt;
  &lt;p id=&quot;zZ3S&quot;&gt;То, что она нихрена не делает — для нас сейчас очень важно. Она предметно выполнена, но &lt;em&gt;функционально бесполезна&lt;/em&gt;.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;aNPT&quot;&gt;Дальше вы рисуете (представляете) рядом вторую кнопку. Полностью, пока что, аналогичную первой.&lt;/p&gt;
  &lt;figure id=&quot;gMsX&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/00/28/0028117a-cd97-4119-8953-dfa8cab8f522.png&quot; width=&quot;536&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;6Kmb&quot;&gt;Они пока идентичны, как близнецы. Но будет не так.&lt;br /&gt;Но вы точно знаете, что вторая кнопка — отличается от первой. &lt;br /&gt;Тем, что она &lt;em&gt;что-то делает&lt;/em&gt;.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;dgmg&quot;&gt;Дело за малым: записать в столбик, &lt;strong&gt;что же именно она делает, чтобы отличаться от бесполезной&lt;/strong&gt;. В нужную нам сторону.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;jhMh&quot;&gt;Вот прямо в столбик и записывайте. &lt;br /&gt;Чем отличается полезная кнопка от бесполезной?&lt;/p&gt;
  &lt;p id=&quot;sYuK&quot;&gt;— что-то происходит&lt;br /&gt;— что-то запускается (начинается)&lt;br /&gt;— что-то проверяется&lt;br /&gt;— что-то обрабатывается&lt;br /&gt;— мы чего-то делаем, запрашиваем, ждем, волнуемся&lt;br /&gt;— мы чего-то ожидаем в ответ — внутри, под капотом&lt;br /&gt;— тот, кто на нее жмакнул — что-то ожидает от нее, что именно?&lt;br /&gt;— кто на нее может жмакнуть, а кто не может?&lt;br /&gt;— в чем заключается ее польза?&lt;br /&gt;— кто ее получит?&lt;br /&gt;— кто об этом узнает и как?&lt;/p&gt;
  &lt;p id=&quot;cleK&quot;&gt;В результате у вас нарисовывается модель и гипотеза того, чем отличается ваша «кнопка» от полностью бесполезной.&lt;/p&gt;
  &lt;p id=&quot;ziFE&quot;&gt;Посмотрите на свой список. Проверьте его, примерьте хотя бы на себя.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;xvpk&quot;&gt;Попробуйте увеличить полезность второй, правой кнопки, по максимуму. Как ей максимально отличаться от первой, в полезную сторону? Как вы вообще измеряете &lt;a href=&quot;https://cgvictor.ru/what-have-you-done&quot; target=&quot;_blank&quot;&gt;пользу&lt;/a&gt; в данном конкретном случае? В &lt;a href=&quot;https://cgvictor.ru/most-valued&quot; target=&quot;_blank&quot;&gt;чем&lt;/a&gt; она заключается?&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;QitZ&quot;&gt;Дайте этому списку немного подышать. Лучше сутки, или больше. Вы обязательно что-то вспомните, что-то обдумаете. Не стесняйтесь его изменять, дописывать, перефразировать. &lt;/p&gt;
  &lt;figure id=&quot;sMjg&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/eb/89/eb894b24-d550-4d53-8b7f-ebfd76ac6bfd.png&quot; width=&quot;554&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;M9Z6&quot;&gt;Возможно, вам даже захочется что-то убрать, чтобы не размазывать контекст. Вам нужна чистая польза, максимум пользы в одном, и только одном действии.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;uvCj&quot;&gt;И вот теперь, вы «рисуете» рядом третью кнопку.&lt;/p&gt;
  &lt;p id=&quot;Dwni&quot;&gt;Третья кнопка будет отличаться от второй. Как вторая отличалась от первой.&lt;/p&gt;
  &lt;p id=&quot;6Tn5&quot;&gt;Третья кнопка делает всё то полезное, что от неё ожидают, &lt;strong&gt;но делает это нормально&lt;/strong&gt;. По-человечески. Не в формате «от нас попросили, вот мы вам сделали», а так, чтобы было зашибись. Вот прям по-честному зашибись. Как надо.&lt;/p&gt;
  &lt;p id=&quot;pyVU&quot;&gt;Лучшая версия второй кнопки. Чтобы по сравнению с ней вторая кнопка меркла, и терялась в лучах славы.&lt;/p&gt;
  &lt;figure id=&quot;DFbJ&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/8f/b4/8fb47a28-844f-4a38-bd90-065b26395144.png&quot; width=&quot;789&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;wrnh&quot;&gt;Третья кнопка предусматривает, что пользователь может быть неправ. Что ему хочется, чтобы за него подумали, причем обстоятельно и лучше него. Она знает о том, что человек может сначала захотеть, а потом передумать. Что человеку страшно жмакать на всякое непонятное, ему нужна &lt;a href=&quot;https://cgvictor.ru/transparency-feature&quot; target=&quot;_blank&quot;&gt;предсказуемость&lt;/a&gt; и прозрачность ситуации. &lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;id6Q&quot;&gt;За третьей кнопкой стоит весь инженерный опыт планеты, и всё что нужно пользователю — это довериться умным людям, которые качественно подумали и за пользу, и за риски, и за сложные случаи, и за подводные камни.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;hrWx&quot;&gt;Если потребуется немножко магии, эта магия будет выполнена &lt;a href=&quot;https://cgvictor.ru/premium&quot; target=&quot;_blank&quot;&gt;в лучшем виде&lt;/a&gt;, и кнопка будет ждать от человека, на своем месте, в стужу и зной, одного единственно верного решения &lt;s&gt;в его несложной жизни&lt;/s&gt; — протянуть к ней руку (ногу, стилус, взгляд косой, слово дерзкое).&lt;/p&gt;
  &lt;p id=&quot;1yKi&quot;&gt;— что она предусматривает?&lt;br /&gt;— что будет происходить после, может лучше сделать всё сразу?&lt;br /&gt;— как обеспечить наглядность?&lt;br /&gt;— как снизить риски, какие они вообще?&lt;br /&gt;— как сделать по-человечески и по уму?&lt;br /&gt;— какие есть отраслевые стандарты и принятые практики?&lt;br /&gt;— какие связи и взаимодействия надо вспомнить?&lt;br /&gt;— как показать результат, чтобы человек понял?&lt;br /&gt;— о чем человека следует предупредить?&lt;br /&gt;— как зафиксировать результат для последующего анализа?&lt;br /&gt;— что делать, если что-то пойдет не так?&lt;br /&gt;— чего еще от нас могут захотеть в реальной жизни?&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;CCHL&quot;&gt;Важный момент: не переходите «к ограничениям» раньше времени, &lt;a href=&quot;https://cgvictor.ru/stainless&quot; target=&quot;_blank&quot;&gt;техническим&lt;/a&gt; или любым другим. Вашей фантазии можно всё. &lt;/p&gt;
    &lt;p id=&quot;zXKJ&quot;&gt;Осталось понять где из того «что можно» лежит &lt;strong&gt;то, что нужно&lt;/strong&gt;.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;Hfwt&quot;&gt;Запишите мысли целиком, не стесняйтесь. Это важное. Вот с этим вам предстоит дальше работать, в силу своего понимания и возможностей. Если &lt;a href=&quot;https://cgvictor.ru/not-eureka&quot; target=&quot;_blank&quot;&gt;понимания&lt;/a&gt; и возможностей (пока) не хватает — значит, надо сходить и узнать всё недостающее, от умных людей.&lt;/p&gt;
  &lt;p id=&quot;qkG7&quot;&gt;Вы сделали очень важную штуку: подумали, и &lt;a href=&quot;https://cgvictor.ru/think-twice&quot; target=&quot;_blank&quot;&gt;подумали дважды&lt;/a&gt;. Вы молодец.&lt;/p&gt;
  &lt;p id=&quot;L6f4&quot;&gt;Вы собрали список функциональных, и скорее всего даже вдобавок нефункциональных отличий, которыми может (могло бы) определяться ваше гипотетическое взаимодействие. Реальный мир естественно внесёт свои коррективы, но вы прикинули, &lt;em&gt;как сделать хорошо&lt;/em&gt;. &lt;/p&gt;
  &lt;p id=&quot;C3Of&quot;&gt;Можно попробовать сделать хорошо — плохо (и с компромиссами) само получится.&lt;/p&gt;
  &lt;figure id=&quot;lSEm&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/bd/66/bd664adf-2109-4c91-a0f7-2182368e067a.png&quot; width=&quot;839&quot; /&gt;
  &lt;/figure&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;EfSi&quot;&gt;Это всего лишь &lt;a href=&quot;https://cgvictor.ru/tactical-tools&quot; target=&quot;_blank&quot;&gt;метод&lt;/a&gt;, чтобы раскачать вашу мысль. Если хочется чуть боле умного, эта методика точно описана (более развесисто) например в ТРИЗе. Да много где.&lt;/p&gt;
  &lt;p id=&quot;zQi1&quot;&gt;Следующий уровень колдунства — сделать так, чтобы &lt;em&gt;кнопки не было&lt;/em&gt;. Совсем.&lt;br /&gt;Просто «вот такое надо» — а вот всё &lt;a href=&quot;https://cgvictor.ru/completed-staff-work&quot; target=&quot;_blank&quot;&gt;уже сделано&lt;/a&gt;, забирай. Лучшее взаимодействие = то, которое не нужно.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;3fJm&quot;&gt;— когда я нажму на эту кнопку, мир, каким вы его знаете, перестанет существовать. А чтобы вы, тридварасы, мне не помешали — я сделал это еще полчаса назад (ц).&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;GnGc&quot;&gt;Но об этом поговорим в другой раз, очередной раз.&lt;/p&gt;
  &lt;p id=&quot;Vov1&quot;&gt;&lt;strong&gt;Hope that hepls&lt;/strong&gt;.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;nXo9&quot;&gt;Еще обратите внимание на соседний рецепт, как &lt;a href=&quot;https://cgvictor.ru/5w-w5-analytics-cheat-code&quot; target=&quot;_blank&quot;&gt;сняться с ручника — 5W+W5&lt;/a&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;YEqJ&quot;&gt;С мест подсказывают: «а еще бывают такие кнопки, которые что-то делают, но суко так, что лучше бы блин вообще не делали». &lt;/p&gt;
  &lt;p id=&quot;rY46&quot;&gt;Бывают. Не смогу поспорить.&lt;/p&gt;
  &lt;p id=&quot;buXT&quot;&gt;Но мы тут как бы про пользу. А если вместо пользы = риски и вред, то наверное — мне кажется — не надо такое выдумывать, пока отдельно не попросили :)&lt;/p&gt;

</content></entry><entry><id>cgvictor:5w-w5-analytics-cheat-code</id><link rel="alternate" type="text/html" href="https://cgvictor.ru/5w-w5-analytics-cheat-code?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=cgvictor"></link><title>5W + W5: читкод для ленивого аналитика</title><published>2026-07-30T21:15:44.215Z</published><updated>2026-07-30T21:43:04.014Z</updated><category term="howto" label="Рецепты"></category><summary type="html">Две техники (старых как кал мамонта), которые позволяют писать проблематику и требования без лишней херни. Или хотя бы начать, для старта. Аккуратно, внутри лексика 18+.</summary><content type="html">
  &lt;p id=&quot;a8y3&quot;&gt;Две техники (старых как кал мамонта), которые позволяют писать проблематику и требования без лишней херни. Или хотя бы начать, для старта. Аккуратно, внутри лексика 18+.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;foHE&quot;&gt;Пишу коротко, как &lt;a href=&quot;https://cgvictor.ru/+howto&quot; target=&quot;_blank&quot;&gt;рецепт&lt;/a&gt; от тупняка, и от наливания воды в целеполагание. &lt;/p&gt;
  &lt;p id=&quot;zfjs&quot;&gt;Задолбало читать из раза в раз высеры вида «&lt;em&gt;проблему мы толком не поняли, но целью задачи является анализ и выработка перспективного решения, отвечающего отраслевым требованиям, и его реализация в сроки вчера&lt;/em&gt;». &lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;Bh1F&quot;&gt;Есть подозрение, что как в институте распиздяи наливали воды в дипломные работы, так и давайте теперь эту херню притащим — в бизнес-анализ, BPMN и бизнес-требования. &lt;/p&gt;
    &lt;p id=&quot;zhhd&quot;&gt;«Все равно их никто читать не будет», пускай потом инженерный отдел поебётся. Чтобы потом пообтекать миллионов на десять (в личном топе ВТБ который обосрался на $153 000 000).&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;HT6e&quot;&gt;Требуется от человека ответить на три вопроса (&lt;a href=&quot;https://cgvictor.ru/discover-define&quot; target=&quot;_blank&quot;&gt;challenge-definition-solution&lt;/a&gt;):&lt;/p&gt;
  &lt;p id=&quot;3bXD&quot;&gt;— какую проблему мы решаем&lt;br /&gt;— что мы для этого предлагаем сделать&lt;br /&gt;— нахуя делать именно так&lt;/p&gt;
  &lt;p id=&quot;gvet&quot;&gt;Следом выплюнуть хер изо рта, и не писать следом в документ что-то, что к вышеперечисленному не относится.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;cCms&quot;&gt;Почему я об этом пишу. Неглубокий, поверхностный аналитик проблематику и целеполагание — то, что от него хотят, &lt;em&gt;никто кроме него этого не сделает&lt;/em&gt; — выполняет херово. Потому что там думать и работать надо.&lt;/p&gt;
  &lt;p id=&quot;yAEd&quot;&gt;Легко заметить: целеполагание никакое, и переход «к решению» максимально быстрый. Вот я придумал, давайте сразу делать так.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;7l82&quot;&gt;Это лажа. &lt;br /&gt;&lt;br /&gt;Аналитика &lt;strong&gt;не спрашивают, как решать задачу&lt;/strong&gt;.&lt;br /&gt;Не надо учить инженеров решать задачи, спасибо, опыта явно побольше будет.&lt;/p&gt;
    &lt;p id=&quot;yvoa&quot;&gt;От аналитика требуется понять и кристаллизовать, а &lt;strong&gt;какая та задача и проблема, собственно, была&lt;/strong&gt;.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;zFb3&quot;&gt;Смотрим, как это сделать, если &lt;s&gt;вы&lt;/s&gt; ленивая тварь.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;iapH&quot;&gt;Есть две техники, краткое имя им 5W и W5. &lt;/p&gt;
  &lt;ul id=&quot;peOT&quot;&gt;
    &lt;li id=&quot;NpJ9&quot;&gt;&lt;strong&gt;5W&lt;/strong&gt;: Who, What, When, Where, Why. &lt;a href=&quot;https://en.wikipedia.org/wiki/Five_Ws&quot; target=&quot;_blank&quot;&gt;Читать тут&lt;/a&gt;. Авторство Аттик (Atticus) 175 год н.э, по трудам Аристотеля (Этика Никомаха, 2200 лет назад).&lt;/li&gt;
    &lt;li id=&quot;psZj&quot;&gt;&lt;strong&gt;W5&lt;/strong&gt;, или 5 раз «Why». Why-Why-Why-Why-Why, если нужна расшифровка. &lt;a href=&quot;https://en.wikipedia.org/wiki/Five_whys&quot; target=&quot;_blank&quot;&gt;Читать тут&lt;/a&gt;. Авторство 330 г. до н.э Аристотель (2300 лет назад).&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;6CzR&quot;&gt;Вот нихера сейчас &lt;em&gt;нового&lt;/em&gt; не сказал, согласитесь.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;LLoC&quot;&gt;5W&lt;/h2&gt;
  &lt;ul id=&quot;7172&quot;&gt;
    &lt;li id=&quot;nxMp&quot;&gt;Who? Кто. Какие вообще люди у нас затронуты проблемой, потребностью или решением.&lt;/li&gt;
    &lt;li id=&quot;dn6K&quot;&gt;What? Что. Что происходит, что идёт так, что идёт не так (или вообще не идёт). Что должно происходить. Что участвует: какие компоненты, штуки, части, куски, стороны, приблуды, черные ящики.&lt;/li&gt;
    &lt;li id=&quot;dCEI&quot;&gt;When? Когда. Когда возникает проблема, требование. Когда потребность актуальна. В какой момент &lt;em&gt;что?&lt;/em&gt; становится проблемой, и у &lt;em&gt;кого?&lt;/em&gt; Когда эта проблема должна получить решение. Когда это всё должно повлиять на окружающий мир.&lt;/li&gt;
    &lt;li id=&quot;1ySN&quot;&gt;Where? Где. В какой предметной области (или ее части) ковыряется потребитель нашего решения. Где он ожидает свою проблему решить. Где она собственно возникает. Где должно проявить себя решение, где оно должно найти свое прикладное отражение.&lt;/li&gt;
    &lt;li id=&quot;rxkF&quot;&gt;Why? Почему. Почему это всё вообще надо решать. Почему мы считаем, что именно мы эту проблему адресуем, и именно в этой предметной области. Почему это требование, решение у нас появилось и какие относительно его ожидания (и у &lt;em&gt;кого&lt;/em&gt;). Зачем требуется результат.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;ShFd&quot;&gt;Если вы не можете ответить даже на эти тупые элементарные вопросы по проблематике — вы вообще нихрена (пока) не одупляете, что вы собираетесь сделать, и на кой-хер оно нужно. &lt;/p&gt;
  &lt;p id=&quot;nP84&quot;&gt;Без ответов вы никакую аналитику не напишете: ответы с их поиском — &lt;em&gt;сюрприз&lt;/em&gt; — и называются задачей аналитики.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;mZff&quot;&gt;Наверху три крупных вопроса по структуре работы. Потрудитесь приложить к ним (каждому из трех) вот эти несложные пять, посмотрите на ответы. И почему вы в них уверены, где вы эти ответы взяли, как вы их находили.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;JzqQ&quot;&gt;Несложно заметить, что часть ответов будет повторяться. Это нормально и даже правильно, сильно расходиться они органически не должны. Если вдруг такое происходит — у вас scope проблематики и решений «поплыл», вы решаете не те задачи неподходящим инструментом; иди думай ещё.&lt;/p&gt;
  &lt;p id=&quot;VgVe&quot;&gt;Последний вопрос будем копать в глубину.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;DYLu&quot;&gt;W5&lt;/h2&gt;
  &lt;p id=&quot;pR99&quot;&gt;Идем копать в глубину. Поиск проблематики требует докапываться до причин и потребностей. Для этого есть &lt;a href=&quot;https://cgvictor.ru/tactical-tools&quot; target=&quot;_blank&quot;&gt;методика&lt;/a&gt;: задавать вопрос «почему?», до тех пор пока не достигнем финального — то есть первичного — ответа. &lt;s&gt;Или нас уебут лопатой за надоедливые вопросы.&lt;/s&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;qYRC&quot;&gt;Если сложно «играть в почемучку» — замените вопрос «почему» на вопрос «нахуя». Так получается сильно бодрее и резвее.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;6xQb&quot;&gt;Цепочка вопросов «нахуя» быстро и бесхитростно поднимает целеполагание. Никто не покупает &lt;a href=&quot;https://cgvictor.ru/money-cant-buy&quot; target=&quot;_blank&quot;&gt;сверло ради сверла&lt;/a&gt;, никому не интересно какие вы там ручки и кнопочки изобретаете, и какого вкуса ваши фломастеры. Вам нужно найти ответ «какая изначальная потребность» и «какие ожидания».&lt;/p&gt;
  &lt;ul id=&quot;38ea&quot;&gt;
    &lt;li id=&quot;hqP9&quot;&gt;надо чтобы цифры считались&lt;/li&gt;
    &lt;li id=&quot;cOo1&quot;&gt;нахуя? чтобы мы видели, сколько реальные/проверяемые цифры&lt;/li&gt;
    &lt;li id=&quot;L8bt&quot;&gt;нахуя? чтобы сравнить их с нашими возможностями&lt;/li&gt;
    &lt;li id=&quot;3o3F&quot;&gt;нахуя? чтобы вовремя отловить расхождения желаемого с действительным&lt;/li&gt;
    &lt;li id=&quot;E7sS&quot;&gt;нахуя? чтобы не остаться с голой жопой и кассовым разрывом в неподходящий момент&lt;/li&gt;
    &lt;li id=&quot;N9YZ&quot;&gt;нахуя? чтобы почесаться заранее, а не когда настанет полный пицзец&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;HAKF&quot;&gt;Я даже тут в придуманном примере могу на каждом уровне предложить уже ряд решений, которые адресуют именно этот уровень и разную глубину/ширину проблематики. &lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;Sz9H&quot;&gt;Выбрать, на каком &lt;a href=&quot;https://cgvictor.ru/decision-level-of-shaverma&quot; target=&quot;_blank&quot;&gt;уровне&lt;/a&gt; решаем проблему — тоже задача аналитика, уж выбрать из накопанного вы точно сможете; и не будете фантазировать решения выдуманных проблем, т.к вот вам реальные уже озвучили.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;2h7E&quot;&gt;Если не копать в глубину по W5, вы рискуете нагородить ситуативных припарок, которые только усложняют людям жизнь — потому что реальную потребность и реальную проблему вы не только не решили, но даже не нашли. Следовательно — не понимаете, и описать не можете.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;riDW&quot;&gt;Scopes и рамки&lt;/h2&gt;
  &lt;p id=&quot;vxVW&quot;&gt;Берем те же две практики, и повторяем вопросы с негативной коннотацией. То есть, «наоборот».&lt;/p&gt;
  &lt;p id=&quot;LFnc&quot;&gt;Это нужно сделать, чтобы &lt;a href=&quot;https://cgvictor.ru/discover-define&quot; target=&quot;_blank&quot;&gt;сузить, определить и формализовать&lt;/a&gt; вашу предметную область: не пытаться разом сожрать слона, повоевать &lt;a href=&quot;https://cgvictor.ru/no-competition&quot; target=&quot;_blank&quot;&gt;во всех направлениях&lt;/a&gt; одновременно и (не) обложиться по определению незавершаемыми задачами.&lt;/p&gt;
  &lt;ul id=&quot;Rf5T&quot;&gt;
    &lt;li id=&quot;7Bkg&quot;&gt;Who / not: кого рассматриваемая (предполагаемая) проблематика не затрагивает, и затрагивать не должна? Чьи проблемы нас не ебут, и ебать не должны? Кому мы ничего в жизни не обещали, ничья персональная армия, и кто нам даже спасибо не скажет? Кто основной приобретатель выгоды, а кто им не является и не должен? Чем это всё определяется, кстати?&lt;/li&gt;
    &lt;li id=&quot;ld8f&quot;&gt;What / not: что мы не делаем, и делать не будем? Какая предметная область и домен нас (или других акторов) не касается? Что мы не будем трогать, потому что мы не сможем далее за это отвечать? Что мы обязаны оставить в покое?&lt;/li&gt;
    &lt;li id=&quot;81XN&quot;&gt;When / not: когда по времени мы можем предложить решения, в какой момент, а где уже всё поздняк метаться и поезд ушёл? Когда и в какой момент мы еще не можем решить проблему и/ли даже её понять в предметной связи — например, требуется сбор и анализ данных? Когда во внешней цепочке взаимодействий появляемся мы / наши возможности, либо что происходит вне очерченных временнЫх рамок?&lt;/li&gt;
    &lt;li id=&quot;a20f&quot;&gt;Where / not: в каких частях предметной области проблематика и рассматриваемая потребность НЕ возникает? И почему так получается? (вопросы WhyX5 никто не отменял). Где наши решения не применимы, или не будут применимы? Где результаты и вмешательства НЕ нужны, не будут актуальны, не будут востребованы, не будут тупо найдены в нужный момент? Чего можно НЕ трогать, или даже нужно НЕ трогать, и не поломать ни в коем случае?&lt;/li&gt;
    &lt;li id=&quot;n6Kb&quot;&gt;Why / not: почему эту проблему НЕ надо решать? (может это не проблема вовсе, а натягивание совы на глобус). Почему вот эти фантазии не надо пихать именно сюда. Почему эта задача НЕ возникает в других местах, или у других людей, или в других ситуациях (видимо, они чем-то отличаются, чем?). Почему вот такой уровень решения нам подходит, а на вот такой замахиваться точно не стоит (дорого, долго, непонятно, неосмысленно, бесконечно итп).&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;Zw8L&quot;&gt;Последний Why точно также разворачивается через W5 в глубину, и точно также применима, при желании, негативная проверка на каждом уровне. &lt;/p&gt;
  &lt;p id=&quot;6S6s&quot;&gt;Определяем а) рамки, б) status quo «как сейчас», в) негативные кейсы г) out of scope который нас не касается.&lt;/p&gt;
  &lt;ul id=&quot;Yr2R&quot;&gt;
    &lt;li id=&quot;AK1c&quot;&gt;&lt;em&gt;надо чтобы цифры считались&lt;br /&gt;&lt;/em&gt;что произойдет, если это не так, как это решается, или решалось ранее?&lt;/li&gt;
    &lt;li id=&quot;N5mo&quot;&gt;&lt;em&gt;чтобы мы видели, сколько реальные/проверяемые цифры&lt;br /&gt;&lt;/em&gt;что если цифры не реальные, или мы их не видим, или не можем достоверно собрать?&lt;/li&gt;
    &lt;li id=&quot;gXo5&quot;&gt;&lt;em&gt;чтобы сравнить их с нашими возможностями&lt;/em&gt;&lt;br /&gt;а где определяются наши возможности? что если мы не можем сравнить, потому что нихера не знаем, может туда тоже покопать? в чем заключается «сравнение», а в чем оно НЕ заключается, или НЕ измеряется?&lt;/li&gt;
    &lt;li id=&quot;mdYT&quot;&gt;&lt;em&gt;чтобы вовремя отловить расхождения желаемого с действительным&lt;/em&gt;&lt;br /&gt;что если мы не можем их отловить, или не можем отловить их вовремя? Кстати, что такое «вовремя»? Что должно конкретно произойти, если налицо расхождения, и что мы можем-должны сделать в этот момент, а что не можем? А если не мы, то кто? Как они об этом должны узнать?&lt;/li&gt;
    &lt;li id=&quot;VRHA&quot;&gt;&lt;em&gt;чтобы не остаться с голой жопой и кассовым разрывом в неподходящий момент&lt;/em&gt;&lt;br /&gt;в чем наши риски, почему они наши? Какие есть критерии проблемной ситуации, а что ею не является. Как мы это понимаем, или кто это понимает.&lt;/li&gt;
    &lt;li id=&quot;IFzc&quot;&gt;&lt;em&gt;чтобы почесаться заранее, а не когда настанет полный пицзец&lt;/em&gt;&lt;br /&gt;что такое «заранее», какой у нас объективный горизонт? С какой уверенностью мы должны дать результат, кому? Как мы отличаем «наблюдаемый полный пицзец» от штатных расхождений, операционной возни и просто херовых данных? Какие ожидания по горизонту? Куда идет это знание, что стратегический уровень, что тактический, а что вообще не наша проблема?&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;nlEB&quot;&gt;В каком порядке комбинировать, и с каким усердием прикладывать — это зависит уже от того, чего от вас (и аналитической группы) вообще ждут. Упороться и писать &lt;code&gt;(3 уровня Х 5W X W5)&lt;/code&gt; = 75 тезисов, плюс столько же негативных, может и избыточно. Это потом еще кому-то читать придётся.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;BFmg&quot;&gt;Но если от вас &lt;em&gt;нужны&lt;/em&gt; вот эти конкретные знания и анализ, а вы не почесались &lt;em&gt;хотя бы попробовать&lt;/em&gt; их поискать, тупыми вопросами дяди Аристотеля — ну, это халтура. &lt;/p&gt;
    &lt;p id=&quot;wCX2&quot;&gt;Риск херовой аналитики — просранная задача, сожженные бюджеты и жидкий дурно пахнущий результат. Иногда в стоимости рисков бОльший, чем если бы вообще нихрена не делали, сэкономили денег-времени-нервов.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;f3Iz&quot;&gt;Задавать вопросы, формулировать ответы и прорабатывать гипотезы надо до того, как вы вообще пойдете что-то там креативить в описаниях и реализациях. Элементарно, иначе = вы понятия не имеете, что делаете и какие проблемы решаете. &lt;/p&gt;
  &lt;p id=&quot;tXOa&quot;&gt;С большой вероятностью решаете не те, не там и неподходящими инструментами. Корейский рандом.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;7Gty&quot;&gt;Что-то можно вывозить на аналогиях и опыте; это в принципе нормально, это тоже чит-код если повезёт. &lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;kucR&quot;&gt;Маловероятно, что у вас в предметной области образовались проблемы, которые никто до лично вас на планете-земля никогда не решал. &lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;jAQO&quot;&gt;Можно и нужно (!) пойти посмотреть, как это адресуется в мире, у конкурентов, в best practices, у других людей.&lt;/p&gt;
  &lt;p id=&quot;Ej6b&quot;&gt;Если вы почему-то этого не сделали = выдумываете велосипед.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;9sla&quot;&gt;Маркер хуеты: если в части о проблематике и целеполагании нет &lt;strong&gt;конкретных ответов на конкретные вопросы&lt;/strong&gt; (типа перечисленных), а есть налитая вода с общими словами — значит, надо уебать. &lt;/p&gt;
  &lt;p id=&quot;FEN1&quot;&gt;Либо налицо халтура, либо ответы придется искать на ходу и выдумывать «а что там реально надо-то было». С непредсказуемым результатом.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;zg5L&quot;&gt;&lt;a href=&quot;https://cgvictor.ru/+howto&quot; target=&quot;_blank&quot;&gt;Рецепты&lt;/a&gt;. Hope that helps.&lt;/p&gt;

</content></entry><entry><id>cgvictor:show-me-the-money</id><link rel="alternate" type="text/html" href="https://cgvictor.ru/show-me-the-money?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=cgvictor"></link><title>Наглядность это фича</title><published>2026-07-18T12:18:57.094Z</published><updated>2026-08-01T21:10:36.885Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img1.teletype.in/files/87/48/8748a526-f9c7-483c-9e4f-11afff7c002b.png"></media:thumbnail><category term="development" label="Разработка"></category><summary type="html">Чем сложнее система, тем выше внутри нее спрос на наглядность, прозрачность и проверяемость. Это продается, это ценится.   Это позволяет принимать бизнесовые решения.</summary><content type="html">
  &lt;p id=&quot;nF7V&quot;&gt;Сейчас немного лень/некогда писать, есть интереснее задачи. Но хочу отметить на будущее, что чем сложнее система, тем выше внутри нее спрос на наглядность, прозрачность и проверяемость. Это продается, это ценится. &lt;/p&gt;
  &lt;p id=&quot;PaRm&quot;&gt;Это позволяет принимать бизнесовые решения. Решения на граммулечку лучше и/ли быстрее тех конкурентов, у которых наглядности и проверяемости нет.&lt;/p&gt;
  &lt;p id=&quot;fnwu&quot;&gt;И всё. Это достаточная серебряная пуля, чтобы принимать решения в пользу ее наличия у себя.&lt;/p&gt;
  &lt;p id=&quot;ZnMa&quot;&gt;Иллюстрация вот сюда &lt;a href=&quot;https://cgvictor.ru/transparency-feature&quot; target=&quot;_blank&quot;&gt;https://cgvictor.ru/transparency-feature&lt;/a&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;figure id=&quot;Pb2I&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/b3/3b/b33b432d-2624-4ce9-b14c-37760a3dedeb.png&quot; width=&quot;859&quot; /&gt;
    &lt;figcaption&gt;Show me the money (c)&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;vr8L&quot;&gt;&lt;em&gt;Аналитик дуреет с этой прикормки (ц)&lt;/em&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;9VAZ&quot;&gt;Классы и секторы задач, которые решают этим направлением:&lt;/p&gt;
  &lt;ul id=&quot;LlTu&quot;&gt;
    &lt;li id=&quot;G7vG&quot;&gt;работает ли у нас основная бизнес-цепочка, и если да, то как именно&lt;/li&gt;
    &lt;li id=&quot;gTrE&quot;&gt;есть ли у нас фундаментальные косяки и мутные места, которые мы почему-то не видим и счас прощёлкаем лицом&lt;/li&gt;
    &lt;li id=&quot;BegQ&quot;&gt;есть ли у нас системные пробелы и вялые области, в которых регулярно мы продалбываем деньги и время&lt;/li&gt;
    &lt;li id=&quot;swS3&quot;&gt;есть ли у нас, не дай бог, внутренние проёбы и даже злонамеренные действия кого-то внутри управляемого контура (подрядчики, сотрудники, отделы, аналитика, you name it)&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;stpg&quot;&gt;Несложно заметить, что всё это — задачи высокого, управленческого уровня, где риски и где деньги.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;y4UM&quot;&gt;Скриншотик полностью синтетический, если что, слой данных выдуман от начала до конца. Это я ребятам возможности подхода иллюстрировал.&lt;/p&gt;
  &lt;figure id=&quot;OLNY&quot; class=&quot;m_retina&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/b5/32/b53281bf-5d6e-43bb-bfd5-f4ef30c17276.png&quot; width=&quot;470&quot; /&gt;
  &lt;/figure&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;MiEw&quot;&gt;&lt;em&gt;Дописано позже.&lt;/em&gt; Что еще важно в этой связи: вот тот скриншотик и даже инструмент под ним (там интерактив) мне собрала китайская нейросетка. Потому что я недолюбливаю решения от observablehq, а ей норм.&lt;/p&gt;
  &lt;p id=&quot;GQSV&quot;&gt;Всё, что я вдумчиво делал — это дал ей пример данных, и мы посидели покурили с железкой вопрос «как нам сделать всё это наглядным». Что важно, что неважно. Где узкие места, где неявности, где неочевидные места и как их человеку подсветить.&lt;/p&gt;
  &lt;p id=&quot;Z8ZX&quot;&gt;А эта штука доступна примерно каждому. То есть, даже вам, даже если у вас нет четверти века опыта — &lt;em&gt;у вас нет, а у сетки-то есть&lt;/em&gt;, насквозь пропиталася. &lt;/p&gt;
  &lt;p id=&quot;qc8P&quot;&gt;Сформулируйте гипотезы, продумайте ходы. Делов на один кальян.&lt;/p&gt;

</content></entry><entry><id>cgvictor:no-local-secrets</id><link rel="alternate" type="text/html" href="https://cgvictor.ru/no-local-secrets?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=cgvictor"></link><title>Переносимый локальный secret (и «взлом» Макса)</title><published>2026-06-10T11:14:08.107Z</published><updated>2026-06-10T11:28:42.886Z</updated><category term="development" label="Разработка"></category><summary type="html">Клиентский секрет сам по себе лежит на клиенте, а значит секретом уже не является. Со всеми вытекающими граблями и практиками. Сразу посмотрим, как сделать правильно.</summary><content type="html">
  &lt;p id=&quot;tRkJ&quot;&gt;Клиентский секрет сам по себе лежит на клиенте, а значит секретом уже не является. Со всеми вытекающими граблями и практиками. Сразу посмотрим, как сделать правильно.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;eKIL&quot;&gt;Вот есть веб-приложение, которое после одного раза аутентификации передает на клиент некое секретное знание — будь то &lt;a href=&quot;https://cgvictor.ru/jwt-tension&quot; target=&quot;_blank&quot;&gt;JWT&lt;/a&gt;, или просто уникальный токен — и дальше если этот секрет передали обратно (в приложение), приложение ему верит.&lt;/p&gt;
  &lt;p id=&quot;wb0O&quot;&gt;Схема распространенная как воздух. Неудивительно, что &lt;a href=&quot;https://cgvictor.ru/edge-cdn-max-flaw&quot; target=&quot;_blank&quot;&gt;создатели&lt;/a&gt; популярного мессенджера &lt;s&gt;сделали всё на отъебись&lt;/s&gt; выбрали именно её. На их месте, в общем-то, мог быть кто угодно другой: сделать нормально и правильно — это немного подумать надо.&lt;/p&gt;
  &lt;p id=&quot;jUhs&quot;&gt;Беда здесь в том, что мы доверяем единственному фактору. Даже если в полном flow аутентификации их использовалось несколько &lt;s&gt;вплоть до анализа кала&lt;/s&gt;. &lt;/p&gt;
  &lt;p id=&quot;7zwi&quot;&gt;Когда аутентификация пройдена один раз, вот этот самый секрет становится единственным фактором, который всё определяет.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;9yJH&quot;&gt;Занудно напомню терминологию:&lt;br /&gt;— &lt;em&gt;аутентификация&lt;/em&gt; — понять, кто к нам ломится&lt;br /&gt;— &lt;em&gt;авторизация&lt;/em&gt; — понять, чего ему сейчас можно делать&lt;/p&gt;
  &lt;/section&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;wcYJ&quot;&gt;Схема с одним токеном, и одним секретом, &lt;em&gt;говоря формально&lt;/em&gt;, имеет право на жизнь. Это как один ключ от двери в квартиру, и по массе никого особо не парит, что можно ключ передать соседу. Пока он не окажется в чужих руках, и следом окажется, что этого достаточно.&lt;/p&gt;
  &lt;p id=&quot;pshF&quot;&gt;Собственно exploit в данном случае так и сработает, аналогично ключам: вытащи token из сессии браузера, руками, передай в другой браузер, и всё «заработает», тебе/злоумышленнику «дальше можно».&lt;/p&gt;
  &lt;p id=&quot;snnk&quot;&gt;Вся защита на этом уровне строится вокруг того, чтобы ключик-токен нельзя было запросто вытащить.&lt;/p&gt;
  &lt;p id=&quot;sEuH&quot;&gt;Браузерные localStorage и аналогичные инструменты &lt;strong&gt;не рекомендуются&lt;/strong&gt; для использования в такой схеме. Ладно что я могу открыть консоль и скопировать оттуда что-то руками. Хуже то, что любой исполняемый код в том же контексте, имеет те же самые возможности.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;8i21&quot;&gt;На веб-приложении доезжает ведро чужого кода из разных источников. Например — аналитика, реклама, трекеры ошибок итп. &lt;/p&gt;
    &lt;p id=&quot;7C6f&quot;&gt;Вы правда на 100% уверены, что никто их не сломает и не впихнет туда &lt;code&gt;localStorage.getItem()&lt;/code&gt; с последующей пересылкой куда надо — ? &lt;br /&gt;И как вы &lt;a href=&quot;https://cgvictor.ru/check-it&quot; target=&quot;_blank&quot;&gt;собираетесь&lt;/a&gt; это проверять?&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;QYnD&quot;&gt;Какие-то части данных можно пометить как «неизвлекаемые» (см про non-extractable), но из какого-то контекста прочитать их все-таки можно. И руками можно.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;LrmW&quot;&gt;В этот момент уместно вспомнить про cookie, которые тоже локальное хранилище какой-то фигни. И вот как раз его можно пометить, как недоступное для клиентского кода — атрибуты httpOnly, политики sameSite. Вредоносный код не имеет к нему доступа, и иметь не будет; эти значения внутри себя обрабатывает только браузер, сам шлет в приложение, и руками их на клиенте трогать нельзя вообще, их даже не видно.&lt;/p&gt;
  &lt;p id=&quot;573Y&quot;&gt;Сразу отсекает все атаки «уровня клиента приложения», доступ ограничен.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;DBlK&quot;&gt;Это не панацея ни в коем случае, всё что сохранено в cookie jar и летит по сети — точно также можно спереть, только придумать как. Варианты есть. &lt;/p&gt;
    &lt;p id=&quot;T8Qp&quot;&gt;Самый очевидный с XSS и внедрением кода мы (вроде как) отсекли. &lt;br /&gt;Менее очевидные — остаются.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;lubw&quot;&gt;Для примера и последующего разбора представим, что я копирую руками полностью профиль браузера: со всеми хранилищами, cookie jar и иными «недоступными» фишечками. Если я перенесу такой профиль на другую машину, или сопру его при помощи malware на системе — вуаля. Это полностью валидный профиль. Как один, и единственный фактор для проверки со стороны приложения. &lt;/p&gt;
  &lt;p id=&quot;tWl9&quot;&gt;Вот так не надо делать, если мы хотим предусмотреть более одной проверки.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;nyPc&quot;&gt;&lt;a href=&quot;https://cgvictor.ru/already-hacked&quot; target=&quot;_blank&quot;&gt;Я уже писал о том&lt;/a&gt;, что в 2026 расслабляться поздно, защита должна быть комплексной (раз) и постоянной (два). Комплексная говорит про то, что одному фактору доверять не стоит. Постоянной — о том, что «проверил и дальше всё можно» это слишком жирная и проблемная схема, в наших реалиях.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;y6Fj&quot;&gt;Ситуация, когда человеку малварь из ботнета сперла всё, что было на локальной машине — в 2026 реальность и данность. &lt;/p&gt;
    &lt;p id=&quot;ymJz&quot;&gt;Вместе с доступами почты, полным профилём, и даже, если малварь умная, с сетевыми параметрами: вредонос проксирует запросы прямо с машины пользователя. В ту минуту, когда ему этого захочется. &lt;/p&gt;
    &lt;p id=&quot;3UnZ&quot;&gt;Вчера запросы были легитимными (с точки зрения авторства), прямо сейчас уже не очень. А ничего кроме времени технически не изменилось вовсе.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;QJtS&quot;&gt;Как надо: &lt;strong&gt;во-первых, фингерпринтинг&lt;/strong&gt;. Вместе с набором данных в профиле пользователя, у нас со стороны приложения есть возможность получить ряд других данных, которые связаны с другими параметрами. Например, адреса подключения. Например, технический фингерпринт фронтенда (даже браузера). Например, сетевой роутинг. Например, локальное системное хранилище секретов (которое, напомню, лежит не в браузере, а слоем ниже — это там где пины и хеши отпечатков пальцев).&lt;/p&gt;
  &lt;p id=&quot;gucm&quot;&gt;Доверять &lt;em&gt;только&lt;/em&gt; фингерпринтингу для аутентификации мы, понятное дело, не можем. Это не уникальная инфа. Но вот использовать его для детекции аномалий и взять оттуда факт совпадения технически в качестве второго фактора проверки — это как раз можем. &lt;em&gt;Нам не надо «доверять»; нам надо поймать ситуацию, когда надо «не доверять»&lt;/em&gt;. Это другая задача, она красиво решается как раз.&lt;/p&gt;
  &lt;p id=&quot;Sz2a&quot;&gt;На практике, если мы (в приложении) знаем про конкретно этот токен, что для него изначально фиксировались вот такие гео, сетевой адрес, ключ браузера — а потом они почему-то не совпадают — не, парень, что-то тут не так. Давай-ка мы перестанем тебе доверять, и прогоним дополнительные проверки.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;g3dY&quot;&gt;&lt;strong&gt;Во-вторых, набор сессий и история данных&lt;/strong&gt;. Фингерпринтинг (сам по себе) не очень хорош тем, что он может меняться, и вообще не полностью уникален. Человек включил/отключил VPN, перескочил с мобильной сети на вайфай, поменял AS провайдера, обновил браузер — фингерпринты не совпали, и мы пользователю начнем портить жизнь проверками безопасности. Где-то будет оправдано, а где-то совсем не очень.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;cNaJ&quot;&gt;Поэтому имеет смысл вести отдельный, не привязанный к токенам, список успешных дополнительных пройденных проверок. &lt;/p&gt;
    &lt;p id=&quot;ch2j&quot;&gt;Отдельно список гео, с радиусом. Отдельно список IP и подсетей. Отдельно список автономных систем. Отдельно список браузеров и их фингеров.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;lgfr&quot;&gt;Даже если он будет дофига большой — он все равно конечный. Ну да, у пользователя может быть 100 различных подсетей, штук 10 гео (сколько у него там VPN-ов), десяток локаций — ну камон, дом-работа-тёща-дача-любимое кафе, и все VPN сверху. Но их все равно ограниченное количество.&lt;/p&gt;
  &lt;p id=&quot;sYLe&quot;&gt;Если сетевые параметры изменились в сессии, но все равно изменение попадает в тот список, который мы уже ранее видели — это нормально, работай дальше. Если человек переключил VPN, но он это уже делал, и мы знаем его 2 адреса/подсети — да бог бы с тобой. Два, три, десять, сотня значений — это все равно лучше, чем «весь интернет».&lt;/p&gt;
  &lt;p id=&quot;hkAc&quot;&gt;Вот если мы конкретно это подключение не видели — иди перепроверяй. Но один раз: дальше мы эту проверку запомним, и больше компостировать мозг не будем. Fair enough.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;VHiv&quot;&gt;В-третьих, это самое вкусное и достаточно сложное: &lt;strong&gt;гранулярный уровень доверия&lt;/strong&gt;. Проверка аутентификации в бинарном смысле «всё можно/иди нафиг» — непозволительная местами роскошь, гибче надо стать. Внутри системы есть разные места, у них разные риски, разный уровень доверия.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;cPjm&quot;&gt;Хочешь пользоваться приложением, но сменил подсеть, и мы ее знаем — да бог бы с тобой, валяй. А для того, чтобы пойти копаться в админке и биллинге, руками трогать настройки и деньги — неа, родной, давай-ка ты полностью пройдешь все проверки еще разок, и мы будем знать что они прямо сейчас честные (раз) и актуальные на текущую минуту (два). &lt;/p&gt;
    &lt;p id=&quot;h1tq&quot;&gt;Даже если всё совпадает, время проверок важно: вдруг у тебя ноутбук спёрли прямо в том кафе, с открытым браузером.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;pHbM&quot;&gt;Таким образом, мы знаем и трекаем не только сессии (по ключам и токенам), но и проставляем каждой из них степень доверия. Проверялось час назад? Отлично. Совпали все параметры проверок? Умничка. &lt;/p&gt;
  &lt;p id=&quot;eijD&quot;&gt;Поменялась подсеть или фингер браузера? Понижаем доверие до среднего по больнице, смотри свои гифки с котиками, но в биллинг тебе уже нельзя. &lt;/p&gt;
  &lt;p id=&quot;1vZU&quot;&gt;Сессия живет уже полгода, и вдруг очнулась спустя месяц неактивности? Это уже минималочка, на тоненького, тебе доступно только чтение. &lt;/p&gt;
  &lt;p id=&quot;rJv3&quot;&gt;Ну и далее по аналогии, что у вас там в приложении есть.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;vEQ3&quot;&gt;Если говорить терминологически, аутентификацию мы не трогаем, а вот авторизация («что можно») в этом кейсе обрастает дополнительно фичами и возможностями.&lt;/p&gt;
  &lt;/section&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;KFAw&quot;&gt;Если расширять по аналогии пример с «ключами от квартиры», то давайте предположим, что у нас отрастает консьерж, и дополнительные проверки по широкому ряду признаков.&lt;/p&gt;
  &lt;ul id=&quot;pmng&quot;&gt;
    &lt;li id=&quot;Ilv5&quot;&gt;Вот есть список людей, у которых в принципе может быть ключ. Кто-то пришел незнакомый — вопросы.&lt;/li&gt;
    &lt;li id=&quot;jQhn&quot;&gt;Вот у нас есть sanity check, когда всяких товарищей в абибасах гоповатого вида дополнительно проверят на входе; тут мутных личностей и человеках в масках на пол-лица почему-то заранее не любят.&lt;/li&gt;
    &lt;li id=&quot;L4LO&quot;&gt;Вот у нас есть система видеонаблюдения с записью, чтобы найти концы, если что-то пошло не так.&lt;/li&gt;
    &lt;li id=&quot;mGgB&quot;&gt;Вот пришли вроде бы знакомые люди, но выносят мебель и ценности мешками — это подозрительная и нечастая операция, давай-ка разбираться.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;wTqU&quot;&gt;Отдельно галочка &lt;a href=&quot;https://cgvictor.ru/transparency-feature&quot; target=&quot;_blank&quot;&gt;про проверяемость&lt;/a&gt;: неплохо бы иметь возможность, какие параметры и комбинации сейчас считаются доверенными, для сессий работы. &lt;/p&gt;
  &lt;p id=&quot;WgU5&quot;&gt;А следом иметь возможность что-то оттуда выкинуть. Если я знаю, что доступа из Зимбабве в моем контексте точно быть не должно. Как минимум кнопка «разлогинить и выкинуть всё запомненное нафиг», для проблемного случая.&lt;/p&gt;
  &lt;p id=&quot;RbSV&quot;&gt;И логирование. Чего было, с какими параметрами, в какой сессии, с какими подключениями. Больше логов — чище жопа.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;Vf3c&quot;&gt;Вот это, все три штуки — правильный, современный и взрослый подход.&lt;/p&gt;
  &lt;p id=&quot;Kwj0&quot;&gt;Рекомендую осознать и применять.&lt;/p&gt;
  &lt;p id=&quot;np0w&quot;&gt;&lt;strong&gt;Hope that helps&lt;/strong&gt;.&lt;/p&gt;

</content></entry><entry><id>cgvictor:risk-dependancy-chain</id><link rel="alternate" type="text/html" href="https://cgvictor.ru/risk-dependancy-chain?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=cgvictor"></link><title>Цепочка возрастания ответственности (про риски, и про AI)</title><published>2026-05-30T14:25:19.586Z</published><updated>2026-06-02T17:35:25.003Z</updated><category term="development" label="Разработка"></category><summary type="html">Про математику и мат.статистику, которую не на_бёшь. Про то, как копятся риски, если их вовремя не обрабатывать (или просто некем, если вы фанат AI-интеграций).</summary><content type="html">
  &lt;p id=&quot;9IJ5&quot;&gt;Про математику и мат.статистику, которую не на_бёшь. Про то, как копятся риски, если их вовремя не обрабатывать (или просто некем, если вы фанат AI-интеграций).&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;igyl&quot;&gt;Знаете, есть такой бородатый анекдот родом из девяностых:&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;AeeX&quot;&gt;— этот компьютер возьмет на себя 50% твоей работы!&lt;br /&gt;— отлично, дайте два!&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;pZd2&quot;&gt;К 2026 году мы, как индустрия, получили штуку в виде AI, которая неплохо справляется с какими-то прикладными задачами. Задачи обычно укладываются в описание «текст на входе, текст на выходе», что полностью логично — это именно то, чем занимаются нейросетевые генераторы текста. Аббревиатура GPT, кто забыл, означает архитектуру «генеративный предиктивный трансформер». Трансформер текста.&lt;/p&gt;
  &lt;p id=&quot;pJFX&quot;&gt;Два класса задач, которые убедительно получили выигрыш в этой связи&lt;/p&gt;
  &lt;ul id=&quot;rRTX&quot;&gt;
    &lt;li id=&quot;b4UA&quot;&gt;генерация текста, будь то читаемый связный нарратив, программный код, отчеты или просто теоретизирования&lt;/li&gt;
    &lt;li id=&quot;EctS&quot;&gt;распознавание человеческого текста в неопрятной форме, то есть написанное в формах, сказанное вслух или найденное в интернетах&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;6oXK&quot;&gt;С какой-то долей применимости вышеозначенные классы задач &lt;em&gt;можно&lt;/em&gt; заменить на программного агента. Или несколько. Выигрышным (для автоматизации) моментом можно назвать и то, что огромная доля &lt;em&gt;интерфейсов&lt;/em&gt; для взаимодействия любых систем в нашем мире изначально &lt;em&gt;текстовая&lt;/em&gt;. Даже HTTP, квартальная отчетность или интерфейс «Наташенька, подготовьте решение, пожалуйста».&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;2A70&quot;&gt;Можно — не значит нужно. Потому что к выполненной задаче обычно прилагается такая штука, как ответственность за ее выполнение. &lt;/p&gt;
  &lt;ul id=&quot;wUNn&quot;&gt;
    &lt;li id=&quot;VUqJ&quot;&gt;если мы хотим, чтобы код был написан, значит нам от него потребуется применимость, выполнимость, качество и прочие формальные штуки&lt;/li&gt;
    &lt;li id=&quot;3Owb&quot;&gt;если мы хотим, чтобы квартальные отчеты решили поставленную задачу, значит в них должна быть написана не херня&lt;/li&gt;
    &lt;li id=&quot;Rrdr&quot;&gt;если мы хотим, чтобы «Наташенька подготовила решение», значит нам нужно получить не просто абы какой выход, а что-то отдаленно напоминающее это самое решение&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;dSWD&quot;&gt;Здесь фундаментальный затык. Потому что программная система или железный агент нам &lt;em&gt;ничего не должен&lt;/em&gt;. И никому, в общем-то, ничего не должен. То, что сетка решает 89% процентов тестовых задач тестовой выборки с ответами, напоминающими правильные — ничего не гарантирует относительно реальной поставленной задачи, вот этой, в этом контексте и в этот момент времени.&lt;/p&gt;
  &lt;p id=&quot;eBKj&quot;&gt;Приходится полагаться на статистику. Причем чужую.&lt;/p&gt;
  &lt;p id=&quot;sDo0&quot;&gt;Для простоты мы (даже) можем говорить про статистику «одноразового» решения — и даже там 89%, и даже 99% не равны 100%. &lt;strong&gt;Вопрос цены ошибки&lt;/strong&gt;. Шанс в 1% обосраться на 1 миллион зеленью уже не выглядит сильно надежным, предсказуемым и допустимым для большого класса прикладных задач.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;hGc4&quot;&gt;Есть баянистый пример про конфетки:&lt;/p&gt;
    &lt;p id=&quot;Finz&quot;&gt;В одной миске 100 конфеток, неотличимых друг от друга. В другой миске также 100 конфеток, также неотличимых. Но мы точно знаем, что одна из конфеток во второй (1%) = смертельно отравлена. &lt;/p&gt;
    &lt;p id=&quot;5VTZ&quot;&gt;Желающих стырить конфетку из второй миски будет совсем немного.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;lsha&quot;&gt;У нас есть метрика риска. Спасибо примеру, наглядная. Давайте перенесем эту концепцию на процессы и на умозрительную систему. В которой 10 акторов, 10 выполняемых задач, и каждая из них может продолбаться с шансом 1% и выставить нас на $1m.&lt;/p&gt;
  &lt;ul id=&quot;jRsE&quot;&gt;
    &lt;li id=&quot;gZvd&quot;&gt;у нас есть риск в (1% х 10 =) 10%, что любой из рисков триггернет (минус $1m)&lt;/li&gt;
    &lt;li id=&quot;q5qt&quot;&gt;у нас есть риск в 0,1%, что триггернут все одновременно (минус $10m)&lt;/li&gt;
    &lt;li id=&quot;T3Yw&quot;&gt;и какое-то распределение между ними. &lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;NTZN&quot;&gt;Будет кривая с привкусом Эйлера (на бумаге), но на практике риски бывают взаимосвязанными и взаимо-исключающими, так что здесь перекос «в нашу пользу» (например, при уже триггернувшем 1% нам нет смысла проверять и рисковать остальными 9%).&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;GmTq&quot;&gt;Очевидно, что в реальной жизни мы как раз хотим риски друг от друга отвязать, дифференцировать, ограничить и даже друг об друга сторнировать. Чтобы вероятность наступления композитного worst case с его бумажными 0,1% и &lt;em&gt;болезненными&lt;/em&gt; минус $10m была не 0,1%, а как можно меньше. &lt;/p&gt;
    &lt;p id=&quot;ncvc&quot;&gt;Для этого мы изолируем задачи друг от друга; риск не выполнить одну проблемную задачу и не_встрять на $1m нам явно выгоднее, чем разбираться с последствиями и огребаться по сумме на $10m проблем.&lt;/p&gt;
    &lt;p id=&quot;rKc9&quot;&gt;Практическая проверка должна стоять «в цепочке» как можно раньше. Когда мы уже можем диагностировать и обработать риск, но также можем успеть сказать «стоп, налицо проблемы», и не протащить его дальше.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;VBea&quot;&gt;Вопрос: а в какой момент и кем мы это проверяем?&lt;br /&gt;&lt;strong&gt;Кто и как несет за это ответственность?&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;4VtA&quot;&gt;Предположим, мы в том же сетапе заменили 10 исполнителей 10 задач на, соответственно, 10 групп программных агентов. Которые дали нам что-то, что похоже на решение задач. С уверенностью в суммарно 90% — или, если считать «наоборот», с риском облажаться в 10%.&lt;/p&gt;
  &lt;p id=&quot;dn47&quot;&gt;Решение и получение результата дифференцировано. А его оценка = нет.&lt;/p&gt;
  &lt;p id=&quot;K7f2&quot;&gt;В результате тот &lt;em&gt;человек&lt;/em&gt;, которому потребуется принять и применить готовые 10 решений, должен будет в моменте решить достаточно неприятную задачу: оценить 10 решений разом, с риском в 10% обосраться на $1m, или с риском в 0,1% обосраться на $10m. Потому что риски накопились, никуда не делись, и никем в этой цепочке не обработаны.&lt;/p&gt;
  &lt;p id=&quot;vA9c&quot;&gt;Если бы риски, напротив, обрабатывались сепаратно и по отдельности (а не по сумме и по факту в конце цепочки), то цена ошибки была бы 1%, а не 10%. И «стоимость риска» не превысила бы $1m, потому что одна проблемная задача исключает накопление рисков.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;pzRZ&quot;&gt;Чтобы понимать фундаментальную разницу между 1% и 10%, просто напомню, что вероятность выигрыша (х36) в рулетку составляет 2,7%. &lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;3inS&quot;&gt;Вот у нас горе-оптимизаторы заменили 10 разработчиков на 10 AI-агентов. Остался один горе-руководитель, которому надо принять ровно одно финальное решение. &lt;/p&gt;
  &lt;p id=&quot;GKrb&quot;&gt;У него риски и нагрузка, по оценке ответственности, выросли с 1% на +9%, = 10%, в 10 раз. Зарплата если он наемный работник, как обычно, в 10 раз не выросла. Мозгов и внимания в 10 раз точно не прибавилось. &lt;/p&gt;
  &lt;p id=&quot;7XR2&quot;&gt;Налицо бутылочное горлышко, причем очень тонкое — сразу по нескольким факторам. Оценивать черный &lt;a href=&quot;https://cgvictor.ru/transparency-feature&quot; target=&quot;_blank&quot;&gt;чужой ящик&lt;/a&gt;, на глаз, и затем нести за него ответственность самому = дураков мало.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;CYMU&quot;&gt;Попытка «&lt;a href=&quot;https://cgvictor.ru/scale-good-and-bad&quot; target=&quot;_blank&quot;&gt;выиграть за счет скейла&lt;/a&gt;» тоже в такой постановке задачи скорее мешает, чем помогает.&lt;/p&gt;
  &lt;p id=&quot;aafI&quot;&gt;Предположим, вот у вас был человек, который решает задачи из джирки. Код пишет. Отдаёт на ревью умному тимлиду. Человек решает 1 задачу в единицу времени, с выходом корректного результата в 95%. 5% ошибки, которые на ревью находит умный тимлид. Это его задача и ориентир по нагрузке контроля.&lt;/p&gt;
  &lt;p id=&quot;MwrQ&quot;&gt;Мы можем заменить человека (5% fail) на модель (10% fail). Но модель же умеет «писать код» в параллель. &lt;em&gt;Давайте возьмем их 10! Вон сколько задач решат, ну.&lt;/em&gt;&lt;/p&gt;
  &lt;p id=&quot;v0Aa&quot;&gt;Нагрузка на «умного тимлида» по части проверок и ревью возрастает с 5% до (10% х 10 =) 100% в условных единицах время-затрат.&lt;/p&gt;
  &lt;p id=&quot;MDg2&quot;&gt;&lt;strong&gt;В двадцать, суко, раз.&lt;/strong&gt; По весьма сложной задаче (ревью чужого бреда).&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;FpdU&quot;&gt;Чтобы не наговаривать излишне на агентов и AI (я не являюсь AI-хейтером, просто прагматик и люблю считать деньги), в такой постановке задачи можно заменить иллюстративных исполнителей на джунов-индусов. &lt;/p&gt;
  &lt;p id=&quot;5YcS&quot;&gt;Суть та же: выход есть, ответственности ноль, за риски никто не отвечает, пока отдельный человек не пойдет и не проверит.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;izdW&quot;&gt;Почему-то в 2000-2010 все быстро поняли, что так работать &lt;s&gt;с индусами&lt;/s&gt; нельзя. На точке финальной принятия ответственности сразу вырастает проблемный и неприятный перекос, чреватый граблями и потерями денег.&lt;/p&gt;
    &lt;p id=&quot;rhD6&quot;&gt;&lt;em&gt;— Но проблем май фрьенд, ай вилл ду экзактли эз ю сей, ноу ворриез.&lt;/em&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;AChR&quot;&gt;Структурка, которая просто что-то там генерит, не включая голову — хрестоматийный пример garbage in, garbage out (GIGO). Разгребать garbage по факту = тупо дорого, и иногда вовсе невозможно. И garbage, и риски в его связи, лучше ловить в процессе, или внутри-процессов.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;gW6N&quot;&gt;Даже в обозначенном примере, что нам надо сделать, чтобы получить &lt;em&gt;хотя бы те же&lt;/em&gt; показатели по рискам, в одной ключевой суммарной/финальной точке? &lt;br /&gt;Ответ = снизить риски по отдельным компонентам, с 1% до 0,1%. &lt;/p&gt;
  &lt;p id=&quot;Rg8S&quot;&gt;Тогда математика суммы остается прежней; как минимум прежней, то есть мы заебались по качеству на х10, что вообще-то весьма дорого, просто для того, чтобы суммарно остаться на том же месте.&lt;/p&gt;
  &lt;p id=&quot;54T9&quot;&gt;Чот пока так себе выигрыш. Если вы можете по каждой решаемой задаче запросто, по щелчку пальцев, поднять гарантии в 10 раз, то что вам мешало пойти и именно это сделать прямо сейчас?&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;zc9d&quot;&gt;Исторически грамотный и корректный путь снижения рисков — инженерный/процессный. У нас по каждой решаемой задаче есть &lt;a href=&quot;https://cgvictor.ru/tech-control&quot; target=&quot;_blank&quot;&gt;технология&lt;/a&gt; ее решения, с вот такими ожидаемыми показателями по риску. По худшему случаю, и уже заранее проверенными и оцененными цифрами. &lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;nF0Q&quot;&gt;Если мы применяем технологию, и делаем это корректно, то мат.ожидание вот такое. Если мы нарушаем технологию, то ебёмся сами.&lt;/p&gt;
    &lt;p id=&quot;gXdW&quot;&gt;Ответственность за применение технологии, и за соответствие ей, можно проверить. У грамотной технологии для этого предусмотрен инструмент.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;XWFa&quot;&gt;Для автоматизации и даже AI, в общем-то, применяется аналогичный путь: вводи технологии, технологические &lt;a href=&quot;https://cgvictor.ru/flow-goldratt-chain-supply&quot; target=&quot;_blank&quot;&gt;карты&lt;/a&gt; с балансировкой, контуры проверок на каждом отдельном этапе. Добавляй приёмку, формальное тестирование, ОТК, выборочный &lt;a href=&quot;https://cgvictor.ru/flow-control-feedback&quot; target=&quot;_blank&quot;&gt;контроль&lt;/a&gt;, кросс-проверки и отдельные проверяющие механизмы. Да хоть черную магию; всё, что ты можешь выжать из средств автоматизации и инструментов, чтобы от 1% риска перейти к 0,1%.&lt;/p&gt;
  &lt;p id=&quot;4edf&quot;&gt;Но, тот же вопрос: если (бы) это было так просто сделать, то кто мешает сделать и внедрить всё означенное &lt;em&gt;прямо сейчас?&lt;/em&gt; Без игрищ в автоматизацию, а прямо там где есть.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;Ri0n&quot;&gt;С точки зрения агентских инструментов нам опять всё подсирает статистика. Топовые модели показывают нам 89%. Но это оценочные данные статистические — окей, предположим мы им верим. 11% процентов зоны риска мы можем митигировать другой системой, &lt;em&gt;проверочной&lt;/em&gt;; у которой тоже 89% качества, и даже в идеальном случае они обе &lt;strong&gt;точно обосрутся&lt;/strong&gt; на (0.11*0.11)= 1,2%. Вес идеального случая положительного будет (0.89*0.89)= 79%. &lt;/p&gt;
  &lt;p id=&quot;IZig&quot;&gt;Разница между 79% и 99% уходит в какую-то серую зону комбинаторики. &lt;br /&gt;А 20% это достаточно дофига неопределенности.&lt;/p&gt;
  &lt;p id=&quot;WxXp&quot;&gt;Если мы продолжаем плодить комбинации, то вероятность &lt;em&gt;гарантированно негативного&lt;/em&gt; кейса снижается. &lt;strong&gt;А вот «зона неопределенности» растёт. &lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;fJIL&quot;&gt;10 агентских систем с топовым 89% это всего (0.89^10)= 31% (!!!) гарантии результата. Или 69% неопределенностей.&lt;/p&gt;
  &lt;p id=&quot;gvoH&quot;&gt;&lt;em&gt;Ваш бизнес готов работать с ~70% неопределенностей по рискам?&lt;/em&gt;&lt;br /&gt;Если да, то удачи, очень рад за вас.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;aqvc&quot;&gt;Честно скажу, я такое даже видел. Когда шанс получить что-то применимое, с вероятностью в 31%, гораздо лучше «полного нуля» если нихера не делать, и цена ошибки пренебрежимо мала. &lt;/p&gt;
    &lt;p id=&quot;8pk4&quot;&gt;Это сфера прототипирования, стартапов, экспериментов. С вероятностью в 1/3 ты получишь на выходе что-то осмысленное и подходящее, затратив на это сколько-то фикса денег на агентов. &lt;/p&gt;
    &lt;p id=&quot;4jML&quot;&gt;Плохо что ли? Хорошо.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;ymg2&quot;&gt;Следует вслух внятно сказать тогда, в этой связи, что на ответственность за результат, и за его качество, и на риски все положили жирного болта. Вам не надо, вам шанс потенциального профита важнее шанса обосраться, или просто его не-получить. Окей, acceptable для ряда задач.&lt;/p&gt;
  &lt;p id=&quot;mH7u&quot;&gt;Но я такие подходы не люблю.&lt;/p&gt;
  &lt;p id=&quot;yIWG&quot;&gt;И как инженер (раз), и потому что есть еще unknown unknowns которые никто не оценил, и не заложил в модель (два).&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;jGOe&quot;&gt;Что надо из описанного вынести:&lt;/p&gt;
  &lt;ul id=&quot;DKbj&quot;&gt;
    &lt;li id=&quot;inQm&quot;&gt;если не обрабатывать риски, то риски копятся в распределенной системе, и поднимаются «выше» до точки принятия решений&lt;/li&gt;
    &lt;li id=&quot;8nSS&quot;&gt;ответственность принятия ключевого решения с кратно возросшими, накопившимися рисками и неопределенностями — сложная, болезненная и непростая (сюрприз: рисковая!) задача&lt;/li&gt;
    &lt;li id=&quot;uqhl&quot;&gt;AI ничего не знает про ваши риски, и ответственности за результат у него нет (и быть не может), а есть только статистика&lt;/li&gt;
    &lt;li id=&quot;rVH7&quot;&gt;люди в «точке принятия решений» разруливать кратно возросшие риски и неопределенности (например, из-за AI или индусов, или фрилансеров, или аутсорсеров) точно не подписывались, и обычно не готовы&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;dp1p&quot;&gt;&lt;strong&gt;Hope that helps&lt;/strong&gt;.&lt;/p&gt;

</content></entry><entry><id>cgvictor:transparency-feature</id><link rel="alternate" type="text/html" href="https://cgvictor.ru/transparency-feature?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=cgvictor"></link><title>Проверяемость как бизнес-фича</title><published>2026-05-28T14:33:28.398Z</published><updated>2026-05-28T14:58:33.073Z</updated><category term="development" label="Разработка"></category><summary type="html">Сложная система превращается в черный ящик с магией.
Черному ящику люди не доверяют.</summary><content type="html">
  &lt;p id=&quot;tTqG&quot;&gt;Сложная система превращается в черный ящик с магией.&lt;br /&gt;Черному ящику люди не доверяют.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;9IAK&quot;&gt;Людей, способных разобраться в любой хитровыдуманной логике, любой системы, подхода или технологии — обычно мало. Для этого требуется немалое понимание предметной области, следом ряд каких-то инженерных навыков, подходящая модель в голове (или на бумаге) причем актуальная, и значительный запас времени + внимания.&lt;/p&gt;
  &lt;p id=&quot;eFQs&quot;&gt;Пользователь такой системы разбираться на экспертном уровне не будет и не намерен. Ему, в общем-то нечем, ему не до того, и задачи у него другие. Ему нужен конкретный результат по какому-то описанному flow взаимодействия. Вошла свинья, вышли сосиски, задача решена. &lt;a href=&quot;https://cgvictor.ru/no-brainer&quot; target=&quot;_blank&quot;&gt;Мозг не задет&lt;/a&gt;.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;wzOn&quot;&gt;До тех пор, пока пользователь системе &lt;a href=&quot;https://cgvictor.ru/trust-issues-p2&quot; target=&quot;_blank&quot;&gt;доверяет&lt;/a&gt;. А доверяет он тогда, результат выглядит подходящим, резонным и «правдоподобным». С точки зрения какой-то бытовой логики или уже накопленного опыта.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;7889&quot;&gt;Людей, которые пользуются настольной ОС — миллионы. Людей, которые знают, как конкретно устроена Windows под капотом — пара сотен. Это не проблема, пока «всё работает».&lt;/p&gt;
  &lt;p id=&quot;1rtu&quot;&gt;Вы легко вспомните примеры, когда это условие не выполняется, и «всё идет не так». Некоторая система предлагает вам какое-то решение. Ответственность за применение предложенного будете нести вы, как пользователь — система процедурная, даже железная, и она вам в общем-то ничего не должна. &lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;PJky&quot;&gt;Если вам абстрактная система правил говорит, что вашу налоговую декларацию надо заполнять вот так, и вы будете должны государству $NNN денег — именно вам предстоит &lt;a href=&quot;https://cgvictor.ru/trust-nobody&quot; target=&quot;_blank&quot;&gt;поверить&lt;/a&gt; системе, отдать тех самых денег, и (что более важно) взять на себя все риски в той связи, что вы &lt;em&gt;доверяете&lt;/em&gt; выводам системы. &lt;/p&gt;
    &lt;p id=&quot;SQI9&quot;&gt;Неважно, «айтишная» это система, или просто внешний Люба-бухгалтер на аутсорсе. Или не дай бог AI.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;AXCM&quot;&gt;Верить, или не верить на слово — всегда &lt;a href=&quot;https://cgvictor.ru/trust-issues-p1&quot; target=&quot;_blank&quot;&gt;вопрос сложный&lt;/a&gt;.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;79OK&quot;&gt;С бурным ростом информатизации в зарубежном медиа даже (1970+) возник отдельный художественный поджанр, в жанре хоррор (ужасов) — концепция Недружественной Системы. &lt;/p&gt;
  &lt;p id=&quot;YVrA&quot;&gt;Есть в кино и литературе. Когда важные решения применительно к человеку принимает какая-то абстрактная, непрозрачная Система, эти бездушные решения ломают человеку жизнь, и ведут ко всяческим проблемам.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;lzCc&quot;&gt;HAL не откроет вам двери воздушного шлюза станции, потому что автоматика приняла решение в свою пользу. Не в вашу.&lt;/p&gt;
    &lt;p id=&quot;VHAK&quot;&gt;Пугает здесь именно бездушность, непроверяемость, и отсутствие человеческой обратной связи. Потому что человека нет. Ни в лоб дать, ни отпеть. Как следствие, невозможность далее повлиять на ситуацию системными методами, придется брать в руки красную монтировку.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;lVik&quot;&gt;Непредсказуемость пугает человека. Непрозрачность пугает. Система, которая заведомо относится к категории «непознаваемое», воспринимается человеческим актором как враждебная среда. С ворохом рисков и без понятности; без понятности не будет доверия. А без доверия, как мы немного выясняли ранее, вообще мало что работает с positive outcome.&lt;/p&gt;
  &lt;p id=&quot;viTf&quot;&gt;&lt;em&gt;Примеров я по этой части потом еще накидаю: есть интересные (по крайней мере мне), но пока оффтоп.&lt;/em&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;Oybm&quot;&gt;В этой проблематике есть, где покопаться — в смысле улучшений, и получения рыночных преимуществ.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;IN6Q&quot;&gt;Если решения именно вашей системы можно наглядно показать, прочитать, проверить, и проанализировать с точки зрения наблюдаемости — это жирный плюс и преимущество; в сравнении с теми аналогами, где такой возможности не представлено. &lt;/p&gt;
    &lt;p id=&quot;Efob&quot;&gt;И это не просто фича — это бизнес-фича. Она продается. Она стоит денег, которых готовы за нее доплатить.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;eDWx&quot;&gt;Самый простой хрестоматийный пример — это логи. Подробный отчет об операциях, действиях, принятых решениях и развилках, который доступен для анализа тогда, когда возникли вопросы. &lt;/p&gt;
  &lt;p id=&quot;uwFq&quot;&gt;Анализ операций — по отношению к самой системе это &lt;strong&gt;мета-задача&lt;/strong&gt;, в смысле внешняя. Причем разная. &lt;/p&gt;
  &lt;ul id=&quot;NhAx&quot;&gt;
    &lt;li id=&quot;XDfV&quot;&gt;нам надо понять, что могло пойти не так.&lt;/li&gt;
    &lt;li id=&quot;YfDW&quot;&gt;нам надо понять, почему принято то или иное решение (даже формально верное)&lt;/li&gt;
    &lt;li id=&quot;Q7fF&quot;&gt;нам надо понять, какие критерии и факторы имели влияние в данном конкретном случае, и правильно ли они были выбраны, согласно внешней (бизнесовой) модели&lt;/li&gt;
    &lt;li id=&quot;pbce&quot;&gt;нам надо понять, корректно ли была поставлена входящая задача; инструмент отработал правильно, но &lt;a href=&quot;https://cgvictor.ru/decision-outcome&quot; target=&quot;_blank&quot;&gt;по результату&lt;/a&gt; есть предположение, что нужен был совсем не он&lt;/li&gt;
    &lt;li id=&quot;4MYv&quot;&gt;нам нужно найти узкие места, или оценить возможности количественно&lt;/li&gt;
    &lt;li id=&quot;HLVJ&quot;&gt;нам нужно получить отчет для внешнего аудита, если по решению вот счас триггернут какие-то риски (и нам будет больно)&lt;/li&gt;
    &lt;li id=&quot;vt30&quot;&gt;и так далее&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;x0Lq&quot;&gt;Что для нас (как проектировщиков) здесь хорошо: что эта задача в принципе технологически решаемая, и достаточно несложная, хотя и развесистая. Надо сделать из черного ящика как минимум «серый»: вытащить логику наружу, повысить verbosity, поднять наблюдаемость, получить проверяемость.&lt;/p&gt;
  &lt;p id=&quot;7saH&quot;&gt;И эта задача «наблюдаемости» тиражируемая, а &lt;a href=&quot;https://cgvictor.ru/exp-multiplication&quot; target=&quot;_blank&quot;&gt;тиражируемые продукты&lt;/a&gt; в информационной среде — это всегда хорошо, правильно и успешно продавабельно. &lt;/p&gt;
  &lt;p id=&quot;ozsn&quot;&gt;Если мы можем понять и разрулить &lt;em&gt;отдельный&lt;/em&gt; взятый кейс, значит мы можем понять и разрулить &lt;em&gt;любой&lt;/em&gt; кейс и поведение системы аналогичного характера, сейчас и далее. Это уже худо-бедно инструмент.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;DuZG&quot;&gt;Знаю конкретный пример отраслевой, из мира 1С, когда люди взяли типовой расчет по логистике, закупкам и магистрали — корректный расчет, повсеместно распространенный — и сделали бизнес-продукт тупо на основе того, что дали к нему подробный проверяемый отчет в моменте: как проходил обсчет модели. Чем он руководствовался, какие входные параметры во что превратились, как и чем оценивались, и что в итоге получилось.&lt;/p&gt;
    &lt;p id=&quot;q2Jz&quot;&gt;Поднялись миллионов на 5 зелени. Само решение и решалку, что важно, не трогали вовсе. Её и нельзя трогать, она типовая и обложена требованиями. &lt;/p&gt;
    &lt;p id=&quot;lVlV&quot;&gt;Выигрыш бизнесовый чисто за счет отчетинга, наблюдаемости, и серого ящика, вместо «черного» который идет из коробки.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;264V&quot;&gt;И это не сложно технически. Всего-то делов: пойти в корректный детерминированный работающий продукт, уже написанный, и вытащить из него зашитую логику обратно, на человеческий уровень. Где ее можно прочитать и проанализировать.&lt;/p&gt;
  &lt;p id=&quot;l2Lf&quot;&gt;Что еще здесь важно, и почему мы говорим об отдельной фиче. &lt;/p&gt;
  &lt;p id=&quot;O2RD&quot;&gt;Проверить «руками» любой кейс — задача всегда решаемая. Просто муторно и долго. Из примера с бухгалтерией выше: окей, ты не доверяешь бухгалтеру, значит ты можешь засесть на 2 дня в документы, сам выполнить все необходимые операции, и сверить ответы, соотнести желаемое с действительным.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;3CiO&quot;&gt;Бизнес-фичой становится сама &lt;strong&gt;возможность&lt;/strong&gt; быстро и просто проверить любое решение. Без необходимости перетыкаться в ручной режим и что-то там изучать и переповторять, за свой счет в свободное время. &lt;/p&gt;
    &lt;p id=&quot;DfDf&quot;&gt;Заявленная возможность «&lt;em&gt;сомневаешься? ну вот ткни и проверь!&lt;/em&gt;» становится отдельной фичой, имбой и киллер фичей — если ее до этого почему-то не было.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;Jv1E&quot;&gt;Естественно, проверять 100% решений никто не будет; система для того и вводилась, чтобы не делать это руками, и поручить работу автоматике. Но возможность проверить хотя бы 1% кейсов «просто потому что захотелось», и точно проверить еще 1% кейсов, которые нам почему-то не понравились — мощнейший буст, прокачка доступных возможностей и как следствие, бизнес-преимущество. Ну и да, отдельный ценный &lt;a href=&quot;https://cgvictor.ru/flow-control-feedback&quot; target=&quot;_blank&quot;&gt;контур контроля&lt;/a&gt;.&lt;/p&gt;
  &lt;p id=&quot;fHuM&quot;&gt;Следует всегда помнить, что ваши системы и спроектированные процессы — обычно часть чего-то большего. Других процессов, над-систем, бизнесовых связок. Где тоже есть свои потребности в наблюдаемости, проверяемости, дебаге в смысле &lt;a href=&quot;https://cgvictor.ru/debug&quot; target=&quot;_blank&quot;&gt;отладки происходящего&lt;/a&gt;, и потребности в получении аргументированных ответов в тот момент, когда они нужны. Вопросики-то могут возникнуть не к вам и не к вашей системе, а комплексно, «где-то там выше». И для получения ответов надо будет обращаться к вам. Искать концы, решать проблемы. А вы молодец, и предусмотрели инструментикъ.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;lMS5&quot;&gt;Пространство вариантов&lt;/h3&gt;
  &lt;p id=&quot;QjdI&quot;&gt;За процессами и гипотезами почти всегда &lt;a href=&quot;https://cgvictor.ru/tactical-tools&quot; target=&quot;_blank&quot;&gt;лежит модель&lt;/a&gt;. Модель, детерминированная либо статистическая, имеет варианты своего описанного поведения, и некое пространство вариантов. В нашем, произвольно выбранном кейсе, по модели мы делаем какие-то вот такие, конкретные выводы.&lt;/p&gt;
  &lt;p id=&quot;Pj4a&quot;&gt;К применяемой модели, допустим, вопросов нет. А к кейсу и к &lt;em&gt;ситуации&lt;/em&gt;, в которой мы модельку применяем — вопросы есть.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;Lq8U&quot;&gt;Далее нам надо не просто получить ответ (от модели и от гипотезы на вопрос) «почему оно всё вот так». &lt;/p&gt;
    &lt;p id=&quot;flXI&quot;&gt;Нам надо получить ответ следом на другой, более важный вопрос: &lt;br /&gt;— «а как теперь сделать так, чтобы было иначе?»&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;BGJj&quot;&gt;Поскольку вы добавили наблюдаемость к модели, можно на глаз прикинуть граничные точки и критерии балансировки. Из бухгалтерского примера выше: вот модель говорит, что я должен &lt;em&gt;вот столько &lt;/em&gt;денег. Ну, окей. &lt;/p&gt;
  &lt;p id=&quot;Y3w7&quot;&gt;А что мне предстоит делать, если я хочу иначе? Что мне следует поменять? Что влияет на полученный из модели ответ? Какие есть рамки, допущения, коридоры значений?&lt;/p&gt;
  &lt;p id=&quot;qkDB&quot;&gt;Поскольку это вопрос все еще к вашей модели, и всё еще вопрос технический — можно и его решить. Это хорошо, это круто, это полезно; и да, это продаётся.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;nnjv&quot;&gt;Лично я в свое время поднял себе денег на конфетки, когда вывод модели (несложной, финансовой) кроме ответов обзавелся графиком вариантов, и парой линий тренда. Задача на уровне «пара часов в экселе» превратилась в инструмент вида «вот твои идеальные параметры и доступные возможности на месяц вперед». &lt;/p&gt;
    &lt;p id=&quot;642X&quot;&gt;Как оказалось, никто такого почему-то не делал, и кто я такой, чтобы отказываться от денег, которыми в меня пришли тыкать.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;lmOb&quot;&gt;Это &lt;a href=&quot;https://cgvictor.ru/decision-level-of-shaverma&quot; target=&quot;_blank&quot;&gt;другой уровень&lt;/a&gt; ответов и возможностей по, казалось бы, той же математике. Вместо «ответы = 60» на выходе сразу отрастает наглядность, коридор вариантов, а следом еще и небольшое прогнозирование. За аргументированное прогнозирование рынок готов дать денег почти всегда. &lt;/p&gt;
  &lt;p id=&quot;Bz0Y&quot;&gt;Как печенька с предсказаниями, ну. Занимательно и вкусно.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;rAgB&quot;&gt;Эту статейку побудило наконец выложить вот какое интересное для меня событие и наблюдение.&lt;/p&gt;
  &lt;p id=&quot;aeYC&quot;&gt;Есть предметная сфера, в которой исторически некоторый бардак, хер пойми что происходит. Устроена по модели биддинга: с одной стороны есть предложения, с другой оценка спроса. Принятие решений с обоих сторон непрозрачное, рынок балансируется по спросу-предложению. Есть &lt;a href=&quot;https://cgvictor.ru/trust-and-reproduce&quot; target=&quot;_blank&quot;&gt;статистика&lt;/a&gt;.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;dG1y&quot;&gt;Казалось бы, здесь проверяемость и наблюдаемость решает. &lt;/p&gt;
    &lt;p id=&quot;NksY&quot;&gt;С другой стороны очевидно, что на стыке спроса-предложения проверяемость отверткой не прикрутишь: с обоих сторон рынка у нас черный ящик, есть только балансировка стакана. &lt;/p&gt;
    &lt;p id=&quot;jkwY&quot;&gt;Сфера в данном случае не важна, схема весьма распространенная.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;CheD&quot;&gt;И что ребята сделали: на этапе биддинга привернули AI, задача которого по известным критериям оценить матчинг. То есть, LLM берет и сопоставляет предложения (оффера) с обоих сторон, и по ряду своих, описанных для неё концепций и подходов пытается развернуть представленные с обоих сторон ситуации критерии. &lt;/p&gt;
  &lt;p id=&quot;H2sQ&quot;&gt;Вот здесь совпало. Вот здесь чего-то не хватает. Вот здесь количественно слабый критерий. Вот здесь несовпадение ожиданий. Вот здесь статистическая аномалия относительно соседних вариантов.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;5T0R&quot;&gt;Важно: модель не дает гарантированных ответов, потому что их нельзя напрямую посмотреть и просчитать детерминировано. Модель дает &lt;em&gt;статистически вероятные&lt;/em&gt; ответы, руководствуясь своей логикой, которая зашита в нее саму — и вот эту логику как раз уже можно посмотреть и оценить. &lt;/p&gt;
    &lt;p id=&quot;Trl8&quot;&gt;На одном кейсе есть допущения (и будут допущения, мы можем только предполагать ответ). На статистической выборке модель оценки сходится с моделью матчинга — налицо eventual consistency. &lt;/p&gt;
    &lt;p id=&quot;gKs4&quot;&gt;Процент ошибки менее критичен, чем отсутствие ответов вовсе.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;a49w&quot;&gt;Ну и технически удобно, потому что тебе не надо гонять свою модель по всему рынку, и жечь ведро денег. Тебе надо прогнать оценку только на заданном наборе кейсов, которые чем-то показались интересными (или потенциально выгодными, для одной из сторон). Например, найти недооцененные предложения. Или &lt;a href=&quot;https://cgvictor.ru/multiple-offers&quot; target=&quot;_blank&quot;&gt;оптимизировать&lt;/a&gt; свои &lt;a href=&quot;https://cgvictor.ru/offer&quot; target=&quot;_blank&quot;&gt;оффера&lt;/a&gt;, относительно потребностей или заявленных требований другой стороны стакана предложений.&lt;/p&gt;
  &lt;p id=&quot;M8ko&quot;&gt;Ответы такой оценочной системы используются не в ней самой (ей пофиг), а в вышестоящей цепочке процессов — для анализа, как и в примере выше. Вот у нас есть полученная гипотеза, что идет «так», а что может «пойти не так». Где узкие места, где есть недоработка, где надо подкрутить. Как свести задачу (биддинг-матчинг) до удобной нам, или просто чуть более выгодной в моменте.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;piV1&quot;&gt;Возможность не работать вслепую там, где остальные работают вслепую — дорогого стоит.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;OYCT&quot;&gt;&lt;strong&gt;Hope that helps&lt;/strong&gt;.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;tNiB&quot;&gt;Забавный пример из мира AI и LLM, который всегда по определению «черный ящик», получился в тот момент, когда большие языковые модели «научились» в техническую концепцию reasoning и chain of thought. Когда перед генерацией ответа программная моделька &lt;em&gt;имитирует&lt;/em&gt; собственный же подход к генерации ответа, озвучивает контекст, и далее уже отвечает на вопрос, имея подготовленный контекст для самой себя.&lt;/p&gt;
  &lt;p id=&quot;pwZh&quot;&gt;Мне этот факт и пример интересен тем, что «озвучивание рассуждений» значительно помогло как самой модельке, нейро-генератору, так и пользователям и потребителям результатов.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;BD3C&quot;&gt;Reasoning как явление, и созданная в нём цепочка «рассуждений» не является правдой или истиной в той же степени, в которой не является правдой (корректным ответом) или истиной (формальным знанием) итоговый ответ модели. &lt;/p&gt;
    &lt;p id=&quot;QqcP&quot;&gt;Ну камон, они одним и тем же генератором создаются.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;Ns5l&quot;&gt;Но по факту оказалось на тестах, что: если предварительно добавить генератору в рабочий контекст добавочное знание, связанные смыслом и областью знаний токены, и предположить «для самого себя» ход будущего решения задачи, то и решение задачи статистически имеет меньше ошибок. Значительно меньше.&lt;/p&gt;
  &lt;p id=&quot;R7bc&quot;&gt;А для пользователя такая наглядность и проверяемость дает мета-знание; возможность проанализировать &lt;em&gt;не ответ модели, а собственную постановку входящей задачи&lt;/em&gt; для модели, в этой связи. Начать ставить более правильные вопросы, добавить недостающие знания (вместо абстрактных предположений), и скорректировать сам процесс «решения», в смысле генерации ответа.&lt;/p&gt;
  &lt;p id=&quot;eY5b&quot;&gt;То есть, подсветить причинно-следственные связи, и проследить наблюдаемую «логику, идентичную натуральной».&lt;/p&gt;

</content></entry><entry><id>cgvictor:anti-process</id><link rel="alternate" type="text/html" href="https://cgvictor.ru/anti-process?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=cgvictor"></link><title>Анти-процессы (делай проще!)</title><published>2026-05-20T13:55:45.819Z</published><updated>2026-08-09T20:23:51.600Z</updated><category term="development" label="Разработка"></category><summary type="html">Если наплодить процессов, этот факт легко обернуть себе во вред. Вместо того, чтобы делать работу, нерадивые сотрудники запросто её похоронят под слоем обсуждений, совещаний, «принятием решений» и прочей имитацией деятельности. Фрикций много, толку мало.</summary><content type="html">
  &lt;p id=&quot;hq4B&quot;&gt;Если наплодить процессов, этот факт легко обернуть себе во вред. Вместо того, чтобы делать работу, нерадивые сотрудники запросто её похоронят под слоем обсуждений, совещаний, «принятием решений» и прочей имитацией деятельности. Фрикций много, толку мало.&lt;/p&gt;
  &lt;p id=&quot;e2U7&quot;&gt;Главное, размазывается ответственность и точка принятия решения. Все же молодцы, фигачат по инструкции, принимают решения, заслушивают мнения, сидят в созвонах, важнейших митингах и вдумчиво, ответственно подходят к вопросам. Выступают за регламент, решают процедурные вопросы, пишут отчеты.&lt;/p&gt;
  &lt;p id=&quot;hLZY&quot;&gt;&lt;strong&gt;Только не делается нихуя. &lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;dtVA&quot;&gt;Это, в общем-то, почти вариант «итальянской забастовки». То есть явление отрицательное. Видимость выполнения работы есть, практический выхлоп уходит в отрицательную зону.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;RUfQ&quot;&gt;Решается такое механизмом, который носит в обиходе название «антипроцессы». Бытовая проверка на хуйню, либо по качественным показателям, либо даже по глупым количественным.&lt;/p&gt;
  &lt;ul id=&quot;yOlN&quot;&gt;
    &lt;li id=&quot;JmFr&quot;&gt;если для принятия решения требуется больше времени, чем для имплементации решения — это скорее всего хуйня (не всегда, но очень часто)&lt;/li&gt;
    &lt;li id=&quot;agyD&quot;&gt;если задача не имеет осязаемого результата, или не отвечает на вопрос «как это помогает нам жить» — это скорее всего хуйня, и возня ради возни&lt;/li&gt;
    &lt;li id=&quot;xd1a&quot;&gt;если задача висит в «обсуждении» количественно более 14 дней, и ни во что не превращается — это обсуждение ради обсуждения, то есть тоже хуйня какая-то, а вопрос пришел в задачу чтобы умирать&lt;/li&gt;
    &lt;li id=&quot;JRra&quot;&gt;если у задачи нет конкретного выгодополучателя, и померить пользу мы не можем (либо, не можем померить даже &lt;em&gt;изменение&lt;/em&gt; пользы) — ради чего мы это делаем?&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;1pX8&quot;&gt;Проверочный критерий: &lt;br /&gt;— мы делаем вот это, чтобы лучше &lt;em&gt;сделать&lt;/em&gt; работу, &lt;br /&gt;или &lt;em&gt;вместо&lt;/em&gt; того чтобы ее делать&lt;em&gt; — &lt;/em&gt;?&lt;/p&gt;
  &lt;p id=&quot;MrzX&quot;&gt;Вводится механизм, задача которого — избежать хуйни.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;b6JH&quot;&gt;У меня вот сейчас в руках чужой кейс, когда техническая команда на вопрос «что у нас не так?» показывает пальцами в точку бардака и разброда — внутри информационной системы — где действительно бардак, три слоя легаси, и выглядит гниловато.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;RUIH&quot;&gt;Но это не ответ на вопрос «что у нас не так». Это ответ на вопрос «где нам не нравится», то есть вопрос другой. Не нравится — понимаю. Но оно работает, задачи решает. &lt;/p&gt;
    &lt;p id=&quot;gTul&quot;&gt;А самое главное: если взять, влить туда NNN человеко-часов, функционально и операционно ничего не изменится — потому что по этому срезу системы новых задач и потребностей нет. &lt;/p&gt;
    &lt;p id=&quot;ykYa&quot;&gt;Оно работает. И будет работать еще 1-2 года запросто. Может и больше.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;n4xw&quot;&gt;Проблемы у вас (бизнесовые) совсем не там. Но там, где действительно проблемы — там проблема даже не техническая, и спрашивать об этом технарей вообще не осмысленно. Там надо брать, и менять бизнесовую цепочку (тоже выкидывать хуйню). Но это сложно, и там работать заставят, головой. &lt;/p&gt;
  &lt;p id=&quot;rU5I&quot;&gt;Гораздо проще показать пальцем на легаси, и сказать «вот, все проблемы из-за него, мамой клянусь». И это даст технической команде еще +год оплаченного времени, когда они будут гордо бороться с нерелевантными (бизнесу) проблемами. &lt;/p&gt;
  &lt;p id=&quot;23S3&quot;&gt;Никто не сможет вслух сказать, что это хуйня какая-то и пустопорожний дроч — «вы что, хотите сказать что мы собираемся с ЭТИМ жить?!?!111», и глаза надо еще страшные сделать. &lt;/p&gt;
  &lt;p id=&quot;7oT5&quot;&gt;Все при деле, все зарплату получают, в коде ковыряются, полируют собственную важность. Решаем вопросики.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;cU8C&quot;&gt;Антипаттерны** и антипроцессы штука сложная. Задача «следующего уровня» сложности, по сравнению даже с процессами и паттернами — потому что и те, и другие описаны в сети, про них написаны умные книжки умными людьми. &lt;em&gt;Хочешь показаться умным = приворачиваешь чужие паттерны, вот ты какой, ниибацца архитектор процессов.&lt;/em&gt;&lt;/p&gt;
  &lt;p id=&quot;DWuU&quot;&gt;Процессам от этого лучше не становится. &lt;strong&gt;Нельзя качественно алгоритмизировать то, что некачественно работает.&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;IXXE&quot;&gt;Костыли и косяки просто обрастают бюрократией. А бюрократия это время.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;eNqH&quot;&gt;На практике, к кривому-косячному решению прирастает шаблон и форма. Потом появляется валидация формы и обработка шаблона. Потом появляется цепочка аппрува и люди, которые за него отвечают. &lt;/p&gt;
    &lt;p id=&quot;T5gV&quot;&gt;Потом появляется автоматизация для заполнения. Сверху появляются человеки, которые знают, как работает автоматизация и как это заполнять. Потом появляется человек для разгребания заполненных заявок. &lt;/p&gt;
    &lt;p id=&quot;Hdoy&quot;&gt;Потом появляются отчеты «как мы обрабатываем заявки». Совещания по отчетам. Планерки, KPI. Появляется слой технической поддержки для всех инструментов, которые это позволяют делать. &lt;/p&gt;
    &lt;p id=&quot;NUZ9&quot;&gt;Выделяется беклог улучшений и менеджеры команд, которые когда-то займутся вопросами.&lt;/p&gt;
    &lt;p id=&quot;Kozx&quot;&gt;&lt;em&gt;— Вон сколько сразу людей при деле!&lt;/em&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;ARBo&quot;&gt;И не скажешь сразу, что хуйня какая-то. Вместо простого и прямого решения (без хуйни) у вас отрастает целая инфраструктура и цифровой концлагерь, созданный ради того, чтобы героически решать проблему. &lt;/p&gt;
  &lt;p id=&quot;FKRL&quot;&gt;Для вопросов, которые в 90% случаях решались одним вопросом и ответом в чате.&lt;/p&gt;
  &lt;p id=&quot;SfaX&quot;&gt;Если такое случилось — надо упрощать. &lt;strong&gt;Качественно упрощать всегда кратно сложнее, чем усложнять&lt;/strong&gt;. Усложнять даже дурак может, увы. Еще сложнее — упрощать вовремя, пока overhead и overbloat не выросли до проблемных величин.&lt;/p&gt;
  &lt;blockquote id=&quot;Bp7L&quot;&gt;** термин «антипаттерны» обычно не используется в таком контексте и в таком значении. Антипаттерн — обычно негативный шаблон решения, сам по себе. Антипроцесс — это «процесс против ненужного процесса».&lt;/blockquote&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;Z2nm&quot;&gt;Направления решения (но не рецепты!) примерно такие:&lt;/p&gt;
  &lt;ul id=&quot;y8ev&quot;&gt;
    &lt;li id=&quot;WxXs&quot;&gt;decide вместо approve. Вам не нужна на операционные и тактические вопросы цепочка валидации, и особенно она не нужна &lt;em&gt;заранее&lt;/em&gt;. Вместо комиссии и ожидания согласий от кого-то там на что-то — верните право принятия решения конкретному человеку, и пропишите какому именно. Вот у него есть финальное операционное право «на &lt;a href=&quot;https://cgvictor.ru/yes-no-make-this&quot; target=&quot;_blank&quot;&gt;да, нет, и я так хочу&lt;/a&gt;». Это его зона ответственности.&lt;/li&gt;
    &lt;li id=&quot;yDMn&quot;&gt;валидации постфактум. Если какие-то решения надо валидировать и оценивать, хотя бы для связности — вынесите проверки на потом. Сначала ответственный человек принимает решение и не тупит, потом это решение можно посмотреть, оценить, найти концы и прикинуть хрен к носу. Если таковая необходимость возникнет.&lt;/li&gt;
    &lt;li id=&quot;M5RB&quot;&gt;замещающие механизмы. Вместо созвона сформулируй вопрос, задай в чате, предложи варианты ответа. Если не можешь сформулировать — тебе не нужен созвон. Если нет ответа — возьми дефолтные варианты ответов, тебе не нужен созвон. Лог чата без флуда вполне заменяет обоснование в документе (скопипастил лог и молодец).&lt;/li&gt;
    &lt;li id=&quot;vcm2&quot;&gt;emergency mode. Если на задаче написано «срочно-алерт», ситуация нештатная, есть обоснование, то исполнитель может принимать операционные решения сам; и даже административные, в некоторых случаях, например посоветовавшись с коллегой. Организационные routines в этом случае становятся опциональными, коммуникации прямыми, время важнее обсуждений. Ниже приведу пример.&lt;/li&gt;
    &lt;li id=&quot;BxpR&quot;&gt;право на молчание. Если по вопросу за N времени нет продвижения «по процессу», принимается заранее описанное решение, то есть всем пофиг, и значит все согласны. «По вот такому вопросу завтра в полдень мы сделаем вот это, кому что-то не нравится, могут успеть нас отговорить».&lt;/li&gt;
    &lt;li id=&quot;gq0e&quot;&gt;предсказание &lt;a href=&quot;https://cgvictor.ru/branch-prediction&quot; target=&quot;_blank&quot;&gt;ветвлений&lt;/a&gt;. Если 80% шансов, что вопрос разруливается именно так — берите и делайте, не ждите согласований, сэкономите время. К согласованию уже будет рамочно готово решение; а если нет или не угадали, ну 20% что делать придётся иначе там, где вы все равно бы делали иначе.&lt;/li&gt;
    &lt;li id=&quot;aOcV&quot;&gt;маркеры хуйни. Если в обосновании правки написано «нас просят клиенты», любой сотрудник компании/команды имеет право и даже обязанность поинтересоваться: что это за клиенты, где конкретно просят, сколько их, чего конкретно просят, в какой связи и так далее. А автор строчки обязан по первому требованию на такие вопросы ответить. Если ответ неубедительный — значит, хуйня, вычеркиваем.&lt;/li&gt;
    &lt;li id=&quot;klX6&quot;&gt;типовые случаи. Разделяем когда вопрос надо эскалировать «для галочки», 90% что всё очевидно, и мы чисто формально соблюдаем процедуру (с каким-то процедурным статистическим смыслом), это можно сделать быстро; либо вот тут есть неочевидности и подводные камни, вот мы их заранее сформулировали, и нам надо получить внятные ответы вот на это, и на вот это. Перекликается с разделением &lt;a href=&quot;https://cgvictor.ru/process-green-yellow&quot; target=&quot;_blank&quot;&gt;типовое/нетиповое&lt;/a&gt;, да, мысль оттуда.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;ElE1&quot;&gt;Все штуки с приставкой «анти-» должны — логично, ну! — сами не быть бюрократической хуйней. Или не стать ею. &lt;/p&gt;
  &lt;p id=&quot;om6D&quot;&gt;Потому что если вы собираете встречу на 2 часа на 20 рыл «как нам работать эффективнее», вы только что закопали еще +40 человеко-часов в ту хуйню, которой вроде как собираетесь избежать.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;QRIr&quot;&gt;Для описанных «анти-» штук потребуются значительные организационные права и возможности. &lt;/p&gt;
  &lt;p id=&quot;iM26&quot;&gt;Явно пишу: не является рецептом.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;oWuX&quot;&gt;Обычно ультимативно сказать «это хуйня!» в компании имеет право только топ-менеджмент. И то не всегда. &lt;/p&gt;
    &lt;p id=&quot;tv4w&quot;&gt;Если линейный менеджмент и сотрудники попробуют в лоб спросить «а не хуйню ли мы делаем» у соседа, и право на такие приколы не прописано явно опять же в политиках и правилах (ха-ха), то ничего хорошего из этого не получится. &lt;/p&gt;
    &lt;p id=&quot;tMkq&quot;&gt;Будут обидки, и кто-то даже наживет себе врагов.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;evOw&quot;&gt;Ведь уважаемые люди собрались, заседают, вопросы решают, зарплату получают, а тут какой-то хер с горы собирается этот балаган прекратить, да еще и неудобные вопросы задаёт? Это же не в наших интересах. Кормовая база страдает.&lt;/p&gt;
  &lt;p id=&quot;ir4O&quot;&gt;Если механизм внутреннего избавления от хуйни вам ценен и необходим (как вышестоящему менеджеру) — значит, надо права и механизмы сначала вводить, раздавать конкретным людям, а потом уже с ними работать.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;SrvO&quot;&gt;Если долго этого не делать, то нанимается «человек с правом принятия решений», то есть кризисный менеджер. &lt;/p&gt;
    &lt;p id=&quot;506j&quot;&gt;Основная задача которого, как раз задавать вопросы:&lt;br /&gt;— что вот это за хуйня,&lt;br /&gt;— не пора ли перестать ее делать,&lt;br /&gt;— не пора ли разогнать к хуям вот эту толпу дармоедов,&lt;br /&gt;— и наконец начать нормально работать.&lt;/p&gt;
    &lt;p id=&quot;cQ8e&quot;&gt;&lt;em&gt;Профессия сложная.&lt;/em&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;FtMU&quot;&gt;Начните с мягкого. Право на «зачем?» — любой сотрудник может получить обоснование любой задачи, по первому вопросу. Право «на понимание» — не делаем работу, если не понимаем зачем она нужна. Право решать самому, в сфере своей ответственности (и компетенции). Право принимать риски, вместо блокеров, вот в таком объеме.&lt;/p&gt;
  &lt;p id=&quot;hPCh&quot;&gt;Очень важно, чтобы эти механики были где-то зафиксированы. Что так можно, что иногда так явно нужно. Кому можно, по отношению к кому. Что за подобные вопросы не последует санкций и пиздюлей.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;fVKU&quot;&gt;Человеки смотрят на факты, и правильно делают. &lt;/p&gt;
    &lt;p id=&quot;VVam&quot;&gt;Если Вася честно спросил «а нахуя вот это?», и это правильный вопрос, и он есть в документах, &lt;/p&gt;
    &lt;p id=&quot;7OBi&quot;&gt;— а потом почему-то именно Вася остался без премии, и получил кучу придирок — значит, ваша «анти-» механика = &lt;em&gt;профанация и пиздеж&lt;/em&gt;. &lt;/p&gt;
    &lt;p id=&quot;YLCy&quot;&gt;И Вася, и все остальные очень быстро усвоят этот урок.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;T74V&quot;&gt;Если механики прописаны, а по факту не работают — не надо потом удивляться, «&lt;em&gt;а когда мы стали гребаным мейлру?&lt;/em&gt;»(ц)&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;8EKQ&quot;&gt;Знаю компанию, в которой целый региональный отдел (на 50+ человек) отвечающий за заданное направление, сначала наплодил себе «инструментов», а потом героически их поддерживает — ни разу не покривив душой, в общем-то, действительно поддерживает. Месяц за месяцем жрет примерно ($3k×50×80р) = 12 миллионов рублей/месяц, просто чтобы сделать вид, что «мы делаем важную работу». &lt;/p&gt;
  &lt;p id=&quot;caDp&quot;&gt;Инструментов новых не появляется, а когда и кем их делать. Решений новых не появляется — нам же надо существующие поддерживать, никто кроме нас. &lt;/p&gt;
  &lt;p id=&quot;9Miq&quot;&gt;Это такой извращенный случай job security, мне кажется. В рамках целого направления.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;cYxt&quot;&gt;Разумеется, если задать вопрос, а что такого конкретного вот эти люди сделали за 3 года, потратив (12×36) = 432 миллиона рублей (&lt;em&gt;полмиллиарда, суко, сожженного ФОТ!&lt;/em&gt;), кроме обеспечения работой себя любимых, и чего принципиально не существовало три года назад — ну угадайте, &lt;strong&gt;кто мгновенно станет главным врагом и troublemaker&lt;/strong&gt; на районе.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;FbEw&quot;&gt;Зарплата сама себя не заработает.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;xNEg&quot;&gt;Вот вам живой кейс. Компания, РФ. Внутри компании разделение по зонам ответственности (ну, типа), по организационной вертикали, технике, и даже по любимчикам у собственников.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;prxI&quot;&gt;Разумеется, каждая группировка увлеченно занимается тем, чтобы переложить лопату задач, и ответственности за них — на соседнюю, и самим ничего не делать. Границы установить, не реагировать на входящее (как по форме, так и в рабочем режиме), соскочить с принятия решений, и так далее.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;zzQv&quot;&gt;Совершенно очевидно, что любой вопрос на стыке подразделений мгновенно обрастает слоем согласований, митингов, совещаний, имитацией смысла, «договорились что надо договариваться» и саммари с обоих сторон, как бы выглядело идеальное решение в идеальном мире. &lt;/p&gt;
  &lt;p id=&quot;EvVh&quot;&gt;Педалировать процесс будет та группировка, которую больше нагнет собственник. Вторая в ответ будет сопротивляться и имитировать.&lt;/p&gt;
  &lt;p id=&quot;rpDD&quot;&gt;Вместо простых правил и убирания генерации хуйни (что сделать в принципе, реально), давайте купим на рынке чувака, который пойдет и будет «писать нам процессы». &lt;/p&gt;
  &lt;p id=&quot;1lIM&quot;&gt;&lt;em&gt;Кому нам? Какие процессы? Как они будут на практике работать, кроме как лежать на бумаге? &lt;/em&gt;Не, это вопросы сложные. Надо доки писать.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;rMC0&quot;&gt;Насколько я знаю, ну вот уже больше года парень «доки пишет». А что, ему зарплату платят. Доки к исполнению необязательны, кивать головой и выражать «глубокое согласие» для представителей технарей — дёшево и быстро. &lt;/p&gt;
    &lt;p id=&quot;mFr4&quot;&gt;Если даже «в доках написано», так &lt;em&gt;там в общем написано&lt;/em&gt;, а у нас частности, жысь такая штука, всегда круче наших представлений о ней (ц)&lt;/p&gt;
    &lt;p id=&quot;ImPx&quot;&gt;Как &lt;strong&gt;буквы легли в джиру заведомо мертворожденными&lt;/strong&gt;, так и заменяются на следующие: ой, что-то старые видимо были недостаточно формализованные, надо еще поработать. &lt;/p&gt;
    &lt;p id=&quot;kWAB&quot;&gt;Недостаточно доков, надо больше доков.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;WF2I&quot;&gt;Еще мы припряжем проектных менеджеров «выяснять», где три раза в неделю у команд были нерешенные вопросы (если это кому-то не понятно и так), и что сделаем? &lt;em&gt;поставим по ним созвоны! &lt;/em&gt;Видимо, чтобы договориться договариваться.&lt;/p&gt;
  &lt;p id=&quot;f7Id&quot;&gt;Как мне кажется, играть в этот балаган можно долго. Все при деле, все по профилю работают. Пока деньги не кончатся. Кто я такой чтобы вам мешать.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;RBBK&quot;&gt;Обещал пример административный. Этот оптимистичнее. В одной конторе (РФ) на случай реагирования на инциденты и всякую нештатную штуку, не только техническую, ребята прописали механику «рабочей тройки», прям как в революцию.&lt;/p&gt;
  &lt;p id=&quot;AY1c&quot;&gt;Суть: если лицо, которое должно принять решение, вот прямо сейчас (за вот этот таймаут) этого сделать не сможет, лид вопроса берет еще &lt;a href=&quot;https://cgvictor.ru/two-eyes&quot; target=&quot;_blank&quot;&gt;+2 коллег&lt;/a&gt;, с ними советуется, и они принимают то решение, которое им покажется наиболее адекватным. Логику и решение фиксируют, делают.&lt;/p&gt;
  &lt;p id=&quot;LdPI&quot;&gt;Им никто ничего за это не скажет, механика прописана, и обязательна к исполнению. За херовое решение может и прилетит по шапке, если все трое спороли какую-то хуйню, но не за сам факт точно. Обычно, на практике, сверху прилетал даже бонус «за смелость». Практика важно.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;4aZU&quot;&gt;Это не только по техническим инцидентам, но также и по пиару (репутационное), и по разруливанию чужих косяков (поставщик услуги ушел в форс-мажор, надо разруливать), административка, логистика, юридические риски. &lt;/p&gt;
    &lt;p id=&quot;w1Y8&quot;&gt;Ну просто и на случай когда всё традиционно происходит в ночи на выходных, и вы вспотеете оперативно собирать в онлайне всех кого надо через пол-глобуса.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;D2jF&quot;&gt;Механика была со своими нюансиками, но признана годной.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;Z7Z3&quot;&gt;Еще один кейс (дописано позже). Есть ребята, у них есть отдел, который должен выдавать количественно сложные и крутые штуки. Но достаточно типовые, выдавать должен много. То есть, уже речь идет про какой-то конвейер и производственную цепочку, пускай сложную. Что-то около 10 юнитов работы в 2 недели.&lt;/p&gt;
  &lt;p id=&quot;dRHF&quot;&gt;Процент косяков и косячного выхода — 1 юнит, то есть 10% (1 юнит/2w, 2u/1mo)&lt;br /&gt;Надо сильно меньше, что-то около 1 косяка в квартал, то есть 1/60, 1.66% как целевой показатель.&lt;/p&gt;
  &lt;p id=&quot;4nO8&quot;&gt;Проблема только в том, что перепроверить работу по времени стоит фактически столько же, сколько её сделать. Если заставлять перепроверять каждый юнит работы, производительность падает вдвое (1u+1u).&lt;/p&gt;
  &lt;p id=&quot;vhyD&quot;&gt;В количественном мире такое делают путем ОТК и рандомизированной выборки. Типа, если из партии в 100 штук хвосторезов отобрали 10 случайных и нашли там брак — вся партия в 100 признается негодной и идет в отбраковку.&lt;/p&gt;
  &lt;p id=&quot;AxDW&quot;&gt;Но балансировка всё еще «дохера». На 100u это +10% работы сверху, и шанс в исходных 10% что остальные 90u уйдут или в брак, или в перепроверку — т.е еще 9u костов. Стоимость решения по юнитам становится 119 против 100, это +20% затрат. Затраты линейные по конвейеру, но нелинейные по графику — встрять на -20% недовыполнения плана (а в холке на 50%, полная перепроверка) может стать сильно дорого, чисто по просранным обязательствам и неустойкам.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;j5yz&quot;&gt;Решали успешно, через leaky bucket / неубывающую цепочку, last streak. Вы эту штуку видели в американских фильмах, когда на доске пишут «0 дней без инцидентов». Там обычно не показывают момент, когда сумма выше границы приносит премию безопасникам, а ниже границы — штрафы.&lt;/p&gt;
    &lt;p id=&quot;NDFi&quot;&gt;Если отдел выдает работу 40 и более дней без косяков — за ними не проверяют.&lt;/p&gt;
    &lt;p id=&quot;Etpj&quot;&gt;Если отдел выдает один косяк, назначается выборочная проверка на 2 из последних 10 юнитов.&lt;/p&gt;
    &lt;p id=&quot;TdQ5&quot;&gt;Если там обнаруживается косяк (либо) за это время в новой работе еще один косяк — проверяется далее каждая вторая.&lt;/p&gt;
    &lt;p id=&quot;5Jza&quot;&gt;Если и там ошибки, хотя бы +1 — отдел далее работает с полной проверкой.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;rFII&quot;&gt;Несложно заметить, что если флуктуация временная, то «успешные 40 дней» отрастут заново, и проверки прекратятся.&lt;/p&gt;
  &lt;p id=&quot;mVcr&quot;&gt;Если успешных дней почему-то никак не копится, то мы работаем с рисками, перепроверками, и разбираемся — как и почему мы живём с такой хуйнёй.&lt;/p&gt;
  &lt;p id=&quot;F0nR&quot;&gt;У них сработало. Кейс примерно на +2 млн дохода/mo.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;ZxBs&quot;&gt;&lt;strong&gt;Hope that helps&lt;/strong&gt;.&lt;/p&gt;
  &lt;p id=&quot;kRoS&quot;&gt;Куда еще полезно посмотреть:&lt;/p&gt;
  &lt;ul id=&quot;bLEa&quot;&gt;
    &lt;li id=&quot;Mdnf&quot;&gt;&lt;a href=&quot;https://cgvictor.ru/papers-please&quot; target=&quot;_blank&quot;&gt;Бюрократия или нет&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;6z9u&quot;&gt;&lt;a href=&quot;https://cgvictor.ru/tactical&quot; target=&quot;_blank&quot;&gt;Кроме «что», надо «как»: тактическое руководство&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;VRJB&quot;&gt;Право на &lt;a href=&quot;https://cgvictor.ru/yes-no-make-this&quot; target=&quot;_blank&quot;&gt;«да», «нет», и «я так хочу»&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;oAjV&quot;&gt;&lt;a href=&quot;https://cgvictor.ru/negative-outcome&quot; target=&quot;_blank&quot;&gt;Negative outcome&lt;/a&gt;, коллизия изменений&lt;/li&gt;
    &lt;li id=&quot;Bisb&quot;&gt;&lt;a href=&quot;https://cgvictor.ru/process-green-yellow&quot; target=&quot;_blank&quot;&gt;Рамки и баланс у процессов&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;b1Ks&quot;&gt;&lt;a href=&quot;https://cgvictor.ru/pattern-hell&quot; target=&quot;_blank&quot;&gt;Паттерны ради паттернов&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;

</content></entry></feed>