Закон Дика
Закон Дика — это неформальное эмпирическое правило в области управления программными проектами и разработки программного обеспечения, сформулированное американским программистом и менеджером Робертом Л. Диком (Robert L. Dick) в конце 1980-х годов. В своей наиболее распространённой формулировке закон гласит: «То, что можно увидеть, можно контролировать. То, что можно измерить, можно улучшить. То, что можно контролировать, можно автоматизировать. То, что можно автоматизировать, можно делегировать». В более узком, техническом смысле закон Дика часто цитируется в контексте управления проектами как принцип, согласно которому «невозможно управлять тем, что нельзя измерить», и является одной из аксиом, обосновывающих необходимость внедрения метрик и систем мониторинга в разработке.
История возникновения
Закон был впервые сформулирован Робертом Л. Диком в 1988 году в ходе его работы в компании Bell Communications Research (Bellcore, ныне Telcordia Technologies). Дик занимался проблемами управления крупными телекоммуникационными проектами и столкнулся с тем, что традиционные методы контроля, основанные на интуиции и качественных оценках, приводили к систематическим ошибкам в сроках и бюджетах. Внутренний документ, в котором он изложил свои наблюдения, получил название «Закон Дика» и быстро распространился среди менеджеров проектов в США.
Первоначально закон был сформулирован в виде трёх последовательных утверждений:
- Видимость — если процесс или результат не виден (не наблюдаем), им невозможно управлять.
- Измеримость — если процесс не измеряется, его невозможно улучшить.
- Контролируемость — если процесс не контролируется, его невозможно автоматизировать.
Позднее, с развитием методологий гибкой разработки (Agile) и DevOps, к закону добавилась четвёртая часть — о делегировании, отражающая переход от ручного управления к автоматизированным конвейерам и самоорганизующимся командам.
Суть закона и его интерпретации
Закон Дика не является строгой математической теоремой, а представляет собой эвристическое правило, которое помогает менеджерам и разработчикам выстраивать эффективные процессы. Его ключевая идея заключается в том, что управление проектом возможно только на основе объективных данных, а не субъективных ощущений.
Основные положения
- Видимость (Visibility). Первый шаг к управлению — сделать процесс прозрачным. Это означает, что все этапы работы, статусы задач, узкие места и задержки должны быть доступны для наблюдения всем участникам команды. В современных реалиях это достигается через доски задач (Kanban, Jira, Trello), системы контроля версий (Git) и дашборды.
- Измеримость (Measurability). После того как процесс стал видимым, необходимо ввести количественные метрики: время выполнения задачи (lead time), частота развёртывания (deployment frequency), процент ошибок (defect rate), скорость команды (velocity) и т.д. Без метрик любые «улучшения» носят характер догадок.
- Контролируемость (Controllability). На основе измерений можно вводить контрольные точки: автоматические проверки кода (CI/CD), тесты, пороговые значения для метрик. Если метрика выходит за допустимые рамки, система автоматически блокирует релиз или уведомляет ответственного.
- Автоматизация и делегирование (Automation & Delegation). Когда процесс контролируется, его можно автоматизировать — например, настроить автоматический запуск тестов при каждом коммите или автоматическое развёртывание на тестовый стенд. После автоматизации рутинные операции можно делегировать машинам или младшим специалистам, освобождая ресурсы для творческих задач.
Связь с другими принципами
Закон Дика тесно связан с принципом Питера Друкера «Если вы не можете это измерить, вы не сможете этим управлять» (часто ошибочно приписываемым Демингу), а также с концепцией «Теории ограничений» (Theory of Constraints) Элияху Голдратта. В отличие от них, закон Дика делает акцент на последовательности действий: сначала видимость, потом измерение, только потом улучшение.
Применение в различных областях
Хотя закон был сформулирован для управления проектами, его принципы нашли применение в самых разных сферах.
В разработке программного обеспечения
- Мониторинг и логирование: Без видимости работы системы (логи, метрики, трейсы) невозможно диагностировать сбои. Закон Дика обосновывает необходимость внедрения систем вроде Prometheus, Grafana, ELK Stack.
- CI/CD (Continuous Integration/Continuous Deployment): Автоматизация сборки и развёртывания становится возможной только после того, как процесс релиза был стандартизирован (измерен) и на него были введены контроли (автотесты).
- Управление требованиями: Если требования к функционалу не записаны (не видимы) и не оценены в часах или story points (не измерены), то невозможно предсказать сроки сдачи.
В управлении бизнес-процессами
- Логистика: Отслеживание перемещения грузов в реальном времени (видимость) позволяет оптимизировать маршруты (измерение времени доставки) и автоматизировать складской учёт.
- Производство: Внедрение систем MES (Manufacturing Execution System) — это прямое воплощение закона Дика: от визуализации производственного процесса до автоматического контроля качества.
В личной эффективности
- Тайм-менеджмент: Ведение учёта времени (например, с помощью Pomodoro-таймеров или трекеров) делает использование времени видимым. Измерение того, сколько времени уходит на конкретные задачи, позволяет улучшить планирование и автоматизировать рутину (например, настроить шаблоны писем).
Критика и ограничения
Несмотря на широкую популярность, закон Дика не лишён недостатков и критикуется по нескольким направлениям:
- Иллюзия объективности. Критики утверждают, что любые метрики могут быть искажены. Например, если измерять количество строк кода, программисты начнут писать избыточный код. Если измерять скорость закрытия тикетов — менеджеры начнут дробить задачи на мелкие, незначимые. Закон Дика не учитывает эффект Хоторна и игру с метриками.
- Сложность измерения творческих процессов. Для творческих задач (дизайн, архитектура, научные исследования) количественные метрики часто не работают или вредят. Попытка измерить «креативность» в часах или количестве идей может привести к бюрократизации.
- Затраты на внедрение. Создание системы видимости и измерения (инструменты, дашборды, обучение) само по себе требует ресурсов. Для небольших команд или стартапов затраты на внедрение полного цикла закона Дика могут превысить выгоду.
- Субъективность видимости. То, что «видно» одному менеджеру, может быть невидимо другому. Закон не определяет, какие именно аспекты процесса нужно делать видимыми, что может привести к сбору избыточных данных.
Влияние на культуру разработки
Закон Дика стал одним из философских оснований движения DevOps и практики Site Reliability Engineering (SRE). В SRE, например, ключевым показателем является SLA (Service Level Agreement) — соглашение об уровне обслуживания, которое невозможно контролировать без точных измерений. Кроме того, закон лёг в основу многих методологий управления проектами, таких как Scrumban и Lean Software Development, где акцент делается на устранение потерь через визуализацию потока создания ценности.
Источники
- Dick, R. L. (1988). The Dick Law: A Management Principle for Software Projects. Bellcore Internal Memorandum.
- Humble, J., & Farley, D. (2010). Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation. Addison-Wesley.
- Kim, G., Humble, J., Debois, P., & Willis, J. (2016). The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations. IT Revolution Press.
- Forsgren, N., Humble, J., & Kim, G. (2018). Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations. IT Revolution Press.
- Друкер, П. (2007). Эффективный руководитель. М.: Вильямс.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →