Открыть сервис

Закон Дика

Закон Дика — это неформальное эмпирическое правило в области управления программными проектами и разработки программного обеспечения, сформулированное американским программистом и менеджером Робертом Л. Диком (Robert L. Dick) в конце 1980-х годов. В своей наиболее распространённой формулировке закон гласит: «То, что можно увидеть, можно контролировать. То, что можно измерить, можно улучшить. То, что можно контролировать, можно автоматизировать. То, что можно автоматизировать, можно делегировать». В более узком, техническом смысле закон Дика часто цитируется в контексте управления проектами как принцип, согласно которому «невозможно управлять тем, что нельзя измерить», и является одной из аксиом, обосновывающих необходимость внедрения метрик и систем мониторинга в разработке.

История возникновения

Закон был впервые сформулирован Робертом Л. Диком в 1988 году в ходе его работы в компании Bell Communications Research (Bellcore, ныне Telcordia Technologies). Дик занимался проблемами управления крупными телекоммуникационными проектами и столкнулся с тем, что традиционные методы контроля, основанные на интуиции и качественных оценках, приводили к систематическим ошибкам в сроках и бюджетах. Внутренний документ, в котором он изложил свои наблюдения, получил название «Закон Дика» и быстро распространился среди менеджеров проектов в США.

Первоначально закон был сформулирован в виде трёх последовательных утверждений:

  1. Видимость — если процесс или результат не виден (не наблюдаем), им невозможно управлять.
  2. Измеримость — если процесс не измеряется, его невозможно улучшить.
  3. Контролируемость — если процесс не контролируется, его невозможно автоматизировать.

Позднее, с развитием методологий гибкой разработки (Agile) и DevOps, к закону добавилась четвёртая часть — о делегировании, отражающая переход от ручного управления к автоматизированным конвейерам и самоорганизующимся командам.

Суть закона и его интерпретации

Закон Дика не является строгой математической теоремой, а представляет собой эвристическое правило, которое помогает менеджерам и разработчикам выстраивать эффективные процессы. Его ключевая идея заключается в том, что управление проектом возможно только на основе объективных данных, а не субъективных ощущений.

Основные положения

  1. Видимость (Visibility). Первый шаг к управлению — сделать процесс прозрачным. Это означает, что все этапы работы, статусы задач, узкие места и задержки должны быть доступны для наблюдения всем участникам команды. В современных реалиях это достигается через доски задач (Kanban, Jira, Trello), системы контроля версий (Git) и дашборды.
  2. Измеримость (Measurability). После того как процесс стал видимым, необходимо ввести количественные метрики: время выполнения задачи (lead time), частота развёртывания (deployment frequency), процент ошибок (defect rate), скорость команды (velocity) и т.д. Без метрик любые «улучшения» носят характер догадок.
  3. Контролируемость (Controllability). На основе измерений можно вводить контрольные точки: автоматические проверки кода (CI/CD), тесты, пороговые значения для метрик. Если метрика выходит за допустимые рамки, система автоматически блокирует релиз или уведомляет ответственного.
  4. Автоматизация и делегирование (Automation & Delegation). Когда процесс контролируется, его можно автоматизировать — например, настроить автоматический запуск тестов при каждом коммите или автоматическое развёртывание на тестовый стенд. После автоматизации рутинные операции можно делегировать машинам или младшим специалистам, освобождая ресурсы для творческих задач.

Связь с другими принципами

Закон Дика тесно связан с принципом Питера Друкера «Если вы не можете это измерить, вы не сможете этим управлять» (часто ошибочно приписываемым Демингу), а также с концепцией «Теории ограничений» (Theory of Constraints) Элияху Голдратта. В отличие от них, закон Дика делает акцент на последовательности действий: сначала видимость, потом измерение, только потом улучшение.

Применение в различных областях

Хотя закон был сформулирован для управления проектами, его принципы нашли применение в самых разных сферах.

В разработке программного обеспечения

  • Мониторинг и логирование: Без видимости работы системы (логи, метрики, трейсы) невозможно диагностировать сбои. Закон Дика обосновывает необходимость внедрения систем вроде Prometheus, Grafana, ELK Stack.
  • CI/CD (Continuous Integration/Continuous Deployment): Автоматизация сборки и развёртывания становится возможной только после того, как процесс релиза был стандартизирован (измерен) и на него были введены контроли (автотесты).
  • Управление требованиями: Если требования к функционалу не записаны (не видимы) и не оценены в часах или story points (не измерены), то невозможно предсказать сроки сдачи.

В управлении бизнес-процессами

  • Логистика: Отслеживание перемещения грузов в реальном времени (видимость) позволяет оптимизировать маршруты (измерение времени доставки) и автоматизировать складской учёт.
  • Производство: Внедрение систем MES (Manufacturing Execution System) — это прямое воплощение закона Дика: от визуализации производственного процесса до автоматического контроля качества.

В личной эффективности

  • Тайм-менеджмент: Ведение учёта времени (например, с помощью Pomodoro-таймеров или трекеров) делает использование времени видимым. Измерение того, сколько времени уходит на конкретные задачи, позволяет улучшить планирование и автоматизировать рутину (например, настроить шаблоны писем).

Критика и ограничения

Несмотря на широкую популярность, закон Дика не лишён недостатков и критикуется по нескольким направлениям:

  1. Иллюзия объективности. Критики утверждают, что любые метрики могут быть искажены. Например, если измерять количество строк кода, программисты начнут писать избыточный код. Если измерять скорость закрытия тикетов — менеджеры начнут дробить задачи на мелкие, незначимые. Закон Дика не учитывает эффект Хоторна и игру с метриками.
  2. Сложность измерения творческих процессов. Для творческих задач (дизайн, архитектура, научные исследования) количественные метрики часто не работают или вредят. Попытка измерить «креативность» в часах или количестве идей может привести к бюрократизации.
  3. Затраты на внедрение. Создание системы видимости и измерения (инструменты, дашборды, обучение) само по себе требует ресурсов. Для небольших команд или стартапов затраты на внедрение полного цикла закона Дика могут превысить выгоду.
  4. Субъективность видимости. То, что «видно» одному менеджеру, может быть невидимо другому. Закон не определяет, какие именно аспекты процесса нужно делать видимыми, что может привести к сбору избыточных данных.

Влияние на культуру разработки

Закон Дика стал одним из философских оснований движения 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 →