Сегодня онлайн-разработка в «Магните» — самый молодой и автономный юнит, который быстро взаимодействует, строит процессы по принципу здравого смысла и пользы, использует продуктовый подход. Всего в IT «Магнит» больше 3500 инженеров, которые поддерживают и развивают IT-инфраструктуру всей федеральной сети.
Источники
- книга TeamTopologies
- конференция TechLead
- конференция DevopsConf
- статья Организация Agile команд и ARTs: Командная топология в масштабе
- статья Платформенные команды — что это такое и зачем они нужны
Подробнее - развернуть/свернуть
Поточно-ориентированная (далее продуктовая) команда, организована вокруг потока работ и имеет возможность предоставлять ценность непосредственно клиенту или конечному пользователю.- Работает на единый поток создания ценности, новые фичи должны составлять большую часть работы, выполняемой командой.
- Наделена полномочиями создавать и поставлять ценность для клиентов или пользователей как можно быстрее.
- Обладает всеми навыки, необходимыми для создания и поддержки любых функций и компонентов, в которых она нуждаются.
- Применяет практики дизайн мышления для лучшего понимания персоны, представляющей сегмент клиентов, которых она обслуживает — создавая и поддерживая желаемые фичи.
- Команда берет на себя ответственность за поддержку своих элементов решений в промышленной эксплуатации. Другими словами, “они строят это; они управляют этим".
- Реагировать на потребности клиентов – реагировать на запросы новых фич, инциденты и корректировать порядок действий.
- Прямая обратная связь от клиентов.
- Результаты исследований.
- Различные продуктовые метрики.
- Прямая обратная связь от клиентов.
- Результаты исследований.
- Продуктовые метрики (в идеальном мире у команды должна быть одна понятная продуктовая метрика, за которой команда следит).
Кроссфункциональные команды, где есть представители всех направлений: iOS, Android, backend, QA, дизайн, аналитики. Работают по scrum, двухнедельными спринтами, со всеми его стандартными активностями.
- App Tech
- Catalog
- Extra Value Promo Games
- Extra Value Promo Mobile
- Main Screen
- Multiformat
- Online Journal
- Promo
- User Reviews
- Virtual Card
- Web Base
Подробнее - развернуть/свернуть
Платформенная команда, организована вокруг разработки и поддержки платформ, предоставляющих услуги другим командам.- Ориентированность на потребность коллег — если члены платформенной команды не воспринимают свою работу как продукт, который должен облегчить жизнь коллег, то скорее всего платформенная команда ускоренно движется в сторону своего расформирования.
- Высокий уровень технических компетенций — часто сложность задачи по созданию платформы для продуктовых команд сложнее, чем продуктовые задачи, а это значит, что и требования к компетенциям выше.
- Богатый опыт — зачастую только с опытом приходит некоторая технологическая мудрость, когда ты проектируешь общие решения не слишком ограниченно, но в то же время без over engineering;
- Заказ функциональности от продуктовых команд.
- Функциональность, придуманная платформенной командой самостоятельно, но на основе проблем, которые испытывают продуктовые команды.
- Технический долг, который не может решить продуктовая команда.
- Зачастую работа платформенной команды приводит к сокращению time-to-market продуктовых команд, так как они часть функциональности могут собрать из готовых блоков или воспользоваться коробочным процессом.
- Стоимость владения решениями, построенными на общих компонентах зачастую ниже в расчете на одну команду, так как стоимость изменений общих компонент размазывается на все продуктовые команды.
- Одним из главных факторов успеха для платформенной команды является признание продуктовых команд, а выглядит это как свободный выбор продуктовых команд технических продуктов платформенной команды в условиях возможной конкуренции с open source решениями. Таким образом эти технические продукты должны облегчать работу продуктовых команд и помогать в ускорении поставок новой функциональности. Соответственно, главным провалом является вотум недоверия продуктовых команд тем продуктам и подходам, что платформенная команда продвигает в массы.
Платформенные команды организованы вокруг разработки и поддержки платформ, предоставляющих услуги другим командам, и объединены в отдел разработки онлайн платформы. Отдел занимается разработкой, распространением и внедрением общих компонент, подходов, практик, сервисов для все продуктовых команд, чтобы делать их рабочие процессы проще и эффективнее.
В зоне ответственности отдела находятся сервисы:
- a/b платформа и конфигурирование различных настроек в realtime;
- User-Generated Content;
- авторизации и аутентификации;
- коммуникаций с пользователями через sms/push/email;
- обработки логики изменения цен и остатков в торговых точках Магнит;
- поиска по товарам в торговых точках Магнит.
Подробнее - развернуть/свернуть
"Разблокирующая" команда организована для оказания помощи другим командам в специализированных возможностях и помощи в освоении новых технологий.Инструменты и методы разработки решений постоянно меняются, предоставляя организациям регулярные возможности для интеграции новых практик и технологий. Хотя это приносит много преимуществ, это также создает проблемы для развития необходимых навыков и опыта во всех командах. Разблокирующие команды являются важной конструкцией. Они могут оказывать поддержку и давать рекомендации другим командам, помогая им приобретать эти новые навыки и быстро осваивать эти новые технологии.
Примеры разблокирующих команд могут предоставить экспертные знания и поддержку в следующих областях:
- Реализация DevOps.
- Автоматизированное тестирование.
- Непрерывная интеграция и инструменты для сборки.
- Методы обеспечения качества проектирования.
- Безопасность.
- Среды и конфигурация.
- Заказ функциональности от любых других команд.
- Различные области непосредственно несвязанные с разработкой и/или тестированием.
В общем виде измерить эффективность разблокирующих команд крайне сложно. Если это DevOps - можно мерить скорость cicd и как он влияет на time-to-market, если это автоматизированное тестирование - можно мерить уменьшение времени на проведение регресса после внедрения автотестов и т.д. и т.п.
«Разблокирующая» команда оказывает помощь другим командам в специализированных возможностях и в освоении новых технологий. В зоне ответственности отдела devops находятся:
- инфраструктура
- платформа
- конвейер