Книга: Руководство по DevOps
Уменьшите зависимость от разделения обязанностей
Уменьшите зависимость от разделения обязанностей
Десятилетиями мы использовали разделение обязанностей как одно из главных средств сокращения рисков ошибок в процессах разработки ПО. В большинстве моделей жизненных циклов разработки систем считалось обычной практикой давать предложенные разработчиками изменения на анализ программисту, отвечающему за ту или иную библиотеку, чтобы он составил рецензию и одобрил правки, прежде чем инженеры ввели бы эти правки в эксплуатацию.
Есть много других менее спорных примеров разделения обязанностей в работе эксплуатации, например, администраторы серверов могут смотреть логи, но не могут удалять их или редактировать, чтобы никто с правами специального доступа не мог удалить свидетельства мошенничества или других проблем.
Когда мы проводили развертывания относительно редко (например, ежегодно) и когда наша работа была менее сложной, разделение работы и передачи управления проектами были приемлемыми способами ведения бизнеса. Однако с ростом сложности систем и увеличением частоты развертываний появляется необходимость того, чтобы все сотрудники в потоке создания ценности могли быстро увидеть результаты своей работы.
Разделение обязанностей часто мешает этому, замедляя и сокращая обратную связь, полученную инженерами. Из-за этого они не могут брать на себя полную ответственность за качество работы, а способность компании получать и накапливать знания значительно сокращается.
Принимая во внимание все вышесказанное, мы должны избегать разделения обязанностей как средства контроля везде, где это возможно. Вместо этого нужно выбрать такие средства контроля, как парное программирование, непрерывные проверки внесенного кода и рецензирование кода. Эти методы помогут нам следить за качеством нашей работы. Кроме того, если от разделения обязанностей избавиться все-таки нельзя, внедрение этих методов покажет, что с их помощью можно добиться тех же результатов.
- Встройте цели защиты данных и выполнения требований в процесс одобрения изменений
- Переместите большинство низкорисковых правок в категорию стандартных изменений
- Что делать с изменениями из категории нормальных
- Практический пример
- Автоматизированные изменения инфраструктуры как стандартные изменения в компании Salesforce.com (2012 г.)
- Уменьшите зависимость от разделения обязанностей
- Практический пример
- Стандарты безопасности PCI и поучительная история о разделении обязанностей в компании Etsy (2014 г.)
- Храните документацию для аудиторов и проверяющих органов
- Практический пример
- Доказательства соблюдения требований в регулируемых средах (2015 г.)
- Практический пример
- Эксплуатационная телеметрия в системах управления банкоматами
- Заключение
- Заключение части VI
- Распределение функциональных обязанностей между должностями
- Не жмите на педали сильнее, а уменьшите торможение
- Информационная зависимость и перенасыщенность: две стороны медали
- 2. Функциональные подразделения в выставочной организации
- Глава 3 Зависимость от технологий
- Глава 8 Распределение ролей и обязанностей
- Независимость Представлений
- Независимость от представления
- Платформенная независимость .NET
- 8.9. ТЕХНОЛОГИЯ ПРОЕКТИРОВАНИЯ НА ОСНОВЕ ОБЯЗАННОСТЕЙ
- 8.9.1. RDD-технология проектирования на основе обязанностей
- Зависимость между количеством фейсингов и объемом продаж