Как формировать структуру команд под запросы бизнеса - часть 1
Последние 7 лет я работаю в Тинькофф и за это время видел и отвечал за большое количество изменений: организационных, продуктовых и инженерных. Про многие из них я уже рассказывал в выступлениях и статьях, но там был обычно фокус на конкретном изменении. А в этом посте я бы хотел поговорить про принципы дизайна команд и управленческой структуры, без которых мне было бы гораздо сложнее понимать а что надо менять и почему именно так. Для этого надо вспомнить про несколько базовых вещей
- Подход working backwards или backcasting - о том, что начинать лучше с конца, представляя цель изменений и финальный результат.
- Закон Конвея - утверждение Мелвина Конвея про то, что организации проектируют системы, которые копируют структуру коммуникаций в этой организации
- Обратный маневр Конвея - подход, который рекомендует эволюционировать структуру команд и организационную структуру так, чтобы продвигать желаемую архитектуру в организации.
- Топология команд (Team topology)- плодотворный подход с набором паттернов для структурирования типов команд и их взаимодействий, который вводит 4 вида команд: stream-aligned, platform, enabling, complicated subsystem и три вида взаимодействий: collaboration, facilitating, x-as-a-service.
- Управление измнениями (Change management) - набор подходов для того, чтобы осуществлять изменения на всех уровнях: индивидуальном, командном и организационном. Теперь, когда я упомянул про сами концепции, то можно описать мой подход к формированию структуры управления.
Алгоритм приблизительно такой
- Определить какая сейчас долговременная цель у той части компании, за которую вы отвечаете
- Оценить какая архитектура систем подходит наилучшим образом под эту цель
- Применить обратный маневр Конвея, чтобы понять какая структура команд будет поддерживать желаемую архитектуру
- Использовать паттерны из team topologies, чтобы спроектировать структуру команд и виды их взаимодействия
- Использовать менеджмент изменений, чтобы все спланировать и осуществить (про организационный и командный уровень мы поговорили выше, а индивидуальный здесь обсуждать не будем)
В следующей части я расскажу про применение этого алгоритма в 4 сценариях: **- Проект (запуск новой инициативы)
- Развитие продукта (просто продуктовая разработка)
- Масштабирование разработки вверх (scaling up)
- Масштабирование разработки вниз (scaling down)** Все этапы я в свое время проходил на практике и про многие даже рассказывал:)
P.S. Накидаю источников для изучения
- Про backcasting мы обсуждали в серии Code of Architecture про Technology Strategy Patterns
- Про working backwards написана целая книга
- Про закон Конвея можно почитать в wikipedia
- Обратный маневр Конвея в 2014 году попал в техрадар от ThoughtWorks
- Про team topologies можно почитать мои краткие саммари: Teams as means of Delivery, Team Topologies that work for flow, Evolving team interactions for innovation and rapid delivery
- Про управление изменениями классно написано в книге "Наш айсберг тает", про которую я уже писал
#Management #Leadership #Processes #ProjectManagement #Project #Software #SoftwareDevelopment