Акция «Шаг навстречу» с 1 по 30 октября
Не проходите мимо! Студия «Koritsa» в очередной раз идет навстречу клиентам...
На протяжении всего октября специальное предложение: при заказе любого сайта «под ключ» - мы проводим бесплатную внутреннюю оптимизацию сайта для продвижения в поисковых системах.

Также продолжает действовать акция «Большой босс»: при заказе сайта на сумму от 999$ - мы предоставляем скидку в 10% от стоимости заказа.
-10 %
от 999$
Не теряйте времени! Звоните прямо сейчас +38 095 136-61-16. До завершения акции осталось: 20 дн. 18 ч. 15 мин. и 28 сек.
Студия дизайна и рекламы Koritsa
Информационные материалы → Разное

Тест Джоэла. Часть Третья.



5. Исправляете ли вы ошибки, перед тем как писать новый код?
Работа над самой первой версией Microsoft Word for Windows тянулась похоронным маршем. Проект беспрестанно застревал и зависал. Целая команда проводила над ним долгие часы, проект откладывался снова и снова, а напряжение было невероятным. И когда через годы эта штуковина наконец-то была отправлена в продажу, вся команда была за счет Microsoft отправлена в Канкун на отдых, а затем ее собрали для серьезного "разбора полетов".
Вскрытие показано, что менеджеры проекта очень настаивали на соблюдении расписания, что программисты просто работали второпях, создавая крайне плохой код, так как фаза исправления кода не входила в официальное расписание. Не было попытки уменьшать количество ошибок. Как раз наоборот. Рассказывают, что один программист, который должен был писать код для вычисления высоты текстовой строки, просто написал "return 12;", а затем ждал сообщения об ошибке, чтобы узнать, каким образом его функция работает не всегда корректно. Расписание было просто списком возможностей, ожидающих, пока их превратят в ошибки. Впоследствии это назвали "методологией бесконечных дефектов".
Чтобы исправить ситуацию, в Microsoft приняли так называемую "методологию отсутствия дефектов". Над ней посмеивались многие из программистов, работавших в компании: это выглядело так, будто руководство думало, что количество ошибок можно уменьшить, издав соответствующее распоряжение. На самом же деле "отсутствие дефектов" означало, что наивысший приоритет имеет устранение ошибок перед напи­санием любого нового кода. И вот почему.
В общем, чем дольше вы тянете с исправлением ошибки, тем дороже ее исправить (с учетом времени и денег).
Например, если вы сделаете опечатку или синтаксическую ошибку, замеченные компилятором, то исправить их обычно очень легко.
Когда в вашем коде завелась ошибка, которую вы первый раз увидели при его первом запуске, то сразу сумеете ее исправить, так как еще хорошо помните весь код.
Если вы найдете ошибку в коде, написанном вами несколько дней назад, то для ее отслеживания вам потребуется некоторое время. Но заново перечитав написанный вами код, вы все вспомните и сумеете исправить ошибку в разумные сроки.
Но если вы найдете ошибку в коде, написанном вами несколько месяцев назад, вы, вероятно, уже многое забудете, что относится к этому коду, и его будет намного труднее исправить. В это же время вам, возможно, придется исправлять код, написанный кем-то другим, кто как раз находится в отпуске на Арубе. Тогда исправление ошибки будет чем-то вроде научного исследования: вам приходится быть неторопливым, методичным и педантичным, и вы не сумеете точно сказать, когда именно закончите работу.
И если вы найдете ошибку в коде, который уже отправлен в продажу, вам придется понести невероятные расходы, чтобы ее исправить.
Одна из причин, почему надо исправлять ошибки сразу, состоит в том, что на это уйдет меньше времени. Есть и другая причина, связанная с тем, что легче сказать, за какое время можно написать новый код, чем за какое время - исправить ошибку. Например, если бы я спросил вас, за какое время можно написать код для сортировки списка, то вы мне ответили бы с довольно хорошей точностью. Но если бы я вас спросил, за какое время можно исправить ошибку, из-за которой не работает ваш код при установленном Internet Explorer 5.5, то вы не смогли бы даже приблизительно подсчитать, так как не знаете (по определению) из-за чего возникла ошибка. Для ее отслеживания может потребоваться как три дня, так и две минуты.
Это значит, что если бы вы имели расписание по исправлению множества ошибок, то такое расписание было бы ненадежным. Но если бы вы исправили все известные ошибки, а все оставшееся было бы новым кодом, то ваше расписание оказалось бы потрясающе точным.
Другая прекрасная вещь, связанная с сохранением счетчика ошибок на нуле, состоит в том, что вы можете намного быстрее реагировать на вызовы конкурентов. Для некоторых программистов это означает сохранение продукта все время готовым к продаже. И тогда если в продукте конкурента появится потрясающая новая возможность, которая крадет ваших клиентов, вы можете в своем продукте реализовать только эту возможность, а затем поставить его на рынок, не испытывая нужды в исправлении большого количества накопившихся ошибок.