Способ мышления-Форт



         

Девять фаз цикла программирования - часть 29


Опять же, этот процесс сложнее, чем может показаться. Если Вы не знаете проблему до тех пор, пока ее не решите, то как, спрашивается, вы можете узнать, сколько времени она отнимет?

Тщательное планирование обязательно, поскольку все всегда длится дольше, чем Вы расчитываете. У меня по этому поводу есть теория, основанная на законах вероятности:

------------------------------------------------------------ СОВЕТ Среднее время доработки задачи "за пару часов" составляет около 12-ти часов. ------------------------------------------------------------

Представьте себе следующий сценарий: Вы находитесь посередине разработки большой программы, когда неожиданно Вас осеняет добавить туда относительно маленькую функцию. Вы думаете, что это займет часа два, поэтому, без дальнейшего планирования, Вы ее делаете. Полагаем: два часа на время кодирования. Время проектирования Вы не считаете, поскольку постигли необходимость - и реализацию - функции в мгновение ока при работе над задачей. Поэтому Вы кладете два часа.

Но допустим следующие возможности:

1. Ваша реализация содержит ошибку. Через два часа это не работает. Поэтому Вы проводите еще два часа на переделку. (Всего 4 часа.) 2. ИЛИ еще до реализации Вы поняли, что Ваш начальный проект не работал бы. Вы тратите два часа на перепроектирование. `Эти` два часа считаются. Плюс два часа на кодирование. (Всего 4 часа.) 3. ИЛИ Вы реализуете первый проект до того, как понимаете, что он неработоспособен. Поэтому Вы перепроектируете (еще два часа) и перекодируете (еще два). (Всего 6 часов.) 4. ИЛИ Вы кодируете первый вариант, находите ошибку, переписываете код, находите слабость в проекте, перепроектируете, перекодируете, находите ошибку в новом коде, перекодируете опять. (Всего 10 часов.)

Вы видите, как растет снежный ком?

5. Теперь Вам надо задокументировать новую функцию. Добавьте два часа к вышеуказанному. (Всего 12 часов.) 6. После того, как Вы потратитли что-то между 2-мя и 12-ю часами, устанавливая и отлаживая свою новую функцию, Вы неожиданно обнаруживаете, что элемент Y в Вашей задаче перестал работать.


Содержание  Назад  Вперед