Книга: Руководство по DevOps
Устанавливайте границы между командами в соответствии с законом Конвея
Устанавливайте границы между командами в соответствии с законом Конвея
По мере роста организаций одной из крупнейших задач становится поддержание эффективной коммуникации и координации между людьми и командами. Когда люди и команды находятся на разных этажах, в различных зданиях или даже часовых поясах, создать и поддержать общее понимание и взаимное доверие сложно, и это препятствие для эффективной совместной деятельности. Сотрудничеству также мешают ситуации, когда основные механизмы коммуникации — задания на работу и запросы на изменения. Еще хуже, когда команды разделены установленными в договоре границами, как в случае выполнения заданий аутсорсинговыми командами.
Как мы видели на примере Sprouter в компании Etsy, описанном в начале этой главы, способ формирования команд может давать плохие результаты — таков побочный эффект закона Конвея. В число таких способов входит разделение групп по функциям (например, размещение разработчиков и тестировщиков в разных местах или полная передача тестирования на аутсорсинг) либо по слоям архитектуры (например, приложения, базы данных).
Такие конфигурации требуют значительных коммуникаций и координации между группами, но по-прежнему приводят к большим объемам переделок, разногласиям в спецификациях, неудовлетворительной передаче работы из одних отделов в другие и к тому, что специалисты простаивают, ожидая завершения смежниками их части проекта.
В идеале архитектура программного обеспечения должна позволить небольшим командам действовать независимо, продуктивно и быть достаточно отделенными друг от друга, так чтобы работа могла быть сделана без чрезмерных или вовсе ненужных коммуникаций и координации.
- Архетипы организационной структуры
- Проблемы часто бывают вызваны чрезмерно функциональной ориентацией («оптимизацией затрат»)
- Создать условия для команд, ориентированных на рынок («оптимизация скорости»)
- Создание функционально ориентированной работы
- Тестирование, эксплуатация и безопасность — повседневная работа каждого
- Каждый член команды может стать универсалом
- Финансируйте не проекты, а сервисы и продукты
- Устанавливайте границы между командами в соответствии с законом Конвея
- Создавайте слабосвязанные архитектуры, чтобы обеспечить продуктивность и безопасность труда разработчиков
- Сохраняйте размеры команд небольшими (правило «команда на две пиццы»)
- Практический пример
- Программа API Enablement компании Target (2015 г.)
- Заключение
- Миграция между различными версиями InterBase
- 3.4. Отношения между классами
- Мост между физической и логической структурой базы данных
- Распределение функциональных обязанностей между должностями
- Правило 16. Группируйте связанные между собой элементы
- 6.4.2. Передача номенклатурных позиций между ячейками склада
- Как быстро переключаться между двумя пользователями, не закрывая их программ?
- Как узнать скорость соединения между компьютерами?
- Обмен данными между гостевой и хостовой ОС
- Как в документе Microsoft Word изменить расстояние между двумя словами?
- Международное соперничество
- Эффекты переключения между окнами