Что такое разбитые окна? и какое отношение они имеют к программному обеспечению, которое мы пишем? Теория разбитого окна, описанная Энди Хантом и Дэйвом Томасом в Программисте-прагматике, описывает, как программные проекты могут превратиться в заброшенное состояние, позволяя, казалось бы, незначительным неосмотрительности проникать в кодовую базу.

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

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

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

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

Мы видели, как чистые, функциональные системы довольно быстро приходят в негодность, когда начинают разбиваться окна. Есть и другие факторы, которые могут способствовать ухудшению работы программного обеспечения, и мы коснемся некоторых из них в другом месте, но пренебрежение ускоряет упадок быстрее, чем любой другой фактор.

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

Это иллюстрирует, как, казалось бы, незначительные вещи, оставленные без внимания с течением времени, могут привести систему в состояние полного хаоса, за пределами способности человека или команды исправить это.

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