Connect with us

Разработка

Теория «разбитых окон» в разработке ПО

В результате система становится жесткой, хрупкой, неподвижной и менее устойчивой к изменениям. Каждое новое изменение сопряжено с большими затратами, увеличением заменяемых деталей и, следовательно, высоким риском отказа.

Фото аватара

Опубликовано

/

     
     

«Разбитые окна» — одна из самых известных теорий в истории криминологии. Эта теория была впервые предложена в начале 1980-х годов социологом Джорджем Л. Келлингом в его статье в журнале Atlantic. Она следовала из эксперимента, проведенного психологом Стэндфорда Филипом Зимбардо в 1969 году.

Келлинг объяснил эту теорию следующим образом:

«Представьте себе здание с (несколькими) разбитыми окнами. Если окна не будут отремонтированы как можно скорее, то, как правило, кто-то другой (например, вандал) разобьет больше окон и, в конце концов, ворвется в здание, разожжет внутри него костер».

Или, в более облегченной версии:

«Посмотрите на тротуар. На нем появляется какой-то небольшой мусор. Вскоре его становится больше. Со временем люди начинают оставлять там мешки с мусором из ресторанов или даже взламываю машины».

Если вам нравится эта тема, то по ней есть множество публикаций. Посмотрите, например, «Исправляя сломанные окна».

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

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

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

Невероятно ориентированная на детали деятельность

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

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

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

Ник Грасилла объяснил эту концепцию красивой цитатой:

Хорошая программная архитектура похожа на хорошую сантехнику, но в доме, который  постоянно меняется.

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

Хорошо, подождите, подождите, скажете вы. Давайте просто отвлечемся на одну секунду. Что такое теория «разбитых окон» в разработке программного обеспечения?

Никто не начинает с плохих намерений

Никто не начинает проект с намерением сделать его плохо.

В начале основной интерес представляют принципы, практика и законы, даже если их внедрение может оказаться трудным (это также зависит от навыков команды)

Внезапно «окно» разбивается.

Это может произойти из-за высокого давления или просто из-за недостатка знаний.

Люди часто ошибаются, даже Senior-разработчики. Особенно Senior-разработчики («Ваше эго — злейший враг вашей души» — Расти Эрик).

Но разбитые окна — это не просто ошибки. Требования часто меняются, и вам может потребоваться внести небольшие или большие изменения, чтобы в лучшем случае следовать намерениям.

Это нормально.

Здесь есть раздвижная дверь.

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

В результате система становится жесткой, хрупкой, неподвижной и менее устойчивой к изменениям. Каждое новое изменение сопряжено с большими затратами, увеличением заменяемых деталей и, следовательно, высоким риском отказа.

Что предлагает теория «разбитых окон»

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

Отсутствие каких-либо негативных последствий расширяет внутреннее принятие беспорядка.

Срезание углов становится приемлемым, и качество начинает снижаться.

Хотя проблема может быть сложной, решения просты:

  • Внедрите здоровый подход в свою команду
    Senior-разработчики отчаянно хотят продемонстрировать свои сильные стороны (я, черт возьми, 10х инженер, детка!), Junior-ы — сколько они всего могут сделать. Редко один, два или три дня больше предполагаемого срока что-то значат. Вместо этого спокойный и сосредоточенный подход может спасти вас и вашу команду.
  • Ничего не дается бесплатно
    Каждый может переписать программное обеспечение с нуля. Постоянное обслуживание и развитие гораздо сложнее и показывает, насколько вы и ваша команда хороши в разработке программного обеспечения. Рефакторинг, как и отладка, — это познавательная деятельность, позволяющая показать сильные стороны любого разработчика.

Источник

Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.
Advertisement

Наши партнеры:

LEGALBET

Мобильные приложения для ставок на спорт
Telegram

Популярное

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: