Первые 90 процентов кода составляют первые 90 процентов времени разработки. Оставшиеся 10 процентов кода составляют остальные 90 процентов времени разработки.
- Том Каргилл, Bell Labs
Что это означает на практике? Что программисты делают значительный объем работы и что они дают 180% от себя или?
programming-practices
theory
Иосип Ивич
источник
источник
Ответы:
Представьте себе это так: когда вы начинаете работать над программным обеспечением, вы можете написать огромное количество кода за относительно короткое время. Этот новый код может добавить огромное количество новых функций. Проблема заключается в том, что зачастую эта функциональность далека от «выполненной», могут быть ошибки, небольшие изменения (небольшие в малом бизнесе) и так далее. Таким образом, программное обеспечение может показаться, что оно почти готово (90% сделано), потому что оно поддерживает большинство вариантов использования. Но программное обеспечение все еще нуждается в работе. Смысл этого правила заключается в том, что, несмотря на ощущение, что программное обеспечение почти готово, объем работы по приведению этого программного обеспечения в надлежащее рабочее состояние столь же велик, как и переход в это «почти готовое» состояние. Это потому, что исправление ошибок часто отнимает много времени, но не выдает много кода.
Проблема состоит в том, что большинство разработчиков оценивают перевод программного обеспечения в «почти готовое» состояние, потому что это относительно просто по сравнению с фактической оценкой общего усилия, которое потребуется программному обеспечению.
источник
Это ссылка на общий сценарий, который, к сожалению, все еще происходит сегодня:
«90%» - это произвольная цифра, но она хорошо показывает суть: оценки являются догадками и, скорее всего, будут ошибочными (часто очень ошибочными), а человеческая природа гарантирует, что мы почти всегда оцениваем, так что вещи перерасходят.
источник
other 90%
Я слышал другую версию этого (также называемую «правилом 90-90»), которая выглядит следующим образом:
Обе версии касаются сложности правильной оценки усилий по разработке программных продуктов и распространенных ошибок, с которыми люди могут столкнуться:
источник
Это правило дополняет правило 80-20. Есть много разных интерпретаций правила 80-20, но мне больше всего нравятся две:
На практике это означает следующее: разработка начнется и будет продолжаться до определенного момента, когда будут замечены первые задержки. Задержки могут быть различного характера:
Суть в том, что гораздо легче приблизиться к цели, чем реально ее достичь.
источник
Я нахожу объяснение Википедии довольно поучительным:
источник
Нет, программисты всегда выполняют одну и ту же работу за единицу времени. Цитата о недооценке стоимости и перерасходов. 180% - это количество времени и денег, которые затрачивает проект.
Это примерно означает «это займет у вас вдвое больше времени, чем вы думаете» и «вы будете думать, что у вас все хорошо, пока не станет слишком поздно (крайний срок близок)».
источник
На практике это означает, что люди лгут самим себе.
Если программист говорит: «Мы на 90% сделали», это означает, что 90% усилий по созданию функций были израсходованы.
Если руководитель проекта говорит: «Мы на 90% закончили, мне просто нужен кто-то, чтобы закончить», это означает, что они на 90% закончили бюджет (и, вероятно, 50% сделали). Это клиент без денег, больших ожиданий и плохого отношения.
Разница в том, что для завершения проекта требуется больше усилий, чем для написания кода: исправление ошибок, копирование, редактирование, развертывание.
Этими вещами нужно управлять в проекте, и они находятся в ведении менеджера проекта. Это часто удивляет новых PM, которые соглашаются на «90% возможностей завершено» только для того, чтобы понять, что они только на полпути к «проекту выполнено».
источник