Программисты всегда рады начать новые проекты по разработке программного обеспечения. Почему ? потому что им нравится создавать совершенно новые решения, используя собственное творчество и исследования. Им нравится создавать что-то с нуля и иметь полное представление о том, как работает вся система.

Я считаю, что это относится к большинству компьютерных ученых и инженеров; они увлечены "вещами": Мы любим "вещи", мы очарованы тем, как "вещи" функционируют. Вот почему мы так взволнованы, когда создаем новые «вещи».

У большинства из нас горит пламя возбуждения в начале каждого проекта, но чем дальше мы продвигаемся, тем больше пламя гаснет. Проект начинает казаться несвежим и теряет свой вкус. Это уже не то же самое.

Так почему же? Что вызывает это чувство покинутости во время работы над программным проектом? Это из-за **Разбитого окна**

Авторы Дэвид Томас и Эндрю Хант называют разбитые окна — в их книге The Pragmatic Programmer — фрагментами плохого кода, плохим дизайном и всеми другими неправильными решениями. Эти «разбитые окна» вселяют в команду ощущение гнили и распада, это дает нам ощущение, что все заброшено и ветшает и что ничего страшного, если мы разобьем еще больше окон.

«В глубине города одни здания красивые и чистые, а другие — гниющие громады. Почему? Исследователи в области криминала и городского упадка обнаружили удивительный спусковой механизм, который очень быстро превращает чистое, неповрежденное жилое здание в разбитый и заброшенный заброшенный объект.
Разбитое окно»

«Одно разбитое окно, оставленное без ремонта в течение значительного периода времени, внушает […] ощущение заброшенности… поэтому разбивается еще одно окно. Люди начинают мусорить… здание не подлежит ремонту, и ощущение заброшенности становится реальностью».

Прагматичный программист

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

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

Не живите с разбитыми окнами

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