13.9 Экспериментальные данные Голда показывают, что во время первого диалога каждого сеанса достигается втрое больший прогресс в интерактивной отладке, чем при последующих диалогах. Все же полезно тщательно спланировать отладку, прежде чем регистрироваться на машине. (Я полагаю, что это полезно до сих пор, в 1995 году.)
13.10 Я считаю, что для правильного использования хорошей системы (интерактивной отладки с быстрой реакцией) на каждые два часа работы за столом должно приходиться два часа работы на машине: один час - на подчистки и документирование после первого сеанса, и один час - на планирование изменений и тестов очередного сеанса.
13.11 Системная отладка (в отличие от отладки компонентов) занимает больше времени, чем ожидается.
13.12 Трудность системной отладки оправдывает тщательную систематичность и плановость.
13.13 Системную отладку нужно начинать, только убедившись в работоспособности компонентов, (в противоположность подходу "свинти и попробуй" и началу системной отладки при известных, но не устраненных ошибках в компонентах). (Это особенно справедливо для бригад.)
13.14 Рекомендуется создать большое окружение и много проверочного кода и "лесов" для отладки, возможно, на 50 процентов больше, чем сам отлаживаемый продукт.
13.15 Необходимо контролировать изменения и версии, при этом члены команды пусть играют со своими копиями на "площадках для игр".
13.16 Во время системного тестирования добавляйте компоненты по одному.
13.17 Леман и Белади свидетельствуют, что квант изменений должен быть либо большим и вноситься редко, либо очень маленьким - и часто. Последний случай более чреват неустойчивостью. (В Microsoft работают маленькими частыми квантами. Разрабатываемая система собирается заново каждые сутки.)
Глава 14. Назревание катастрофы
14.1 "Как оказывается, что проект запаздывает на один год? ...Сначала он запаздывает на один день."
14.2 Отставание, растущее понемногу изо дня в день, труднее распознать, труднее предотвратить, труднее выправить.
14.3 Чтобы управлять большим проектом по жесткому графику, надо прежде всего иметь график, состоящий из вех и соответствующих им дат.
14.4 Вехи должны быть конкретными, специфическими, измеримыми событиями, определенными с предельной точностью.
14.5 Программист редко лжет относительно движения вехи, если веха очерчена резко, он не может обманывать себя.
14.6 Исследования поведения правительственных подрядчиков по проведению оценок в крупных проектах показали, что оценки сроков работы, тщательно пересматриваемые каждые две недели, незначительно меняются по мере приближения начала работ, что во время работ переоценки уверенно снижаются и что недооценки не меняются, пока до запланированного срока окончания работ не остается около трех недель.
14.7 Хроническое отставание от графика убивает моральный дух.