2022-03-28: осенний Analyst Days - интересные доклады и много общения

< Блог:Максима Цепкова

Осенний AnalystDays 2021 - последняя из конференций 2021 года. Как обычно, я вел репортаж на facebook с впечатлениями от конкретных докладов и, наконец, собираю их в отчет. Отзывов получилось не так много. И вовсе не потому, что конференция была не интересной - просто на ней у меня получилось очень много общения, активных обсуждений в кулуарах. Все-таки сообщество аналитиков - профильное для меня, я активно участвую в конференциях ЛАФ и AnalystDays уже больше десяти лет, и потому на конференции встречаешь много знакомых, с которыми интересно обсудить профессиональные темы и просто поговорить о жизни. Кроме того, я сам выступал с докладом в первый день и участвовал в круглом столе во второй, и это тоже влечет обсуждения после выступлений с заинтересованными участниками. Но, увы, это происходит за счет докладов. С другой стороны, выступления всегда можно посмотреть в записи, а общение - бесценно. В том числе - с авторами докладов, среди которых много ведущих профи и вообще интересных людей.

Так что конференция безусловно стоит посещения, очередная будет в конце мая в Москве. И, кстати, я там тоже буду выступать с докладом «Как строить образ будущего и идти к нему - схемы самоопределения». Фокусом будет самоопределение в пути профессионального развития, но эти схемы можно применять и для других случаев, что актуально в наше время, и это можно будет обсудить в кулуарах. Я не планировал специально, просто так получилось.

И, отчасти, это спровоцировано прошедшей Analyst Days, где в обсуждениях тема выбора профессионального пути многократно всплывала, при чем под неожиданным для меня углом. Давным-давно, в 2012 году я поймал интересное явление, по результатам которого написал пост Три мира программистов. Речь о том, что многие в ИТ работают на некомфортных работах, и при этом не ищут другого места, поскольку уверены, что все проблемы, с которыми они мучаются в своей компании, присущи и остальным компаниям тоже, таково устройство мира, а если кто говорит иначе - это пропаганда. При том, что в реальности дело обстоит совсем не так, есть много компаний, где условия труда - хорошие, и таких проблем нет в принципе. Я думал, что с тех пор проблема если не исчезла, о сильно уменьшилась, потому что социальные сети и интернет в целом дают множество возможностей профессионального общения, можно заглянуть в самые разные компании. Да и люди между компаниями часто переходят, круг общения не ограничен. Оказалось, что это не так, это всплыло во многих обсуждениях. При этом дьявол, как обычно, в деталях: когда происходящее описываешь общими словами, то все одинаково, в то время как факты отличаются принципиально. Например, на вопрос, есть ли переработки, ответ положительный практически во всех компаниях. Только в одних это - интенсивная пара недель 1-2 раза в год во время сдачи проектов, которая компенсируется выходными и оплатой, а в других вы работаете по вечерам и три субботы из четырех почти весь год, и оплачивается это небольшой премией. То есть масштаб - принципиально разный, но пока не спросишь о фактах - то в разговоре полное согласие.

Я поделился этим наблюдениям с организаторами конференции, думаю, в эту сторону они что-нибудь придумают на новой конференции. Во любом случае, мой доклад тоже направлен в эту сторону, как раз на понимание устройства мира и самоопределение в нем, и я готов буд на конференции активно общаться на эти темы с теми, кого они интересуют.

А на прошедшей AnalystDays, которой посвящен отчет я делал доклад Проектирование в разных культурах и парадигмах разработки, в котором рассказывал историю изменения подходов к проектированию софта. История ИТ - это несколько эпох, подходы - менялись, устройство систем - тоже. Каждая из эпох порождала свои учебники. При этом, что интересно, многие корпоративные платформы, такие как SAP и 1С сформировались в 1990-е, когда объектные языки уже были, а объектного проектирования - еще не было, и несут во внутреннем устройстве подходы, сформированные еще в 1970-х, классическим учебником по которым является Николас Вирт "Алгоритмы + Структуры данных = Программы", позднее дополненные подходами проектирования интерфейсов (в 1970 их не было) и взаимодействия с пользователем - use case, user story и так далее. И когда вы работаете над постановкой, в которых эти системы должны взаимодействовать с современными микросервисными приложениями, основанными на совершенно других парадигмах разработки и проектирования, эти разрывы между эпохами надо преодолевать. А для этого их полезно представлять. И в докладе была big picture этой истории.

На круглом столе получился довольно интересный разговор. При этом никакой программы не было, было обсуждение вопросов из зала. Можно посмотреть в этом плейлисте вместе с остальными докладами. На сайте конференции видео тоже скоро появится. А вот конспекта от меня не будет, невозможно активно участвовать в обсуждении и конспектировать одновременно.

А теперь - заметки с докладов. При подготовке заметил, что про часть докладов я на facebook не написал - общение в кулуарах мешало не только ходить на доклады, но и публиковать заметки. В отчете несколько этих заметок тоже есть.

Do you want to try some new features? By joining the beta, you will get access to experimental features, at the risk of encountering bugs and issues.

Ок Нет, спасибо

Григорий Печенкин. Модели пользователей и как их применяют

Пост на FB Григорий Печенкин. Модели пользователей и как их применяют. Три типовых модели пользователей:

  • Функциональные роли, в которых пишут use case. Коберн. Тут все хорошо, но только когда у вас есть бизнес-процесс и роли ясны.
  • Стереотипы, для которых пишут user story. Майк Кон. Если ты угадал с разбиением по сценариям - молодец. Но этот метод не всегда позволяет спроектировать интерфейс, который понравится твоим пользователям - о нем известны только цели.
  • Персоны. Алан Купер Об интерфейсе. Он - для массового пользователя, и как раз позволяет делать интерфейсы адекватным пользователям. Он наиболее дорогой - нужно этнографическое исследование, на этом срезают угол и получают суррогат предыдущего метода.

Редкая команда и редкий аналитик владеет всеми тремя методами, поэтому применяют то, что умеют. А это может быть не адекватно контексту проекта и продукта. Так что надо быть осведомленными о всех и выбирать разумно. Еще отметим, что нет учебника, содержащего все три метода, каждый описан в книге, посвященной более общим вопросам работы с требованиями к системе как часть этой работы. Доклад дает такое сопоставление, как обычно у Гриши было много примеров и троллинга аудитории.

Наталья Леонова и Леонид Юденков. Интервью. Как говорить с людьми про требования

Пост на FB Наталья Леонова и Леонид Юденков. "Интервью. Как говорить с людьми про требования." Часто доклады про интервью дают скурпулезную технику, о том, что надо то-это-пятое-десятое, о том, какие бывают виды вопросов - ответов - типовые ошибки. Дальше люди это смотрят, и думают "как-то все это сложно, давай-ка я буду просто спрашивать и получать ответы".

Этот рассказ отличался тем, что в нем был лайт-вариант с выделением важного. Например, про вопросы: есть хорошие и плохие, хорошие - те, которые продвигают к получению информации, а плохие - нет. Понятно, что ты иногда это можешь оценить только задав вопрос, но у тебя на входе должна быть гипотеза о вопросах, продвигающих тебя к цели - что способствует их разумному написанию. Или о знакомстве с предметной областью: оно нужно в том объеме, чтобы в глазах собеседника выглядеть не идиотом, а профи. И о результатах: ты не просто получил информацию, а еще не испортил отношения с заказчиком. При этом получение информации - это не только полученная инфо, но и отсутствие по теме неожиданностей, что, к сожалению, можно оценить только постфактум - но когда оно вскрывается стоит задать вопрос - а нельзя ли было на том интервью это избежать. Или о повестке: ее полезно написать и послать, но к собеседнику тоже надо прислушиваться, у того может быть своя повестка, и это нельзя игнорировать, а надо зафиксировать обе. И о том. что для разумного интервью надо находится в ресурсном состоянии, а не быть вымотанным авральной починкой системы. Это я вспоминаю отдельные моменты, а в докладе это было все структурно изложено. Но это вам надо дождаться записи.

Иван Хахарев. Сломать систему - реинжиниринг портала с китайскими пользователями

Рассказ был про единый портал поставщика для Спортмастера, на который поставщики загружали будущие поставки, чтобы получить документы для таможни. Был пилот, который сделали, чтобы "как-нибудь было". Это понравилось. И это запустили в прод и развивали костылями. Надо было разорвать этот круг, сделать по уму на новых технологиях. Не получалось, менялась команда, 5 раз у них ничего не вышло.

Пятая перепись, которая оказалась удачной.

  • Выбор одного главного мыслителя (+тест Белбина - там способности), который отвечает за магистраль.
  • Сбор информации по инцидентам за последний год, при этом важно: начальное обращение и ответ
  • Группировка типовых инцидентов
  • Сбор всех больных мест со всех аналитиков

Начало реинжиниринга.

  • Общие подходы по решению в рамках всех доработок
  • Устранение кривых мест в функционале
  • Система бизнес-ограничений: устаревшие ограничения, не нужный функционал

Процесс

  • Регулярные встречи, брейн-шторм на аналитиков команды
  • Проявление технической декомпозиции - совместное тех.решение в команде. Пишут драфт технического решения по каждой задаче. Аналитик + Разработчик + Тестировщик.
  • Прототипирование на figma - кликабельно
  • регулярные демонстрации функционалу бизнесу
  • подход к функционалу - максимально меньше даем выбор
  • локализация - не только английский, но и русский и китайский

Анна Мелехова, Лаборатория Касперского. API: под каким углом на них смотреть

Рассказ был про публичное API, включая монетизацию, о которой разработчики не часто задумываются. Модели монетизации АПИ - их очень много. Но самые интересные - непрямые. Ни разработчик не платит, ни ему не платят, но компания деньги получает. Например, в Acronics АПИ такое, что данные - в его облаке, а оно платное. Или АПИ дает трафик, а он - платный. А еще если у вас есть АПИ, то к нему кто-то написал интеграцию. И ее жалко переписывать - и они не уйдут к конкурентам.

Вопрос: какую бизнес-задачу мы решаем за счет АПИ. И чем можем помочь пользователю. Этой задаче она не касается, она - отдельная.

А ее вопрос - как сделать чтобы АПИ было хорошим

  • Платформа меняется - а Клиенты меняться не будут. Написанную интеграцию не будут переписывать.
  • Проектирование АПИ - каждый раз пытаемся минимизировать. Добавить легче чем удалить, удалять вообще нельзя.
  • АПИ - интуитивно-понятное, и за счет этого - дешевое в применении
  • Работает по спецификации, которая есть - тогда часть процессов можно автоматизировать
  • АПИ должно быть таким, чтобы интеграцию мог сделать мидл индийского разлива. Или джун. Никто не хочет
  • Практики языка надо понимать и сформулировать
  • Консистентно
  • Симметрично
  • Предсказуемо к возвратам

Практики протокола. REST. Есть модели зрелости.

  • Первый уровень - когда все через один метод со множеством параметров
  • А следующий - когда много вызовов с систематическими параметрами

Консистентность. Единообразная реализация аналогичного. Если делает 10 команд, то у каждой свои представления, как сделать обработку ошибок, батч-вызовы, отложенные вызовы, асинхронные обращения. А должно быть единообразно.

Симметричность. Если есть inc - должен быть dec, и исключения должны быть обоснованы.

Обработка ошибок. Надо вернуть информативное сообщение об ошибке. Во внутреннем АПИ всегда можно пойти к автору. А тут в лучшем случае пойдут на поддержку, а в худшем - откажутся от интеграции.

Интуитивно-понятное. Если один и тот же тип в двух АПИ - то должно полностью совпадать. Форматы и структуры ошибок и так далее.

АПИ - должно получить согласования архитектора.

Соответствует работающему сервису. При этом внешняя нагрузка и внутренняя - разные. Зловреды, DOS и так далее.

Обратная совместимость. Ее надо тащить 10 лет.

Спеки или аннотации. swagger и аналоги. Из них можно делать документацию, получать работающие семплы и так далее. Генерации.

API Reference. И там должно работать.

Мифы

  • Разработчики не сделают АПИ консистентным на всю компанию. Каждый по-своему
  • Разработчики не будут делать обратную совместимость. Это противно и скучно.
  • Аннотации очень часто устаревают. И она будет не слишком подробной.
  • Не опубликуют на сайте, не свяжутся с партнерами, не обучат...

Процессы

  • Публикация АПИ. Релиз новой версии, и окончание версии.
  • Архитектурное review
  • API Guideline от архитектора - как устроено АПИ в нашей компании. Включая стандарта по безопасности.
    • Важно, что требования по безопасности ломают обратную совместимость, но ты обязан их вносить!
  • Найдите архитектора - вам поможет

Релиз новой версии. Хороший пример - PayPal. Каждое изменение надо доказать.

  • Почему мы должны публиковать версию, а не можем сделать change существующей.
  • Тесты - надо делать на все версии, совместимость с которой вы тестируете.
  • Идея: у кого-то есть идея - ОК, но guide и примеры для upgrade ты пишешь сам. Он думает, и желание уходит...

Ресурсы для публичного АПИ - их много, есть список. И людей и средств, и тот же API Reference - не дешев.

Но у публичного АПИ есть оборотная сторона. Набегают хакеры и ломают. И еще есть каннибализм бизнеса. У вас хреновое АПИ, но хороший функционал. И кто-то поверх него сделал хорошее, и начали обращаться к нему - а потом не факт, что у вас останутся деньги.

Максим Донцов и Дмитрий Шмойлов, Лаборатория Касперского. Безопасность в силу дизайна: как выстроить процесс анализа архитектуры продуктов

Идея со стройки. Если сделать стройплощадку так, чтобы под стрелой крана никто не ходил, то груз никому на голову не упадет. Аналогично и тут: By design исключить все или основные типы нарушения безопасности. И при этом соответствие кода дизайну в этих пределах проверялось бы автоматически.

Дальше параллельный процесс к безопасности. И параллельный основной разработке процесс работы с безопасностью. Потому что не все обеспечивается дизайном. И там детально - какие вопросы задают на каком этапе. И про доверенные и не-доверенные компоненты. И еще приемчики обеспечения безопасности так, чтобы на входе будет маленький модуль - малая поверхность атаки. Но она знает по протокол и пропускает лишь разрешенное, а протокол проверен на безопасность. Все это надо смотреть в докладе.

Александр Козлов из Accenture. Аналитика в условиях Fix-Price и Agile. Как не наломать дров и примирить непримиримое

Пост на FB Александр Козлов из Accenture. Аналитика в условиях Fix-Price и Agile. Как не наломать дров и примирить непримиримое. Ситуация: есть fix price контракт по ТЗ, которому год и потому оно устаревшее и не слишком актуальное, поэтому заказчик хочет Agile, чтобы скорректировать ситуацию и проект был успешен, и он готов разменивать скоуп, если будут основания. Вполне актуальная ситуация. У команды при этом был agile coach, который объяснял про user story, customer journey map и прочие детали agile-подхода, но вот про fix price и особенности контрактования он - не в курсе, это надо самим адаптироваться. Про тот реальный процесс который получился. На входе - крупноблочный бэклог на основе ТЗ с предварительными оценками, согласуем с заказчиком. Дальше при подготовке очередных спринтов - детализация требований, проработка. Постоянное сопоставление бэклога и ТЗ и инициация процесса изменений контракта для размена скоупа. Контракт предусматривал сдачу формальной документации - они договорились, что она будет собрана из детализации user story, которые делают для разработчиков, плюс общих разделов со структурой данных и описанием интеграций - их вели отдельно. И так далее. Проект на полгода, было 6 демо заказчику с выкаткой на пред-прод. В целом успешно, заказчик доволен, у них контракт на развитие уже по T&M. Заказчик - разумный. Переработки были, но работа в выходные и переработки у них в компании норма.

Кристина Кожевникова. Кайдзен и работа аналитика

Пост на FB Кристина Кожевникова. Кайдзен и работа аналитика. Рассказ был про Цикл PDCA и методику применения изменений ADKAR. На кейсе из собственного опыта, по которому, правда, конкретики не было. Но, может, так и лучше для понимания методов. Итак, вы в каждом своем проекте делаете техническую документацию, которая состоит из некоторого набора документов, для которых у вас некоторая методика их подготовке. Документацию делает команд проекта. Еще есть команда, которая держит методику подготовки и ее совершенствует - меняет набор документов, способ их создания.

Цикл PDCA. У вас очередной проект, и вы там планируете что-то в изготовлении документов улучшить, например, поменять состав документов, и это предлагает как раз команда, которая держит методологию. Это - Plan. Дальше Do вы по-новому делаете документы в рамках этого проекта, это делает команда проекта, хотя представители методологов участвуют. Какие-то документы получились. И на Check вместе проверяем: новые документы получились лучше старых, гипотезы об улучшении оправдались, или нет? Что пришлось доводить уже по месту, поверх методологии? И следующая стадия Act меняет методологию с учетом результатов сопоставления, и тиражируем это решение на всех, кто у нас делает документацию.

Про ADKAR. Поскольку делает документацию команда проекта, а методологию меняет команда методологов, то она должна убедить команды проектов искренне сделать по-новому - иначе никакого улучшения тоже не получится. Начинается с Awareness - осведомленность о новом, затем Desire - убеждение что это новое лучше, мотивация поменять способ работы, затем Knowledge - знание о новом в деталях, теория нового, Ability - умение и возможность работы по новому, претворение теории в практику и Reinforcement - фиксация, что новый способ реально вошел в жизнь.

Вот такой доклад. Правда, это - мое структурное изложение, интерпретация, и может я услышал не совсем то, что рассказывали.

Александр Соляр. Современная Микросервисная архитектура в банковской сфере

Пост на FB Александр Соляр. Современная Микросервисная архитектура в банковской сфере. Забавно. Начинается все с теории: выделяем автономные бизнес-функции, и для каждой делаем микросервис. И функции в примере достаточно маленькие - создание заказа, оплата заказа. А практика состоит в том, что в какой-то новой области мы сначала делаем монолит, а по мере стабилизации каких-то фич - отщепляем их в микросервисы. Таким образом, получается нет разницы в том, был ли уже легаси монолит, или мы пишем с нуля - все равно мы монолит делаем, а потом из него выделяем.

По сути, это означает отсутствие продуманной структуры микросервисов и ее эволюционное развитие. Отмечу, что такой рост структуры микросервисов повторяет рост функционала, влекущий рост размера команд и их деление, хотя может опережать его, и в целом иллюстрирует закон Конвея о соответствии структуры системы структуре связей команды разработки. И 50-70 микросервисов для банка, о которых говорит Александр говорит тоже за этот принцип, и о достаточно крупном размере сервиса, который вовсе не микро. Традиционный IT-ландшафт банка банка - 7-15 монолитов, получается, что каждый из них поделился всего на 5-7 сервисов. И это - вовсе не микро.

Дальше были всякие подробности. Интеграция точка-точка, по структурам данных - точно, никакой централизации. Желателен обобщенный механизм управление консистентностью: запускается цепочки транзакций, если она не доходит до конца, то запускаются встречные транзакции для уже исполненной части. Интегрированный мониторинг - сборка индивидуальных логов каждого сервиса в единое место и построение метрик, в том числе по сквозной обработке. Централизованное хранение конфигурации микросервисов. И так далее.

Александр Козлов из Lamoda. ИТ-схема. Как не заблудиться в дремучем лесу вашего ИТ-ландшафта

Пост на FB Александр Козлов из Lamoda. ИТ-схема. Как не заблудиться в дремучем лесу вашего ИТ-ландшафта. Александр рассказал, как после нескольких неудачных итераций они сделали схему, которая отображает их IT-ландшафт и которая получилось реально рабочей. Схема используется в онбординге и на проектах для проектирования и обсуждения будущих решений. Неудачные варианты показывали сервисы и потоки данных между ними, и был вариант с подкраской потоков по процессам. А удачный наоборот, начинается от схемы бизнес-процессов, на первом уровне - вообще без систем, но с триггерами, которые процессы инициируют.

На втором уровне для каждого процесса появляется реализация через сообщения между сервисами, иногда в нескольких вариантах в зависимости от контекста процесса, например, в процессе продажи различается продажа в магазине, через свой интернет-магазин с доставкой и самовывозом, и через маркетплейс - соответствующий контекст указывается на стрелках, если сообщение присутствует не во всех вариантах процесса. А на третьем уровне эта диаграмма развертывается в sequecnce-диаграмму.

Рисуют вручную в плагине draw.io к confluence, так что все версии доступны, а изменения, в принципе, может внести каждый, имеющий права, и, насколько я понимаю, все аналитики, которые ведут проекты изменений это делают. Есть ежеквартальное обсуждение изменений на общей встрече аналитиков и архитекторов для актуализации. Они считают полезной именно общую встречу, чтобы синхронизовать представления всех людей о реализации процессов.

[ Хронологический вид ]Комментарии

(нет элементов)

Войдите, чтобы комментировать.