К основному содержимому
к презентации
Конспект выступления2023

Совершенствование потока разработки ПО

Ускорение разработки нельзя свести к увеличению числа задач в работе или установке нового инструмента. Доклад связывает пять идеалов из The Unicorn Project с архитектурой, процессами, инженерными практиками, культурой и пользой для клиента. Эти стороны рассматриваются совместно: локальная оптимизация теряет смысл, если команды постоянно ждут друг друга или быстрее выпускают то, что пользователю не нужно.

IT Fest · Kazan3 минуты

Конспект сокращён относительно исходного материала; примеры и оценки передают опыт и позицию автора.

Основная линия материала
01

Простота зависит от границ систем и команд

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

Чрезмерно крупный монолит концентрирует сложность внутри, а множество слишком мелких сервисов переносит её во взаимодействия. Концепция глубоких модулей помогает искать интерфейс, который скрывает существенную внутреннюю сложность. Для аналитических данных обсуждается Data Mesh: доменное владение, данные как продукт, платформа самообслуживания и общие правила совместимости. Эти подходы связывают технические границы с работой людей и потребностями потребителей данных.

02

Потоком нужно управлять, а ежедневную работу — улучшать

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

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

03

Культура и клиентский результат определяют смысл улучшений

Исследование Google Project Aristotle используется для обсуждения психологической безопасности, а типология Веструма — для сравнения реакции организаций на проблемы. Автор сохраняет ограничения: выводы Google относятся к исследованным командам, а статистическая связь культуры и результатов не равна доказанной причинности. В инженерной практике эта тема проявляется в постмортемах, которые помогают понять условия инцидента и предотвратить повторение, вместо поиска удобного виноватого.

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

Выводы

Что стоит унести с собой

  1. 01Границы систем и команд должны уменьшать суммарную сложность, а не только размер отдельных компонентов.
  2. 02Видимость работы, ограничение незавершённых задач и инженерные улучшения поддерживают устойчивый поток.
  3. 03Культура разбора ошибок и клиентские результаты определяют, ради чего ускоряется разработка.

Источники