Pull to refresh

О разбитых окнах.

Reading time2 min
Views2.1K
Ученые установили, что за ограду с табличкой «Не входить! Велосипеды не пристегивать!» все равно входят 27% желающих срезать путь, но если рядом пристегнуть велосипед, число вырастет до 82%.

Что же это, доктор?


Это частный случай поведения, описаного в 1982 Джеймсом Вилсоном и Джорджем Киллингом в статье «Разбитое окно». Дело в том, что человек гораздо чаще нарушает установленые нормы, если видит, что до него их кто то уже нарушил. Если во дворе появятся испачканые стены, неубранный мусор, или разбитое окно, к ним как магнитом притянутся пьяные компании, брошенные автомобили, гоп-стоперы и так далее. Чтобы избежать этого, надо душить в зародыше мелкие нарушения.

Как это относится к IT?


Мне довелось поработать над довольно крупным проектом, у которого сильно хромало качество кода. Не было внутренних стандартов, очень различался уровень исполнителей. Трясина всеобщей апатии засосала меня довольно быстро, и я поплыл по течению, ляпая код абы как и насаждая новые баги во время фикса старых. Сроки в компании срывались постоянно, ни один майлстоун вовремя не сдавался.
Через некоторое время произошли кадровые перестановки, и под моим началом оказалась группа из пяти таких же апатичных программистов. Мне был очерчен фронт работ, и болото передо мной заиграло новыми оттенками уныния, ибо лиды регулярно получали по башке за срыв сроков. Но к счастью именно тогда один коллега рассказал мне про данную теорию. И вот какие выводы я из нее сделал:
  • Разработка моего отдела была выделена в отдельный модуль.
  • Вся работа с остальным продуктом была направлена через регламентированные интерфейсы.
  • В отделе был введен жесткий код-стандарт.
  • Все задачи начали проходить обязательное код-ревью.
  • Все изменения от других отделов обязательно контролировались и ревьюились.

Апатичным программистам это не сильно понравилось. Некоторые задачи заворачивались по два-три раза.
Некоторых пришлось уволить, (к счастью, у меня были такие полномочия), и набрать новых. Рефакторинг старого болота длился около года, иногда постепенно, иногда полным переписыванием части функционала с нуля (очень хорошо подумайте, прежде чем делать это!). В результате получился архитектурно стройный модуль, с четким, понятным интерфейсом, и понятной реализацией. Уровень программирования в отделе вырос, люди научились не делать грубых ошибок.

Но не все так сказочно.


На уровне отдела данный подход сработал замечательно. К сожалению, другие отделы продолжили работать по старой схеме. «Чудачества» по поводу ревью их изменений в нашем коде они терпели, но сами они предпочли работать по старинке. Поиск багов в их коде очень сильно расхолаживал и каждый срыв майлстоуна теперь уже воспринимался не как обыденность, а «мы все сделали, а из-за них опять фейл». В общем, через пару лет, я сменил работу, так и не сумев насадить культуру во всей компании, что грустно. Но тем не менее надеюсь, что мой опыт поможет другим выживать в подобных компаниях и даже менять их к лучшему :)

UPD: статья про эксперименты с «Теорией Разбитого Окна»

UPD 2: Иллюстрация от cruel_clown и Liksys
Tags:
Hubs:
+116
Comments55

Articles