Доклады

Инженерные практики (6)

12 шаговая программа по управлению техдолгом

Алексей Алешин

Ростелеком ИТ

В рамках доклада мы рассмотрим дорожную карту по выстраиванию системы управления техническим долгом. Эти шаги проходят люди с зависимостями для преодоления и решения своих проблем. Технический долг одна из основных зависимостей в ИТ проектах и мы все от нее страдаем в том или ином виде.
Важно понимать, что технический долг у нас будет всегда, как бы мы не старались. Главное научиться жить с ним для минимизации последствий.

Доклад принят в программу конференции

Архитектура тарифной сетки: фиксированные тарифы с динамичными ценами

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

Доклад принят в программу конференции

Legacy: не проблема, а вызов

Работа с устаревшим кодом — это не приговор, а возможность улучшить процессы и технологии. В этом докладе я расскажу, как мы одновременно поддерживали старую версию кода и переписывали её на современный стек. Мы обсудим:

- как планировать постепенный рефакторинг;
- как выстроить процесс, чтобы не остановить разработку;
- как мотивировать команду работать с legacy.

Если у вас есть проекты с «тяжёлым» наследием, этот доклад поможет взглянуть на проблему под другим углом.

Доклад принят в программу конференции

Топ 5 инженерных практик для внедрения в работу команды!

Евгений Харченко

Райффайзен Банк

Всем привет, в этом докладе мы разберём топ 5 инженерных практик, которые важны для внедрения в команду.

В докладе, мы рассмотрим такие инженерные практики как:
- Deployment and Release
- Integration and Build
- Test Automation
- Code Review
- Branching

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

Доклад принят в программу конференции

Почему мы не даем делать “технические” задачи и как это помогает бороться с техдолгом?

Рефакторинг
Методологии и процессы разработки ПО; Сроки и приоритеты
Продуктовая разработка
Антикризисный менеджмент
Управление командой

Про техдолг и поддержку (тойл) было сказано уже очень много. Но проблема все еще существует, а значит - актуальна. Продукту Mindbox уже более 15 лет и все это время он активно развивается, сейчас - мы хайлоад с миллионами бизнес-транзакций в минуту. Хочу поделиться нашим опытом и рассказать:
- Почему наш архитектор не дает делать “технические” задачи? И как это помогает побороть техдолг?
- Почему выделения % времени/ресурса на техдолг - недостаточно?
- Как продать техдолг и выпил легаси бизнесу? (c конкретными примерами)
- Что нужно рефакторить, а что нет? На наших кейсах - где отказались инвестить и это было правильным решением.
- Какие еще способы борьбы с техдолгом и тойлом есть помимо “затянуть пояса и пойти отдавать”?

Доклад принят в программу конференции

Прожми быстрей, твой апрув блочит релиз!

Фиксация знаний
Методологии
Менторинг
Образование
Внутреннее обучение
Команда

Уже больше 10 лет я занимаюсь системной разработкой. Работал в GridGain над Apache Ignite, теперь продолжаю в СберТехе над ним же и еще несколькими проектами.
За это время мое отношение к ревью радикально изменилось. До системной разработки у меня тоже были ревью в команде, но они, почему-то? не работали, да и вообще всем казались довольно бесполезной и чисто формальной процедурой.
Но, как только я начал писать код которому суждено крутиться в продакшенах огромного числа компаний годами, мое мнение начало резко меняться.

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

Доклад принят в программу конференции

Архитектура (8)

Миграция c legacy - подходы и практика

Миграции данных
Архитектурные паттерны
Рефакторинг
Legacy системы, жизненный цикл продуктов
Поддержка и развитие legacy систем
Микросервисы
Константин Густов

М. Девелопер

Сейчас в большинстве компаний остро стоит вопрос перехода от унаследованных приложений, обновления кодовой базы и улучшения атрибутов качества ПО. Здесь и бизнес-необходимости, и импортозамещение, и замена устаревших технологий. Много техлиды постоянно сталкиваются с такими задачами на протяжении всей своей карьеры. В докладе рассмотрим на практических примерах, какие есть лучшие практики при миграции с унаследованных приложений, и какие ловушки могут встречаться на этом пути. Посмотрим не только с точки зрения кода и архитектуры, но и с точки зрения управления и командообразования.

Доклад принят в программу конференции

Границы применимости, вызовы и риски Backend-Driven UI

Критерии выбора технологий для проекта
Большие проекты/команды

Несколько лет назад мы решили ещё один продукт компании реализовать с применением Backend Driven UI. До этого у нас уже были подобные архитектуры, которые не выходили за границы одного сервиса. Но в этот раз что-то пошло не так в хорошем смысле слова :) Решение масштабировалось на другие продукты. Появился спрос от бизнеса. Одобрены долгосрочные планы по развитию и поддержке.

Для любого технического руководителя это отличный кейс: IT в партнерстве с бизнесом создали решение, которое также приносит пользу клиентам.

Почему в этот раз все получилось? Что мы не делали и что делали не так раньше? Разбираем нашу историю и пробуем найти секрет успеха.

Доклад принят в программу конференции

Защищаем архитектуру супераппа

Архитектурные паттерны
Стандарты кодирования
Распределенные системы
Разделение представления и бизнес-логики, шаблонизация
Методы и техника разработки ПО
Разработка библиотек, включая open source библиотеки
Архитектура данных, потоки данных, версионирование
Масштабирование с нуля
Архитектуры / другое
Особенности процессов разработки и тестирования мобильного ПО
Архитектура мобильного приложения
Мобильные приложения / другое
Teamlead
Коммуникация
Управление командой
Управление разработкой
Soft Skills
Делегирование задач
Трансформационные изменения

Хочу предложить метод конструктивной конфронтации для защиты архитектурного решения перед заинтересованными лицами всех иерархий компании от СТО до тестировщиков. В качестве подопытного выбрал ВозиОзон не случайно, ведь его архитектура по своему уникальна и отличается от опыта, накопленного внутри компании при реализации маркетплейса, а это попахивает сами знаете чем. Покажу суть архитектуры, опишу кратко процессы ВозиОзон и отличия от маркетплейса. Порасуждаем на что нужно закладываться, а на что забить, обсудим такое явление как мультирепозиторий, разберемся в вопросе баланса стандартизации инженерных подходов для команд. Предложу релизный процесс с асинхронными инкрементами миниапов и платформенной части. Замечу что в IT нет армии и если люди, ниже тебя в подчинении, не уверуют в твое решение - будут саботировать его от начала и до конца, а это еще хуже, чем если бы, не уверовали люди выше тебя, и вероятнее продукт будет провальным. Веру в решение нужно не просто иметь, её необходимо поддерживать постоянно и для этого у меня для вас так же найдутся инструменты.

Доклад принят в программу конференции

Pragmatic CQRS

Архитектурные паттерны
Отказоустойчивость
Распределенные системы
Оптимизация
.NET

CQRS довольно популярный архитектурный стиль, что, помимо прочего, формирует ряд мифов. Один из них: CQRS — это best practice, некая архитектурная серебряная пуля. Второй миф крайне вредный: что якобы существует эталонная реализация CQRS, а все остальное неправильно и вообще не CQRS.

В докладе максимально прагматично обсудим CQRS: когда применять, когда нет, каковы минусы, какие задачи решаем. Рассмотрим различные варианты реализации. Поговорим про типовые проблемы и обсудим, как с ними справляться.

Доклад принят в программу конференции

Архитектурный Quality Pipeline: как его построили в beeline, чтобы он был полезен

Архитектуры / другое

В докладе рассматривается подход к автоматизированной проверке архитектуры при ее публикации через Quality Pipeline.
Рассмотрим преимущества такого подхода, и какие метрики можно улучшить таким способом.
На примере компании beeline разберем, как подготовить команды к ведению архитектуры в машиночитаемом виде, какие сложности при построении процессов возникнут, как и какие данные собирать для автоматизированной проверки архитектуры и с помощью каких инструментов можно построить свой архитектурный Quality Pipeline.

Доклад принят в программу конференции

Senior-ный дизайн технических решений

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

Доклад принят в программу конференции

Как качественно описывать архитектуру кодом

Архитектурные паттерны
Стандарты кодирования

Одна из проблем, с которой сталкиваешься после того, как описал архитектуру, заключается в том, что схема получается перегруженной. Либо наоборот: на ней не хватает необходимой информации. Либо и то и другое вместе. По факту схема не приносит пользу, поскольку не позволяет эффективно передать знания о системе другому человеку или автоматике, которая будет ее анализировать. Другими словами, архитектура описана не качественно.
В такой ситуации AaC позволяет стандартизовать качество получающихся схем за счет введения дополнительных правил описания. В рамках доклада я на основе практических кейсов расскажу о конвенциях и приемах, позволяющих управлять уровнем деталей схемы, а также повысить ее информативность.

Доклад принят в программу конференции

От монолита к экосистеме контекстов DDD

Как избавить систему от «монолитного мышления» и превратить её в гибкую экосистему, где ядро и плагины сосуществуют без конфликтов? В этом докладе — практический кейс перехода от монолитной архитектуры к доменно-ориентированной системе, где каждый контекст живёт по своим правилам, но работает на общую цель.

Доклад принят в программу конференции

Практики обеспечения качества (1)

QA должны заниматься техлиды

Подмена понятий «QA» и «тестирование» – это не просто терминологическая путаница, а серьёзная проблема, мешающая развиваться как конкретным специалистам, так и всей индустрии в целом.
Называя процесс контроля качества – QA, мы обесцениваем важность такого процесса, как обеспечение качества. Мы как бы закрываем глаза на его существование. А между тем, это отдельная большая область знаний, в которой следует разбираться.
В докладе хочу обратиться к авторитетным источникам (ISO, ISTQB) и разобрать определения оттуда, продемонстрировать на конкретных примерах, где проходит разделение между этими процессами, а также объяснить, почему этими процессами зачастую занимаются одни и те же люди (спойлер: это плохо).

Доклад принят в программу конференции

AI и ML на службе техлида (1)

От контакта с заказчиком до спринта: AI-агенты в полном цикле планирования проектов

В докладе будет подробно рассказано о том, как с помощью AI-агентов можно полностью автоматизировать процесс планирования IT-проектов и заменить рутинные человеческие операции. Мы начнем с анализа проблем традиционного планирования, когда длительный сбор требований, частые контекстные переключения и зависимость от множественных специалистов приводят к задержкам и ошибкам. Затем будет представлено практическое решение – система, в которой специализированные AI-агенты берут на себя функции бизнес-аналитика, продакт-менеджера, системного архитектора и даже проектного менеджера. Эти агенты, используя алгоритмы обработки естественного языка, машинного обучения и интеграцию с инструментами вроде Jira и Confluence, способны автоматически собирать и анализировать входящую информацию, трансформировать бизнес-требования в технические спецификации, генерировать архитектурные артефакты и создавать задачи для разработки. Мы рассмотрим, как данная система сокращает временные и ресурсные затраты, повышает прозрачность процессов и минимизирует ошибки, позволяя человеческим экспертам сосредоточиться на стратегически важных задачах, требующих творческого подхода.

Доклад принят в программу конференции

Безопасность (1)

Безопасное исполнение ненадежного кода

Рассмотрим тему безопасного исполнения ненадежного кода (untrusted code). Любого программного кода, утилит или скриптов, которые по каким-то причинам не вызывают доверия. Например, из-за ненадежности поставщика или из-за политик безопасности компании.

Мы пройдемся по всем уровням, начиная с оркестратора контейнеров до особенностей ядра и системных функций операционной системы. Я поделюсь техниками, которые в моей практике подтвердили свою пригодность.

Возможно, вы занимаетесь разработкой CI/CD-системы; sandbox-системы для тестирования; или приложения, в котором пользователи могут писать код для исполнения на сервере. Или, возможно, в целях интеграции со сторонней системой вам нужно запускать какой-то внешний процесс или размещать стороннее ПО. Поговорим о том, как делать это правильно и безопасно.

Доклад принят в программу конференции

Масштабирование инфраструктуры и процессов (1)

Три недели кодирования экономят два дня проектирования

Методы и техника разработки ПО
Архитектуры / другое
Методологии и процессы разработки ПО; Сроки и приоритеты
Управление разработкой

Как и многие бывшие разработчики, я был большим фанатом agile и противником бюрократии. Делай быстро, релизь еще быстрее, user story просто повод поговорить с владельцем продукта. Хочу рассказать о том, к каким проблемам это привело, как я стал узким местом для команд и как мы вернулись к необходимости письменно проектировать на новом уровне.
Расскажу, какие плюсы я вижу в этой схеме (предсказуемость времени разработки, сокращения переделки задач после ревью, экономия времени лидов и архитекторов, повышение осведомленности команд друг о друге) и какие сложности были при внедрении

Доклад принят в программу конференции

Общие инструменты и платформенные команды (5)

Опенсорс не по плану: как не утопить бизнес, заимствуя технологии

OSS дает огромный профит современной разработке, и все мы активно используем эти решения. Существует ли предел полезности? Что может пойти не так? PnL, профиль рисков, плато продуктивности — давайте разбираться с калькулятором.

Доклад принят в программу конференции

DevEx и платформа, как продукт

Когда мир разочаровался в DevOps…
Когда количество задач на одного разработчика улетело в космос…
Да еще и эти постоянные миграции…
Пришли они - платформы для разработчиков!

Что это за очередная менеджерская штука?! И когда это мир разочаровался в DevOps?!

Да и причем тут: «платформа, как продукт?!»

Все просто! Мы хотим снять когнитивную нагрузку с разработчиков, убрать возможности кастомизации и позволить инженерам заниматься тем, что нравится больше всего - писать красивый и функциональный код!

Доклад принят в программу конференции

От хаоса до порядка: распределяем нагрузку в сервисной команде

Обычно планирование и выполнение задач в команде выглядит как рутинный процесс, знакомый каждому из нас. Есть заказчик, который приносит цели и задачи, есть аналитик, который готовит документацию и тд. У меня ситуация другая. Моя команда состоит из 5 человек и пишет около десятка продуктов для более чем 20 заказчиков. Расскажу, как мы планируем задачи, выбираем приоритет, чтобы никого не обидеть и принести пользу, какими процессами при этом пользуемся.

Доклад принят в программу конференции

От разрозненности к платформенности: как ответить на рост компании

Никита Гольд

Авиасейлс

Когда я пришел в Авиасейлс, нас было 300 человек. Сейчас мы выросли до 1 000 сотрудников. Во время роста мы столкнулись с множеством проблем:
- Разрозненность решений: команды использовали разные версии библиотек в своих сервисах, подходы к логированию, мониторингу, тестированию.
- Любое обновление инфраструктурных решений требовало ручной работы в сотнях репозиториев.
- У нас не было единой точки входа для обсуждения API, стандартов взаимодействия.

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

Доклад принят в программу конференции

Как варить внутренние инструменты быстро, красиво и эффективно

Внутренние инструменты позволяют сокращать time-to-market в сотни раз, делать разработчиков счастливее и ускорять рост бизнеса. Тем не менее на практике часто сталкиваются с тем, что внутренние инструменты съедают ресурсы и не приносят пользы. Как результат — продать время на разработку таких инструментов не так уж и просто.

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

В докладе — готовый рецепт по приготовлению внутренних инструментов, который поможет выбрать правильный подход к их созданию и не наступить на чужие грабли.

Доклад принят в программу конференции

Импортозамещение и миграция (1)

Заменить двигатель банка на ходу без остановок и аварий

API
Микросервисы, SOA
Методы и техника разработки ПО
Большие проекты/команды
Совместное планирование и разработка
Дмитрий Куянов

Райффайзен Банк

Перед командами поставлена амбициозная задача - за несколько лет полностью сменить ядро банка с вендорского коробочного решения на самописные микросервисы. Тут даже реализация сложной бизнес логики операционного учёта - уже задача со звёздочкой, но есть и другие сложности. Одни системы привыкли использовать старый API коробки и не готовы быстро переходить на новые контракты. Другие системы ходят за данными напрямую в БД коробки. Да ещё постоянно появляются новые нефункциональные требования. Тем не менее у нас получилось для каждой проблемы найти архитектурные и организационные решения и за 3 года незаметно для клиентов смигрировать 12 из 35 продуктов банка.

Доклад принят в программу конференции

Практики реализации надежности и отказоустойчивости (1)

Продать надежность. Как сделать понятную бизнесу систему приоритизации техдолга и рефакторинга

Самые частые вопрос у любого SRE-инженера или руководителя технической команды - "как привлечь бизнес в управление надежностью", "как транслировать размытые ожидания бизнеса на нашу техничку", "как обосновать бизнесу необходимость вложится в техдолг и рефакторинг ради надежности"
Именно на эти вопросы я и постараюсь дать ответ, раскрыв вместе с этим - как бизнес размечает сервисы по их критичности.
О чем будем рассказ
- о новых для нас способах работы с надежностью приложений, для всего приложения.
- о процессах определения критичности сервисов
- о графе связей между компонентами
- о прозрачном процессе приоретизации технических работ

Рассказ является логическим продолжением прошлого выступления SLI/SLO/SLA в микросервисном приложении

Доклад принят в программу конференции

Путь техлида (3)

Как создать, продать, понять и простить техническую стратегию

Управление разработкой
Бизнес-процессы
Трансформационные изменения

Хочу развеять запах кровавого энтерпрайза, который повисает в воздухе от словосочетания «техническая стратегия». Это необязательно термин для крупных компаний и гигантских проектов, и в рамках доклада я на примерах покажу, какой может быть реальность даже небольшой команды в зависимости от того, есть ли у неё понимание планов бизнеса и своё видение развития технического ландшафта.

Но откуда стратегия возьмётся, как команда поучаствует в её формировании и найдется ли время на реализацию? Покажу полный путь от фреймворка по подготовке технической стратегии до защиты, социализации, подходов к выполнению и расскажу, что делать, если стратегия есть, а окружающая действительность изменилась.

Моя цель — посеять мысль «а и правда, что ждёт нас через пару лет и не придется ли всё переписывать?» и желание найти ответы на эти вопросы вместе со всеми участниками процесса разработки и планирования.

Доклад принят в программу конференции

Игры, в которые играют инженеры

Как мы используем транзактный анализ для:
1. Разрешения конфликта интересов разных департаментов
2. Построения горизонтальных связей
3. Правильного донесение смыслов до сотрудников
4. Принятия сложных управленческих решений в условиях неопределенности

Доклад принят в программу конференции

Круглый стол "Техлид и развитие в Individual Contributor: Как превратить код в карьеру"

Расширение кругозора

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

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

Доклад принят в программу конференции

Резерв (2)

GitLab CI в действии: практические фишки для повышения эффективности

В докладе пойдём от простого к сложному. Сначала разберём ключевые концепции CI/CD и их значение в современной разработке. Как основной инструмент реализации пайплайна будем использовать GitLab CI: познакомимся с его основными возможностями и особенностями с фокусом на поддержке и улучшении процессов разработки и развёртывания.

Дальше будем пошагово усложнять процесс CI/CD. Продемонстрируем эволюцию этого процесса и фишки GitLab CI, которые помогут в его оптимизации. Обсудим стратегии снижения затрат времени и ресурсов на CI/CD-процессы, а также методы повышения производительности и надёжности последних благодаря грамотному использованию GitLab CI.

Доклад принят в программу конференции

Вам не нужна архитектура?

Роли архитекторов, и сам архитектурный процесс во многих случаях часто воспринимается, как лишняя нагрузка и ненужная бюрократия.
Все эти схемы, согласования, увеличение TTM, ненужные встречи, попытки доказать, что решение, которое спроектировано командой - оптимально...
Так может быть, архитектура вам и не нужна? Давайте разбираться.

Доклад принят в программу конференции

6t555555555555555555