Я — Максим Цепков приветствую Вас на своем сайте
|
Я буду рад любым комментариям и обсуждениям. Авторизоваться для этого можно, регистрируясь на сайте или через OpenID. При желании, вы можете размещать здесь свои материалы по тематике сайта. MaksWiki содержит 749 статей IT-тематики. | |
Обо мнеМоя основная работа — проектирование корпоративных и банковских систем. Я верю, что автоматизация — дает новые возможности развития, поэтому создавая автоматизированные системы мы открываем путь прогрессу и делаем мир лучше. Я делаю это, работая главным архитектором дирекции развития решений компании CUSTIS. Я верю в эффективность командной работы, эффективность профессиональных сообществ. И я участвую в жизни ИТ-сообщества - через работу в программных комитетах конференций SECR AnalystDays и просто в коммуникациях на разных площадках. А еще я люблю путешествовать, об этом и о других идеях вне профессиональной деятельности я пишу в своем ЖЖ. |
Я в сетиhttp://www.facebook.com/mtsepkov http://www.linkedin.com/in/mtsepkov http://www.slideshare.net/mtsepkov/ e_mail M.Tsepkov@custis.ru
|
Последний пост блога17-18.04 Был и выступал на MergeConf в Иннополисе. Прошлый год я пропустил, а в 2024 был дважды: в Иннополисе и в Москве. Так что впечатления – ожидаемые, конференция с качественными докладами и хорошим нетворкингом. В этом году нет афтерпати, это, конечно, жаль, но все равно, атмосфера – хорошая. Два дня, 11 треков, много мастер-классов и круглых столов. Так что я желаю организаторам успехов. И один из круглых столов дал очень сильное впечатление, я бы сказал вау-эффект, хотя это не совсем точно. Это круглый стол по вайбкодингу в секции маркетинга. Секция – важно, потому что это – точка зрения заказчика, а не разработчика. Обсуждая заранее его с одним из коллег я выдвинул гипотезу о том, что говорить будут «Как же эти разработчики нас достали! Наконец-то можно без них!» И я угадал. Эксперты и участники в зале делились историями о том, как у них работает вайбкодинг, какие задачи получается решать. Главное – у них все работает. ИИ создает нужный софт лучше, чем разработчики. И умеет структуру, правда, специально просить надо, но это обучаемо. И не ноет. А при обсуждении задачи указывает на проблемы, и ты понимаешь, что с разработчиком бы это вылезло на третьей итерации в виде претензии «А че ты не сказал раньше?» И итераций до получения результата меньше, чем от разработчиков, и без дурацких вопросов. В общем, я сидел и записывал реплики, смотрите их в отчете, я начну именно с этого круглого стола. Да, основной набор задач там все-таки касается не слишком сложных приложений. Но и не тривиальных. А про сложные говорили на других круглых столах и докладах, там тоже все неплохо. На круглом столе по ИИ у аналитиков один из участников, владелец аутсорсиговой компании, сказал, что он сильно сократил разработчиков: из 10 проектов они остались только на двух, а остальные 8 вайбкодят аналитики вместе с ним самим – он ставит процесс, разбирается с граблями и учит аналитиков их обходить. В этом круглом столе я был одним из экспертов, поэтому конспекта не будет: увы, конспект и участие совместимы слабо. И записи тоже, увы, не будет: Merge не делает записи, так было и на прошлых конференциях, у них такая позиция. Из выступлений хочу отметить мастер-класс Максима Дорофеева, который был посвящен пониманию – как при передаче от одного человека другому, так и человеком самого себя, собственных планов. В мастер-класс было встроена игра, интерактивное обсуждение планов с другими, которое показывает, что за планом или другим высказыванием часто скрывается некоторая цепочка слов, смысл которого неясен даже самому автору. В коммуникации эта цепочка слов как-то интерпретируется другим человеком, и чаще всего смысл искажается или теряется, происходит «инъекция говна» – прикольный образ, иллюстрированный картинками. Интерактивную игру Макс создал вайбкодингом, и, как он говорил в кулуарах, раньше таких возможностей не было, был бы аналог на бумаге и других подручных материалах гораздо худшего качества. Кстати, у мастер-класса была очень интересная форма: вместо презентации Максим быстро вставлял рисунки и делал схемы в holst.so. А выступление Павла Аргентова о функциональном программировании вызвало у меня воспоминания-размышления о парадигмах программирования и их исторической классификации на императивные и декларативные, исторически проведенная граница в которой давно потеряла смысл, однако сохраняется на своем месте. Инженерные науки тут не лучше психологии, где умозрительные границы, проведенные авторитетами век-полтора назад, сохраняют, хотя нейрофизиологи давно показали, что деление следует проводить иначе. Так что помимо конспекта выступления будут еще эти мои размышления. На этом общие впечатления я завершаю. Теперь – цитаты из круглого стола маркетологов и другие выступления на которых я был: сначала – по теме ИИ, затем – остальные. Их не так много, потому что три слота я выступал сам. и еще несколько пропустил выступления в польщзу нетворкинга. И, в любом случае, из всех 11 треков это малая часть. Я тоже выступал: «DDD и современная архитектура: как проектировать модель и отражать ее в код (Merge-2026)». Конспекта моего выступления тоже не будет, но можно смотреть предыдущие, в статье есть презентация и ссылки. Секция маркетинга, круглый стол: Вайбкодинг для всех: вымрут ли разработчики как динозавры?Формат стола – отдельные реплики и истории. Я это записывал. А общий смысл я уже передал: да здравствует вайбкодинг, он делает маркетологов незаивсимыми от разработчиков. Наиболее сильную цитату вынесу в начало, остальное – в порядке услышанного. Когда менеджер, который имел дело с разработчиком, начинает вайбкодинг – это другой мир. Никто не ноет, никто не ушел курить. При обсуждении она рассказывает проблемы, и ты понимаешь, что от разработчика бы ты о них услышал только на третьей итерации в формате «а че ты не сказал». Сидишь ночью вайбкодишь – это кайф, результат без нытья. NoCode и LowCode – ограниченная коробка, это и минус, но и плюс по безопасности. Вайб-кодинг – любой полет фантазии, но дыры в безопасности, когда сливают учетки и кошельки – запросто. Поэтому полезно отдавать разработчикам на ревью, если есть такие риски. Кейсы: сервис textprice – калькулятор для копирайтеров с обоснованием цены. И скрипт на питоне – чтобы названия файлов в Google-доке. Сопоставление было раньше вручную тяжелое, 50 файлов требовало несколько часов. А тут автомат, и еще ширину обрабатывает. Делают сами, потому что отдел разработки всегда занят. О нем вообще не думали. Вообще было отношение, что внутренний редактор – надо просто принимать проблемы. А это можно изменить. Это ментальный переключатель. И вообще независимость от разработки – это вау! Разработчик – боль. Реально сделать прототип ко второй встрече с клиентом. Или клиабельный прототип интерфейса в фигме. Самим. А еще они вытащили все материалы по всем роектам в общее хранилище, и ИИ отвечает на вопрос «что там с проектом». Но там – конвейер, чтобы сделать хороший ответ. И общее хранилище нужно, нейронка по 5-7 сайтам плохо бегает. Актуальная задача – перейти поддержку с телеги на макс, вернее, макс добавить как канал поддержки. Cursor дали задачу, описание api макса и существующий код, который был заточен од телеграм. Взлетело с минимальными доработками, два дня вместо двух недель. Но он задал модель реализации и потребовал выделить промежуточный слой, который общий и будет маршрутизировать в нужный мессенджер, чтобы расширять, если придется. И с особенностями ИИ справился, в телеге есть оплата звездами, он сказал, что это надо скрыть в зависимости от канала обращения – и это сделали. Опыт. Я уже часть задач не даю разработчику, потому что они задают дурацкие вопросы, а ИИ сделает без них. Опыт. Проверка кода после джунов требует большей тщательности, чем после ИИ. Но ИИ-шке надо было написать рекомендации – style guide. А для pet-проджект вообще код не смотрят. Но структуру дерева файлов все-таки смотрит. Хотя тоже не везде. Опыт. Количество итераций до готового проекта – сильно уменьшается с ИИ по сравнению с разработкой. И итерации быстрее, но это понятно. А тестировщик может сам исправить простые ошибки с помощью ИИ, не возвращать разработчикам. Кейс. Человек работает с ML в МТС. ИИ помогает в изучении алгоритмов, онбординге в новые процессы и проекты, разбирается со структурой БД, и еще куча задач – ЖКХ поругаться и так далее. Устроился в новую компанию, ему надо изучить проект, осмыслить. Но там Алиса и Gigachat, западные модели нельзя использовать, а наши – не тянут. Но по совету Gigachat скачал Llama и открытую модель DeepSeek – всего 7Мб. Поставил локально, отняло чуть больше часа. И дальше дал зарос на DeepSeek. Тот ушел в раздумья на 40 минут, но ответ – дал. И это на компе за 20тр. Ему это сэкономило 1-2 спринта онбординга в проект. Новые сотрудники – запросто разворачивают дешевые модельки у себя локально. Он пришел рассказать, что дешевле взять готовое – а он показал локальные результаты. Кейс. Пару лет назад заключили контракт с одним банком. Штатный программист не тянул, он нанял студию, они год делали, до конца не сделали, но как-то сдали, 2.5м убытка. И по договору был, нужна была поддержка, у студии – комические деньги, он нашел одного fullstack-разработчика, тот тянул. Это история два года назад. А сейчас оявилась задача расширить, о спросил разработчика – и тот предложил переписать. И навайбкодил, весь преокт обошелся в 250 тр. Ключевая роль человека – во-время чуть-чуть направить. Игорь Рыбаков. Как мы перестраивали работу аналитика с AIОчень содержательный рассказ о поэтапном освоении ИИ для работы аналитиков, начиная с GPT-3 несколько лет назад.
Итого. Каждый аналитик задает стратегию работ. Увидеть результат, Собрать процесс аналитики, определить, где подключать ИИ. Пока это в виде регламентов, и аналитик направляет ИИ, с системными промптами, но в принципе тут агенты тоже помогут. Будущее – бизнес-запрос, функциональные блоки, AI и vibe-coding (пока он хорош для пет-проектов, но не для прома с большим контекстом), инженерные практики. И станет он ИИ владельцем информационной системы. ИИ не заменит аналитика, он сам никогда так не думал – но он ускорит. Он поможет погружаться к предметку – и это надо уметь. Больше внимания надо уделить ценности. Фокус сместился в понимание процесса мышления – как мы получаем результат, какая цепочка приводит к нему – чтобы направить ИИ. И коммуникация остается на человеке. 50% времени он работает психологом, процессы зашиты на конкретных людях. Даже если вы приносите идеальный результат – его надо продавать. И выманивать информацию – смотреть на невербалку, искать ходы в коммуникации. Впрочем, я думаю, ИИ тут тоже может помочь, например, если описать портреты людей, с которыми ты ведешь коммуникацию, и обкатывать на них сложные моменты, вырабатывать аргументы. Решение вопросов – через взаимодействие с ИИ. Промпт не пишешь сразу хороший, так что его надо докручивать, а в моменте идти во взаимодействии. Вопрос. Сколько внедряли, какой саботаж, какие метрики? Ответ. После испытательного срока остаются люди, которые понимают необходимость ИИ, так что саботажа нет. Сколько с нуля – не знаю, у нас процесс шел поэтапный, и каждый раз инкремент, да еще ограничение ИИ – два года назад было хуже. Сейчас можно форсировать, но эффект он не знает. Метрику снимал – количество задач. Персонал не сократился – высвободившееся время уходит на качество и позволяет снижать цену. Вопрос. Как получается из аналитиков растить архитекторов ИИ? Ответ. То же самое, как с любым процессом. Группа евангелистов, которые продвигают и распространяют – как с любой практикой? Вопрос. А галлюцинации? Ответ. Конечно есть. Решение – дорабатываем системный промпт. Как правило, при общении с бизнесом, там формируем в промпте границы. И еще разбивка на шаги, чтобы они стали более определенными. Вопрос. Как побуждаете аналитиков? Ответ. Как с новым софтом. Всегда будет те, кто по-старому. Пропагандируем. И повышается требования за счет ИИ. Если он успешно решает задачи по-старому – и хорошо. Но если начинает отставать, а меняться не хочет, то показываем: уже джуны тебя обгоняют! Сергей Бурцев. ИИ убьёт видеопродакшен? Мы проверили — и наняли вдвое больше людейВыступление – множество кейсов о мощи современного ИИ в создании видео, в докладе примеров реально много. Но, все-таки, полтора года назад на UIC.dev я видел гораздо более впечатляющее выступление Льва Бахарева «Ситуативный ИИ-контент: от брейнштормов к готовым проектам за минуты», у меня на сайте есть краткий конспект, но там интересно смотреть видео (надо подписаться на канал конференции). Возвращаюсь к выступлению. Кейс. Строительная компания DARS 25 лет, надо срочно стать фильм. Интервью – да, но в кадрах нужна реальная стройка. А это зима, и стройка – не фотогенична. И генеративный ИИ – помогает. Реальный ролик, там смесь ИИ, видео из стоков и реальной съемки, и хорошо получилось. 2-3 года назад ИИ не было на таком уровне. Они по одному заказу делали заставку: зеленая горилла бегает по Москве, сравните – было печально по сравнению с нынешним уровнем. Но уже тогда круто по срокам и стоимости. Есть проблема достоверности. Делали ролик про Симбирск, и показывали 17 век. Это очень сложно. Но возможно, просто надо уметь: убрать голливудский налет, использовать реалистичные планы местности, образцы архитектуры и одежды и много других деталей. Кто-то из коллег не хочет обучаться новому, и остается на старых технологиях. Но ИИ дает резкий скачок по производительности, и дальше вопрос конкуренции. Отмечу, что это не означает, что переход на новое обязателен: есть же до сих пор узкие сегменты, где обувь мастера шьют по индивидуальному заказу по старым технологиям. Так и в мультипликации – есть те, кто рисует мультики вручную или делает на пластилине, как и раньше. Там – своя экономика, а где быть – вопрос личного выбора. ИИ уже умеет технику – титры, графику и эффекты поверх, можно обходиться без специализированных программ. Для этого нужен опыт, насмотренность и режиссура, чтобы сформулировать промпты. Но если у вас есть видение, что должно быть на экране в результате – вы можете этого добиться. Сами, без большой команды, которая раньше была необходима. Обращение к экспертам за отдельным советом или обучению и найм команды профессионалов – сильно разные режимы работы, сроки и затраты. И это дает новые возможности, прежде недоступные. Кейс. Депутаты решили поздравить коллег с 8 марта – и сделали ситуативную юмористическую историю. Пиксаровские 3d-модели одних депутатов доставляют другим поздравления по модели города с разбитыми дорогами и другими препятствиями, которые тоже приземлены на реальные проблемы города. И озвучка идет полусинтезированным голосом. Кстати, Pixar, когда ее базу подгрузили в ИИ для обучения, сначала хотел подать в суд, а потом не только одобрил, но и дали дополнительный материал. Прототипы фильмов и роликов для разных тендеров запросто можно делать, это быстро, недорого и адекватно передает идею. Сделать видео картинка из Лондона 17 века для будущей игры – запросто. Интересно, что поменялись сравнительные цены. Недавно самым простым было 2d, дороже 3d, а потом – реальные актеры. И ИИ – наоборот, проще – реальный человек, сложнее – 3d pixar, а 2d – еще сложнее. Недавно делали мультфильм про жизнь конкретного человека, как часть презентации к юбилею. Мультфильм – сложнее, чем видео. В компании снова важен системный администратор. Vpn, модели – они каждую неделю меняются, часто подбирают модель под задачу. Все примеры, скорее всего, с разных моделей. Поэтому не получится купить одну подписку и там все делать – нужны разные модели. Они следят за расходами, в презентации был график. Появились генералисты и программисты, которые делают по общему замыслу или дорабатывают то, что не получилось снять. В целом доля творческой работы возросла примерно с с 40% до 70%, ушла рутина. Пропал языковой барьер, они успешно работают на английском рынке без английских актеров, раньше это было невозможно. В профи-среде для крупных заказчиков видео не стало дешевле – они придирчивы к деталям как в классике. Но появилось больше возможностей. А в свободное время они делают рилсики про космос и на другие интересные темы – сейчас это просто. Андрей Бровко из Авито. Spec driven AI. Как обеспечить качество?Мастерство ИИ в разработке растет. Есть бенчмарк SWE-bench, основанный на решении реальных задач из open source проектов, там начинали с 2% в GPT-4, в 32025 было 73-75% для Opus, а сейчас уже более 100%. И если год назад Карпатый говрил про вайб-кодинг, то в сейчас речь идет про Agentiс Еngineering, создание кода с помощью ИИ-агентов как регулярный инженерный процесс, мастерство в котором основывается на том, что мы понимаем, как рождается код и как его контролировать. И Андрей рассказывал про опыт использования ИИ-агентов в разработке Авито. Цель – удешевить и ускорить разработку. При этом скорость конкретного опытного разработчика снижается: надо контролировать ИИ и давать задачи. А вот процесс целиком от внедрения ИИ ускоряется в 2-3 раза. Правда, количество уязвимостей от ИИ-агента больше в 2.7 раза, и с этим надо работать. В 2025 были пилоты – группам инженерам давали подписки. На метриках роста производительности не видели, но и падения не было. А известно, что переход на новый инструмент, как правило, вызывает замедление – надо разобраться с тем, как он работает. Как результат пилотов, сейчас есть понимание, что работает и методика применения, а также централизованная база навыков. В планах масштабирование и внедрение в процессы, Три секретных ингредиента.
Их pipeline Spec driven AI основан на разработке тестов до кода, это вариант TDD: спецификация (user story и acceptance) → Тесты → Тесты не проходят → Генерация кода → Тесты проходят. Если детальнее, то получаются такие этапы, выполняемые ИИ-агентами и людьми по-очереди или совместно. - Задача в Jira в свободной форме - Трансформация в машиночитаемую форму по шаблону: цели, acceptance criteria и так далее. - Ревью продакта и инженеров - Декомпозиция задачи - Проектирование и наполнение техническими деталями - Ревью техлида - Генерация красных тестов (тест проверяет функционал, которого нет) - Ревью теста - Генерация кода - Автотесты зеленые - Чеклист ручной проверки. Его может создать агент – он знает тонкости раеализации - Ревью кода - Релиз в тестовом окружении - Тестирование - Релиз в прод - Мониторинг работы Понятно, что после ревью идут доработки, возвраты на предыдущие этапы. Для организации pipeline есть фреймворки для этого. Они смотрели
Инженер не печатает код, а ставит задачу, валидирует и принимает результат. Разработчики тоже иные. И QA – модель может написать автотесты, а его роль – стратегия качества, SDLC и CI/CD, настройка агентов, аудиты качества и так далее. Пока трансформация не произошла, но туда идут. Для стратегии тестирование есть типовое оглавление, начинается со спецификации и критериев приемки. Оценку рисков модели не слишком хорошо пишут, им не хватает знания контекста конкретного проекта, а без них получаются абстрактные риски, которые никого не волнуют. Человек проводит ревью тестов – они становятся частью спецификации, в каком-то объеме ревью кода, но его становится очень много. Тут нужна помощь агентов – их надо учить. Приемочное тестирование – агент не слишком хорошо представляет пользовтелей, работающих с продуктом. А еще – проверка артефактов агентов, инструкций и тулов. И проверка безопасности и учет особенностей LLM. Ближе к концу был забавный слайд. Оказывается, Роберт Мартин предлагает выбрать 3 характеристики из 4: Скорость, Бюджет, Качество, Объем, и говорит, что все четыре недостижимы. А в свое время говорили про проектный треугольник Быстро – Хорошо – Дешево и говорили, что достижимо лишь два любых. Wiki говорит, что концепция восходит к 1950-м, а автор неизвестен. Сначала я подумал «вау, прогресс, научились достигать все три». А потом понял, что проектный треугольник рисовали при неизменном скоупе (объеме) проекта, а сейчас им тоже начали управлять. Впрочем, нормальных подтверждений концепции нет, в реальных проектах сплошь и рядом получается медленно, дорого и плохо одновременно. Как они делают сравнение разных моделей? Через тесты и метрики. Используют внутренние и внешние метрики, метрики эффективности (DORA- пропускная способность против нестабильности). На слайде были выписаны, но в целом там понятные и широко используемые метрики процесса разработки, никакой ИИ-специфики нет. Экономически использование агента окупается уже при 4% ускорения – разница месячной подписки и зарплаты разработчика громадная. Реально эффект больше, но отделить фактор ИИ от остального – сложно. Потому что производительность разработки в Авито растет уже много лет, и резкого увеличения на графиках нет. Однако на конкретных типах задач видно ускорение, например, отчет, который раньше отлаживался бы человеком полчаса-час, агент с доступом к данным по MCP делает за пару минут. Риски.
Поэтому в pipeline – и люди и агенты, и это должна быть содержательная, а не формальная конструкция. Цитата: «если архитектура, тестирование и релизный процесс слабые ИИ-агент ускоряете поставку дефектов». Отмечу, правда, что это громкое заявление – от компании, которая берет деньги за наладку процессов, так что они – предвзяты, и борются за свое место в условиях массового распространения ИИ. Вопрос. Как убедили ИБ использовать модели вне контура компании? Ответ. Это было непросто, и повезло, что руководитель увлекается идеей ИИ. Но есть условия: какие домены можно выносить во вне, а что крутить только на внутренних моделях, есть сервисы анонимизации для выноса наружу или даже предоставления моделям доступа, есть разметка в документа«noAI». Насколько сильная модель нужна? Они начинали несколько лет назад с малых моделей, там контекста не хватало, эмпирически вычислили, что надо минимум 32к. Сейчас это есть, и уже начинается обратная проблема: в контекст можно запихнуть очень много, и модель расфокусируется, теряется в том, что ей сказали. Надо следить. Максим Дорофеев. А кто сказал, что у человека интеллект не искусственный?Это был рассказ о проблемах понимания. Не только про искажения передаче другим, но и о том, что человек часто сам плохо понимает, что говорит. Даже когда пишет свои планы. Он просто плетет цепочки из слов. И это не просто рассказ – была интерактивная игровая демонстрация этого эффекта. Правда, я был только в начале: мастер-класс был два слота, а я после первого ушел выступать сам. Так что рассказ в сокращении. Предположим вы сидели на докладе. В конце вопрос: «Поняли? – Вроде да!» А как вы поняли, что поняли, если еще ничего не сделали? Когда-то он был в научной командировки во Францию. Между собой французы говорят на французском, они не понимают. И они с коллегой придумали шуточную теорию вербальных актов, когда человек что-то ритуально произносит и на это столь же ритуально реагирует, без всякого смысла. Потом он много лет работал в ИТ, а затем сделал компанию обучения. И тут всплыло, что это – не шутка: Люди приходят, говорят слова – и не понимают, в них нет смысла. Почему не сделал задачу? – Не успел! – Надо было расставить приоритеты! Звучит умно, но что все-таки надо было сделать иначе – не ясно. Глупые люди тоже умеют говорить умные слова. Вот если бы умение говорить умные слова разблокировали только с дипломом, и ты не мог сказать «дофамин», если не понимаешь, что это такое – жизнь была бы лучше. Замечу, кстати, что в Китае дело обстоит именно так. В школе ты учишь 2-3 тысячи иероглифов и не сразу, а постепенно, есть график освоения по классам. А потом, вместе с освоением программы ВУЗа, ты учишь иероглифы, которыми записываются понятия из твоей специальной области. А пока не выучил – ты просто не можешь прочесть профессиональные статьи. Написать и сказать тоже не можешь. Своими словами мы описываем не вещи или явления, а свой опыт их восприятия. Многие люди говорят о вещах и явлениях, и думают, что про них. А это – про восприятие. «Эта книга плохая» – нет, это говорящий думает, что книга плохая. Почему он так решил, мы не знаем. Он взял книгу, почитал, подумал, и не нашел ничего нового, или прочитал фигню – это его оценка. Может быть проблема в книге, может в восприятии, может быть в осмыслении. Где по пути была инъекция говна, которая испортила оценку – мы не знаем. А некоторые люди могут вообще не читать книгу, а сложить мнение из того, что он услышал другого. В уши испражнялись и ты передаешь. Оценивал ли ты источник. Сейчас вариант «читал в пересказе ИИ», ИИ же хорошо пересказывает – а это тоже неточно. У Максима не было презентации, а была доска в holst, где он быстро рисовал картинки, или копировал из заготовок. Я не знаю, оставит ли он доступ, так что одну картинку я оттуда заберу на память. А дальше в социуме получается так: мы подменяем то, что истинна на то, что чаще слышали. Прав не тот, кто проверил умозаключение, а тот, кто громче кричит об этом и шире транслирует то, что говорят другие. Обилие метафор – признак пересказа, за которым, чаще всего, нет оснований. Когда разработчики говорят «менеджмент живет в мире розовых пони и не знает, что за ад в разработке» или инженеры поддержки утверждают, что «разработчики подкладывают нам дерьмо, а мы разгребаем», то люди как бы понимают, но конкретного смысла за этим нет. Кстати, по обоим тезисам на доске есть прикольные картинки. «Гарри Поттер и методы рационального мышления», цитата. Гермиона: «Почему у людей не получается стать собой?» – Поттер: «Мы уже сами, а не чьи-то копии. Но если отвечать в духе вопроса: то это происходит потому, что люди набираются всякой ерунды и бездумно ее повторяют». А Бернейс в книге «Пропаганда» (1928) заметил: «Когда-то думали, что грамотность даст человеку возможность мыслить самостоятельно. А реально всеобщая грамотность дала человеку не разум, а набор штампов, приправленных рекламой. Он у людей одинаковый, и потому у них будет одинаковый отклик при воздействии – так работает пропаганда». Штампов много. Но главный вопрос в передаче: что передают широко, а что – не популярно. Выпустили мессенджер и все говорят, что он – плохой. И вопрос не в мессенджере, а в том, как это появилось и как передали. Штампы – как закэшированная страница, и плохо, когда кэш не актуален. Но дело не только в передаче. Люди очень часто вяжут умные цепочки слов без логики и наполнения смыслом. Типичный план жизни выглядит примерно так: «Я закончку универ, потом … эээ … будет много разного, а вот потом – я живу за границей в огромном доме и у меня много денег». Середина, которая должна провести от начала к концу – отсутствует. И это – не преувеличение, так мыслит большинство. Интересно, что Станиславский требовал от актеров ознакомиться с пьесой, но не разрешал говорить на репетициях словами пьесы. Он сначала требовал обыграть все своими словами, чтобы актер понял смысл, а не бездумно повторял слова. И только потом можно было говорить словами автора. Тогда получалась реальное проживание, а не бездумное повторение. Чтобы показать, что люди плохо понимают – интерактивная игра. Заодно по результатам Максим обработает, чтобы понять – где именно дыры у людей сейчас. Игра устроена так. Каждый пишет свой план в формате «Я планирую что-то для того чтобы было вот это, по итогам чего достигну цели, которой хочу». Например, так: «Я планирую получить диплом магистра, для того чтобы устроиться на крутую работу, по итогам чего накоплю на первый взнос на ипотеку». Дальше идет объединение в пары или тройки – каждому, кто написал план – назначаются 1-2 душнилы, которые видят план и пишут вопросы. Для душнил есть шаблон, чтобы не уходили в сторону: они выделяют конкретное слово, и дальше есть шаблоны вопросов для каждой части речь – существительного, прилагательного, глагола. Потом – такт обсуждения вопросов. И игровая механика с баллами, которые игроки ставят себе и друг другу, оценивая, насколько люди понимают, что говорят. Пока шла игра, Максим приоткрывал планы и вопросы. Там по-разному. Где-то – формально, а где-то реально по содержанию. А дальше я, увы, ушел. Кирилл Морозов. Мифы о поколениях: доказательный менеджментОсновное сообщение доклада: перестаньте использовать теорию поколений! В 2010-х, то есть уже 5-10 лет назад, была серия исследований, которая на статистике показала: на статистике теория не подтверждается. А у нас ей продолжают учить, и ловят хайп темы «как работать с зумерами». И ладно бы просто учили, но ее потом используют для построения систем управления и мотивации персонала, и получается фигня, которая наносит реальный вред. А также еще ее активно используют для оправдания: «Почему закрыл вакансию? – Так я – зумер!» или так: «Почему у тебя уволился сотрудник? – Так он – зумер, поколение такое». А затем в докладе был серьезный разбор: как реально должна быть устроена компания, чтобы сотрудники были мотивированы. Заметим: не система мотивации, а компания в целом. А теперь подробнее. В самом названии «теория поколений» – обман. Это – не теория, а концепция. Нет критериев, по которой она является теорией. В мире уже говорят больше с точки зрения опровержений, а к нам она докатилась и хайп ловят темы «как работать с зумерами». Концепт, который лежит в основе, такой: людей можно делить по годам, которые привязаны к значимым событиям, и все люди, попадающие в один интервал (поколение) мыслят и действуют одинаково. Почему?
Что можно взять из этих концептов? Значимые события действительно влияют на людей. Только влияют они по-разному: в 90-е одни накапливали капитал, а другие – выживали и у них – различное отношение, и различный опыт. Так что деление по поколением удобно, но чрезмерно упрощает. В презентации – несколько ссылок на научные исследования, которые показывают, что корреляция между поколением и характеристиками поведения, включая производительность труда – отсутствует, и в целом разница по производительности труда у людей разного возраста ничтожна. Можно уверено утверждать, что год рождения не формирует уникальный код человека. По всему миру – все по-разному. Почему теория поколений она вредна?
Я тут замечу, что теория поколений – реальна фигня. Наблюдения над относительно небольшой социальной группой в США обобщили на весь земной шар без всяких оснований и начали продавать как готовые рецепты. Но машина впаривания серебряных пуль работает. Так что разоблачение теории поколения – это как разоблачение рекламы или пропаганды. Если человек с мозгами, то он и так не поверит, а если без мозгов – то вряд ли поможет. Но все равно, если в результате выступления ей меньше станут верить, то оно полезно. Что же реально надо учитывать?
Что изменилось сейчас?
Что все хотят? Справедливая оплата труда, признание и адекватный руководитель. Это – база, которую надо обеспечить. И дальше будет только хуже. Кирилл не раскрыл, почему раньше эти требования были не обязательны. Мое мнение – рынок труда перешел от профицитного, на котором работодатель диктует условия, к дефицитному, на котором условия диктует специалист, именно он выбирает работодателя. Да, есть ситуативные колебания, и в моменте в ИТ идет сокращение проектов и люди ищут работу, но это – кратковременно, так происходит регулярно в соответствии с экономическими циклами меняется точка равновесия. А вот переход к дефицитному рынку – долговременный тренд, это следствие перехода от физического труда к умственному, при чем такому, где человеческий фактор имеет решающее значение. Это хорошо показано еще у Друкера более 25 лет назад: в его Энциклопедии менеджмента есть отдельный раздел про тренды будущего и даже отдельная книга «Менеджмент. Вызовы 21 века». Он предупреждал, что такое будущее наступит, и раскрывал механизмы. И вот оно наступило. А в ИТ про ключевую роль человеческого фактора писал Том ДеМарко еще в 1980. Все это – старые новости. Каждое из требований Кирилл подробно раскрыл. Справедливая оплата труда.
Конечно, настраивать все это сложнее, чем просто сказать «зумеры не хотят работать». Признание.
Адекватный руководитель.
Михаил Усов из VK. Хайпкодинг: вчера, сегодня и завтра языков программированияВ выступлении – личная история и размышления о том, стоит ли менять языки, изучать новые, и по каким причинам. Основной посыл: не стоит гнаться за модой или деньгами, а надо менять, если устал или стало скучно и ты хочешь изменений. И изменения – не обязательно смена языка, можно пойти вглубь, в изучение фреймворков и механизмов, в Java полно таких возможностей, и в других языках – тоже. Я бы сказал, что в чем-то это – антитренд: не идите в ширь (T-shape), копайте вглубь (I-shape). И, возможно? это действительно уместно, потому что часть людей идет вширь, вообще не вырастив ногу, а скользя по поверхности. Впрочем, еще есть деление людей на дайверов и сканеров от Барбары Шер, и она говорит, что сканер – это тоже нормально. У него знакомство с программированием началось в детстве, с книги «Энциклопедия профессора Фортрана» – концепция описания алгоритма на примере чистки картошки была интересна и произвела впечатление. Я замечу, что на одном из ЛАФ на афтерпати была командная игра для аналитиков: одна команда писала другой инструкцию, как приготовить сэндвичи из набора продуктов (хлеб, колбаса, сыр, все в упаковках), а другая их выполняла. Побеждала та команда, которая написала инструкцию, в результате выполнения которой сэндвичи получились больше похожими на идеал. У многих команд сэндвичи получились не съедобные – «пункт снять целофан» для какого-нибудь ингредиента забывали массово, не говоря уже о том, что масло надо размазать, а помидор – порезать. Но вернемся к выступлению. В 5-6 классе была информатика, Турбо-Паскаль. Но тогда не увлекло. Осознанный выбор был позднее – php, чтобы писать динамические сайты. Самый популярный тогда. Был еще Perl, но он уходил. Учебник был на CD, и вместе с ним – дистрибутивы для развертывания у себя. Выбирать язык самому понравилось больше. А потом перешел на Java, обучился тоже сам. Сегодня самый популярный – python, держит лидерство около 5 лет. Еще JavaScript и Java. А по сайтам вакансий после python – sql. Но на рейтинги опираться не стоит. Правда, почему не стоит опираться на рейтинги, Михаил не объяснил. Выбор php был ошибкой? И зачем он про них рассказывал несколько слайдов в этом случае, тоже не понятно. Я бы тут сказал следующее: реальный выбор всегда касается определенного класса задач или области работы: есть enterprise, автоматизация корпораций и банков, есть public web – соцсети, маркетплейсы и смежные задачи, есть ML и анализ данных, и так далее, областей много. В каждой области – свои языки, свои типы задач, своя культура разработки. И выбирать надо направление работы в комплексе. В этом смысле Михаил был прав с php, если динамические сайты – то, что нравилось. Дальше был тезис, что мнение, будто за один язык платят больше, чем за другой – миф. Он в свое время именно поэтому пошел на Java. Впрочем, что это было ошибкой Михаил явно не сказал. Он перешел к рассуждениям про публично публикуемые уровни оплат, где лидирует Objective-C, и указал, что рейтинги не надежны, потому что не у всех вакансий указана зарплата. Я тут опять укажу на типы задач. На Objective-C пишут драйверы и другой системный софт, этап работа требует высокой квалификации и потому стоит больше. На Java решают самые разные задачи, и спектр зарплат поэтому очень широкий. При этом на Java есть сегмент разработки в корпорациях, где платят больше не за язык, а за согласие работать в условиях токсичных политических игр. И так далее. То есть главное все-таки направление работы и классы задач, а язык – вторичен. Языки не умирают. PHP – жив. Не стоит гнаться за новым, опасаясь, что твой – умрет. Многим языкам 15+ лет, даже тем, которые полагают «новыми». Единственная причина менять язык – не перемены рынка, а усталость от языка, или желание сменить специализацию на то, где нужен другой язык – то есть желание изменений. Вместо смены языка можно углубиться. Например, разобраться в многопоточности Java или в конкретных фреймворках – многие знают по верхам. Как стать сеньором? Просто не увольняться! Через 5 лет большинство уйдут, а вы станете экспертом. Но я отмечу, что это было сказано в эпоху вечных проектов, а сейчас велика вероятность, что проект закроют и ты окажешься на рынке с никому не нужными устаревшими знаниями. Я знаю таких людей, им было тяжело перестроиться. Сергей Иванов из Aston. Инженерия доверия к событиям: как мы ловили и закрывали дыры в гарантиях Exactly-Once после 3 месяцев продакшенаК сожалению, у меня не получилось послушать доклад с начала. А он был на важную тему. Дело в том, что, вопреки наивным представлениям многих людей, протокола, который бы обеспечивал точно exactly once не существует. Бывает at least once с возможным дублированием сообщений, или наоборот, at most once с их возможной потерей. В некоторых средах ты можешь это настраивать на уровне потока сообщений, в других есть только поведение из коробки. При этом в тестовых средах все обычно доставляется однократно, специальных режимов эмуляции потерь и дублирования сообщений не предусмотрено. Поэтому поведение не тестируют и не прорабатывают. А надо, да еще отдельно разбираться с доставкой сообщения и получением квитанции о его доставке и обработке. Основная мысль выступления: учитывайте эту особенность и предусматривайте мониторинг и средства разбора. Простого применения паттернов недостаточно. Например, ведите на отправителе и получателе счетчики, и разбирайтесь, когда они разъезжаются. Это – очень правильная мысль, Правда, тут есть тонкий вопрос: что значит, что счетчики разъезжаются, какие точки отсечки. Ведь очередь никогда не бывает пустой. А еще счетчик не гарантирует, что сообщения обработались правильно, потому что гарантия порядка сообщений тоже обычно отсутствует. А если два update на атрибут объекта пришло в другом порядке, то состояние будет отличаться, если, конечно, это не было специально предусмотрено. А еще предусматривайте способы для исправления ситуации, если проблема диагностирована. Например, возможность повторной отправки сообщения. И это тоже очень правильная мысль. Проблема в том, что многие техлиды уверены: всегда приходит корректные события, все линии надежны. И приходится преодолевать их сопротивление. Это подтверждаю. Павел Аргентов из Evrone. Древняя магия в повседневном коде: пять принципов функционального программирования в пяти языкахОсновной посыл выступления в том, что функциональное программирование – способ мышления и набор принципов, который можно реализовывать на многих современных языках программирования, он туда встроен как один из вариантов, наряду с императивным. Это было показано в примерах на OCaml, Scala, Python, JS и Rust, а на github у Павла лежат примеры еще на 11 языках вместе с песочницей, где все это можно развернуть и пощупать, в презентации была ссылка. Функциональное программирование основано на алгебре лямбда-исчисления Черча, разработанной в 1930-е. И тогда же была их совместная статья с Тьюрингом, где было обоснована эквивалентность лямбда-исчисления и машины Тьюринга, то есть потенциальная выразимость любой программы в этом формализме. Фишка функционального программирования – отсутствие не-локального, то есть выходящего за пределы конкретной функции, состояния. Что дает большие возможности для параллельного вычисления, актуальные сейчас. В любом языке есть малые функциональные фрагменты – выражения, которые могут быть сложными и оформленными в виде функций, работающих только с локальными переменными. Но на ранних языках программирования (Fortran, PL/1, Algol) этим ограничивалось, более сложные конструкции нельзя было представить, требовались циклы и работа с глобальными переменными и массивами. И были отдельные языки, как LISP в которых вместо циклов можно было использовать рекурсию, а сами функции представляли собой объекты, на которые можно было ссылаться и делать на их основе другие объекты. На LISP я не работал, но дорабатывал систему генерации документации Schema и много работал с разными xsl-генераторами, так что опыт подобных языков есть, не считая fluent-выражений в современных языках, о которых речь пойдет дальше. Постепенно функциональные возможности в распространенных языках программирования расширялись, и в современных языках они представлены очень широко, так что на них можно писать в функциональном стиле. В функциональном программировании: программа – совокупность выражений, программа превращается в высказывание. Можно считать алгебраическим выражением. В этом отличие от императивного, где у нас – инструкция, как по шагам достичь результата. В императивном надо постоянно думать о том, в каком состоянии будет программа, особенно если пишем многопоточное. А выражения всегда вычисляются в значение, свертываются без побочных эффектов. Значение – функция, скаляр или вектор. И это, в свою очередь, компонуется в другие выражения. Таким образом, современные языки – гибриды, они смешивают разные парадигмы. Пионером гибридного языка, сочетающего процедурную, объектную, функциональную и реляционную парадигмы стал C# 3.0 (2008). Авторы преследовали сугубо прагматичную задачу: научиться в прикладном коде включать фрагменты SQL-операторов в языковые конструкции на объектном языке нативно, то есть оперируя объектами языка, но чтобы втянуть реляционную парадигму потребовалось еще и функциональная. С тех пор еще подтянулся синтаксический сахар обеспечивающий комфортную работу с акторами и реактивное программирование – набор парадигм еще увеличился. Но теоретики до сих пор не освоили это достижение инженеров, и продолжают бороться за чистоту конкретного использования, говоря «фу» на гибриды, например, функции с сайд-эффектами и состоянием. Но вернемся к выступлению. Павел показал ряд примеров функциональной работы на разных языках, идеи достаточно похожи. Это fluent-модель записи выражений, когда мы берем коллекцию объектов и далее начинаем на нее накладывать различные условия, проводить агрегации и так далее. При этом на каждом шаге получается производная коллекция, исходная не модифицируется – в отличие от классической обработки в цикле. А оптимизированный компилятор или виртуальная машина языка обеспечивают, чтобы эти вычисления были относительно эффективны, а не превращались в перекладывание громадных массивов данных. Но дальше все упирается в возможности этого оптимизатора и ваш способ написания, тут дело обстоит примерно так же, как с SQL-операторами выборки сложных данных. Впрочем, вопросы эффективности были за рамками выступления, примерчики были простыми. Примеры были на пяти языках и была краткая характеристика.
И были примеры, иллюстрирующие функциональный способ решения.
В python важно понимать, что далеко не все является выражением, можно писать функционально, а можно – императивно. Дальше примеры про работу с функциями в функциональных языках. Фишка в том, что функция является объектом, и мы можем передать ее как аргумент в другую функцию, получить композит. Когда у нас фильтрация или агрегация идет не явно заданным образом, а с помощью функции, передаваемой как аргумент. Это концепт HOF – high order functionб и мы можем не просто вызвать функцию, но преобразовать или обернуть ее: сделать замыкание – захват лексического окружения или каррирование – сделать из функции от трех аргументов трех функцию из двух, зафиксировав один из аргументов. Отмечу, что ссылки на функции в императивных языках появились еще в C, и многое из этих возможностей ими обеспечивается. Так что границу между синтаксическим сахаром и продвинутыми функциональными возможностями можно проводить очень по-разному. Но синтаксический сахар, упрощающий сложные конструкции и снижающий когнитивную нагрузку – важен. Пример работы с функциями – определяем функцию над элементом и применяем ее к списку. Содержательно это можно применять для вычисления налогов: отделяем вычисление конкретного налога или комиссии от функций, обрабатывающих коллекции документов и сделок. На OCaml это пишется коротко, Scala – длиннее, нужны сигнатуры каждой функции и в Rust – тоже. А вот python требует специальной библиотеки. И JS тоже, нужна ramda. Правда, не знаю, про python, а про смысл rambda в JS я не понял. Работая над конспектом я бегло посмотрел статьи с примерами, и утверждения о том, что «код получается чище и понятнее» мне кажутся надуманными. На мой взгляд, примеры с rambda наоборот, читаются хуже и требуют дополнительных знаний. Чистая функция – когда значение зависит только от аргументов, и ничего не изменяет – нет побочных эффектов. Это важно для многопоточного программирования, получается независимость от порядка вычислений и параллелизм. И был пример для работы со скидками – чистая и не-чистая функция. Иммутабельность. const/val – запрет перезаписи переменной. Мы должны либо дисциплиной либо средствами языка сделать так, чтобы нечто не меняло свой внутренний мир. Это становится важным, когда мы работаем с большими структурами – коллекциями, списками, деревьями, и делаем цепочку преобразований над ними. Формально на каждом шаге получается дубль с какими-то малыми изменениями, а задача – обеспечить такую оптимизацию памяти, чтобы этого дубля не было, а были лишь изменения, и при этом еще сохранился оригинальный вариант, если он где-то продолжает использоваться. На тему, как именно это обеспечить написаны докторские диссертации. Подробности можно посмотреть в книге Окасаки «Чисто функциональные структуры данных». Дальше в выступлении была таблица баллов за функциональное программирование в разных языках. А потом кейс практического применения функционального мышления, он интересен. Речь была именно о мышлении в функциональной парадигме, а не конкретных языках. Есть система на Ruby on rails, сделанная и много лет развивавшаяся ad-hoc. Ее надо разобрать на сервисы. Идея состоит в том, чтобы выдергивать оттуда код и укладывать в pipeline. Это довольно сложно пересказать, потому что рассказ шел на картинках, показывающих цепочки вызовов. По сути, мы представляем обработку команды в системе как функцию – цепочку (pipeline) последовательных вызовов сервисов, по ходу которой первоначальная команда преобразуется в другие. При этом мы не уходим в рекурсию, когда один сервис вызывает другие, как в императивной реализации, а разворачиваем pipeline вызовов, реализующий success-сценарий. При этом, если еще нужна пост-обработка результата от внутреннего сервиса, то это обеспечивается в парадигме реактивного подхода, передачей функции пост-обработки. На каждом шаге к success-сценарию еще добавляются побочные ветки ошибочных сценариев разных классов, это тоже важно и явно видно. А граница между успехом и ошибкой – пунктирная, она зависит от трактовки запроса: «сделай это» или «попробуй сделать это», на схемах это было. Например, при резервировании товара под заказ, если смогли из 3 единиц зарезервировано две, можно рассматривать как успех, хотя и не полный, или как провал. А вот если прервалась связь или сервис упал и ответ не получен – это точно ошибка. В реализации мы опираемся не на active record, а иммутабельное dto (транспортный объект). Команда – функциональный объект, call с bind – монадное связывание «и если все хорошо – связываем». А fail – идет возврат быстрый. DO-нотация на yield вместо обычной дает иллюзию императивного программирования. Команда-функция возвращает Success или DomainError – иммутабельный value object. В целом пример – интересный. И фишка именно в развертывании обработки в pipeline в функциональном стиле вместо рекурсивных вызовов между сервисами. В результате чего сервис может, сделав свою часть, браться за обработку следующего запроса, а не ожидать завершения. А в заключении конспекта я хочу пару абзацев сказать про декларативное программирование. Павел активно о нем говорил, поскольку функциональное программирование принято считать частным случаем декларативного. Есть таксономия, где на верхнем уровне – деление программирования на императивное и декларативное. В императивном мы пишем машине инструкцию по шагам – что делать, а в декларативном – определяем результат, а дальше машина как-то сама его достигает. Граница проведена в 1960-е, и там было все понятно: Fortran, PL/1, Algol – императивные языки, инструкции для машины, транслируемые в ассемблер и далее – в код. А LISP, поскольку вовсю работал с рекурсивными вызовами и большими списками, которые в лоб в императивные команды не транслировались, требовал более умной реализации. В 1972 за LISP пришел Prolog с идеей «мы опишем мир в виде логических утверждений, и компьютер сам сможет решать задачи» – именно так в то время понимали ИИ. А в 1974 – SQL, реализующий реляционную парадигму работы с базами данных, его операторы работают с большими массивами данных, и реализация требует сложных преобразований. И вроде все логично. Но дальше языки начали смешиваться: компиляторы Фортрана начали проводить крутую оптимизацию, сопоставимую с SQL, в C появились указатели на функции, что расширило использование функциональной парадигмы внутри императивного языка, появилась перегрузка функций по сигнатуре и динамическая типизация, разметка текстов для подготовки документов, позднее – декларативные описания для экранных форм, а рост производительности и памяти позволил разворачивать работу с массивами в циклы без особой оптимизации и так далее. Парадигмы смешивались, и деление языков на императивные и декларативные, проведенной в 1960-е потеряло содержательный смысл. Но, поскольку оно зафиксировано в академических работах, то по-прежнему присутствует. А вот парадигмы программирования – процедурная, объектная, функциональная, реляционная и акторная – по-прежнему несут содержательный характер, это определенный подход к мышлению. И есть еще декларативный подход, когда мы задаем систему правил или описание структуры, а дальше идет их интерпретация. Чаще всего это относится к конкретным обрластям. Например, я делал прототип в виде бессерверного приложения в броузере, где декларативно описывалась геометрия витрин торгового зала магазина и система правил выкладки обуви на этих витринах, а система порождала конкретную выкладку с учетом наличия обуви в магазине. И приличная часть кода там была в функциональном стиле, fluent-выражения над коллекциями. Кстати, прототип пошел в пром и проработал три года, прежде чем этот функционал включили как составную часть в большую систему. Но можно делать не только конкретные приложения, но и фреймворки. Описываем типы справочников и документов и графы переходов документов между состояниями, а на выходе получаем полу-готовое приложение с таблицами структурами в базе данных, таблицами документов в интерфейсе с фильтрами для работы и формами для заполнения, а также кнопками вызова переходов для обработки документов. Понятно, что нужна еще содержательная логика, помимо CRUD, и она может быть подключена на любом языке в рамках тех же деклараций. Или включена внутрь на скриптовом языке, как в html встроен JScript. На этом я, пожалуй, завершу размышления. В общем-то получилась отдельная статья, но пусть пока будет в этом отчете. Наиля Галимова из Билайн. Data QA: преодолевать хаос в данных и не сойти с умаЭто рассказ о том, как разбирались с хаосом интеграции. Входящая ситуация – есть множество данных, команды сами их меняют, при этом интеграция снаружи команды и они не знают о потребителях. И у каждой команды – свои представления о качестве и сроках инцидентов. Поэтому, естественно, интеграция регулярно ломается, а раскопки по инцидентам занимают до месяца. Как результат – команды не доверяют другим: дублируют данные, потоки и проверки. Чтобы разобраться с этим, стартовали большой проект Data Governance, частью которого было внедрение системы Data Contract – контрактов на поставку данных. Нельзя сказать, чтобы интеграция была не описана вообще. Для большинства были описания в confluence, но при этом актуальность их была неизвестна, и далеко не всегда обе команды знали про это описание. Поэтому нужно было что-то более надежное, чем статьи в confluence. Рассматривали две системы .
Выбрали Data Catalog. Два уровня описания описания.
Пока они причесывают то, что есть, описывая первый уровень. Условия поставки включает описание структуры объекта данных, глубину хранения и регламент обновления, а также владельца данных и группы инцидент-менеджмента. И идет контроль с алертами. С обновлением данных есть важные нюансы: одному потребителю может быть важно время обновления, а другому – полнота получаемых данных. И надо, чтобы система это подсвечивала. Они сделали платформу, провели пилот. Для пилота искали лояльных – тех, кто устал от вечных проблем. Встраиваются в roadmap, дают инструменты с низким порогом входа, self-service платформу, и ИИ-агентов для помощи. Сейчас масштабируют, в компании накопилось очень много витрин – помогают приоритизировать. |
Блоги друзей |