Основная причина для 20% времени состоит в том, чтобы сохранить загрузку на уровне 80%, а не на 100%.
Вы можете представить организацию разработки программного обеспечения как систему, которая превращает запросы функций в разработанные функции. Вы можете смоделировать его поведение, используя теорию очередей .
ТЕОРИЯ
Если запросы поступают быстрее, чем система может их обслуживать, они помещаются в очередь. Когда прибытие происходит медленнее, размер очереди уменьшается. Поскольку процессы поступления и обслуживания являются случайными, размер очереди изменяется случайным образом со временем.
Математически склонный может спросить об этой «случайности»: должно быть некоторое распределение вероятностей, так какой будет размер очереди в среднем? Математика (теория массового обслуживания) имеет ответ на это: если и процессы прибытия, и процессы обслуживания являются марковскими, то N = rho ^ 2 / (1-rho).
(Где rho - коэффициент использования, равный отношению скорости обслуживания и прибытия. Если процессы немарковские, математика более сложная, но не меняет выводы.)
Если вы построите эту функцию, вы увидите, что средняя длина очереди остается низкой, а загрузка до 0,8 , затем резко возрастает и уходит в бесконечность. Вы можете понять это интуитивно, подумав о процессоре вашего компьютера: когда его загрузка приближается к 100%, компьютер перестает отвечать на запросы.
ПРАКТИКА
Экономика разработки программного обеспечения такова, что компании-разработчики программного обеспечения несут большие расходы, когда их очереди находятся в состоянии высокой очереди. Это включает упущенные рыночные возможности, устаревшие продукты, запоздалые проекты и потери, вызванные конструктивными особенностями в ожидании спроса.
Таким образом, 20% времени - это научный ответ на проблему оптимизации экономических результатов: избегайте стран с высокой очередью, избегая вызывающих их коэффициентов использования. По сути, это слабость, которая держит систему отзывчивой.
Несколько практических выводов следуют сразу:
- если вы рассматриваете 20% времени и ведете учет затрат (время разработчиков стоит X, но / и компания может / не может себе это позволить), вы делаете это неправильно.
- если вы выделяете 20% на пятницу каждую неделю, вы делаете это неправильно
- если вы настраиваете систему подачи / рассмотрения / одобрения проектных предложений на 20% времени, вы делаете это неправильно
- если вы заполняете табели, вы делаете это неправильно
- если вы используете инновации в качестве мотиватора в течение 20% времени, вы делаете это неправильно. В то время как новые продукты появились в 20% проектов, это не главное. Если ваша компания не может внедрять инновации в основное время, это проблема!
- 20% времени это не творчество. Не говорите, что вы раскроете свой творческий потенциал за 20% времени, спросите, почему вы недостаточно креативны уже в свои основные часы.
ОТВЕТЫ НА ВОПРОСЫ В КОММЕНТАРИИ
Дэн , вы правильно поняли и точно описали ошибку, допущенную многими. Вы не можете выбрать свой процент использования, потому что это выходная переменная. Это соотношение характеристик двух процессов, поэтому оно и есть, потому что процессы такие, какие они есть. Организация имеет влияние на оба процесса; Сопоставление возможностей и спроса является одной из трудных проблем, с которыми сталкивается свод знаний по разработке программного обеспечения. Использование - один из показателей того, насколько хорошо эта проблема решается в организации. Вялость проявляется по мере продвижения вашей бережливой инициативы и удаления отходов из потока создания ценности. Но если вы затрачиваете 20% времени, вы попадаете в ту же ловушку утилизации с меньшей доступной емкостью.
Ким , это все еще частично вещь культуры. Самая близкая культурная ссылка, о которой я могу думать, - это синергетический уровень так называемой модели организационных изменений Маршалла . Он возникает в конце успешных преобразований бережливого производства или присутствует в организациях, построенных бережливо с самого начала. ( Вот ссылка на официальный документ Боба Маршалла (PDF) .)
ССЫЛКИ
Вышеуказанная логика хорошо поддерживается в литературе по разработке программного обеспечения. Мэри и Том Поппендик намекнули на это в своей книге 2006 года «Внедрение бережливого программного обеспечения» . Дональд Рейнертсен в своей книге «Принципы разработки продуктов» (глава 3) 2009 года дает подробное описание этой темы с помощью формул и графиков.