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

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

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


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

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


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

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

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


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

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

    UPD 2: Иллюстрация от cruel_clown и Liksys
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 55
    • НЛО прилетело и опубликовало эту надпись здесь
      • +7
        Pun intended :)
        • +1
          Учите английский, товарищи :)
          • 0
            Не понимаю надменности и снобизма в Ваших словах, право. Вы написали хорошее, исконно английское выражение, и оно уместно в контексте — отлично! Но зачем позиционировать эти знания как эксклюзивные?
            • +1
              Вы просто не застали вчерашнюю ночь, когда эта фраза огребла минусов, из-за чего и появился второй коментарий.
              • +2
                А, понятно. Не зная истории, появление такого комментария выглядит высокомерностью :) Прошу прощения за резкость.
      • +3
        как раз сейчас занят чем-то очень похожим. посмотрим хватит ли моего энтузиазма :)
        • +2
          Вы бы указали источник (сайт «Элементы»), чтобы заинтересованные могли поближе познакомиться с самим экспериментом.
          • +1
            Указал, правда я о них прочитал в SEED, это и натолкнуло на мысль написать пост.
            • +2
              Теория разбитого окна — это одно, а эксперимент нидерландских учёных (с велосипедами) — это другое.
              elementy.ru/news/430941
          • +1
            пример заставил о много задуматься, спасибо.
            • +1
              Ох, как ученые правы :) Правда жизни, как бы это не было печально.
              • 0
                Терпение товарищи, главное терпение.
                • +2
                  Хорошая история. Жаль, что финал такой. Вроде бы по логике вещей, после того, как Вы наладили дело в своем отделе, вполне логичной могла бы быть очередная кадровая перестановка. Почему она не случилась?
                  • +3
                    Наверно потому, что болото простиралось до самых верхних уровней :(
                    • 0
                      Классная теория, а главное — ёмкое и краткое название. А пробовали донести эту идею до этих самых верхних уровней?
                      • +1
                        Не только я, но и внешние аудиторы. Безрезультатно.
                        • 0
                          Если на них действуют книги, то возьмусь порекомендовать «The Tipping Point» by Malcolm Gladwell. В ней в том числе рассматривается и Broken Window Theory. Ну и книга замечательна сама по себе :)
                      • 0
                        Насколько я понял ваш рассказ, соблюдаемость сроков не увеличилась.
                        А верхним уровням плевать на качество кода, для них другие показатели важнее.
                        • +1
                          Соблюдаемость сроков по всему проекту, к сожалению нет. У меня не было рычагов воздействия на другие отделы.
                          • 0
                            А не было каких-нибудь показателей сроков по отделу?
                            Например, по отдельному модулю были сроки?
                            • +1
                              Были, и как только тех процесс наладился, мы начали их выдерживать.
                              Но на верху интересуются майлстоунами по всему проекту, а они факапились регулярно.
                    • 0
                      Да уж. Раба гниет с головы. Знакомая ситуация.
                      • 0
                        Интересно, это контора — не одна из кнопок Рунета?
                        • НЛО прилетело и опубликовало эту надпись здесь
                          • НЛО прилетело и опубликовало эту надпись здесь
                            • НЛО прилетело и опубликовало эту надпись здесь
                              • НЛО прилетело и опубликовало эту надпись здесь
                                • НЛО прилетело и опубликовало эту надпись здесь
                                • +1
                                  Если бы не подпись, прикрепил бы иллюстрацией :)
                                  • НЛО прилетело и опубликовало эту надпись здесь
                                    • НЛО прилетело и опубликовало эту надпись здесь
                                      • НЛО прилетело и опубликовало эту надпись здесь
                                        • +1
                                          fixed
                                          • НЛО прилетело и опубликовало эту надпись здесь
                                  • 0
                                    Как только прочел заголовок, сразу вспомнилась замечательная книга — Программист прагматик. Там есть глава посвященная этой теории. Так что всем кому идея понравилась советую найти книгу, она — кладезь подобных мудростей :)
                                    • 0
                                      Отличная заметка, задумался, теперь буду стараться избавиться от хлама не только в доме но и в голове) Хотя и раньше это вроде было очевидно, но сейчас особо ясно)
                                      P.S. Только иллюстрация наверно все же от юзера cruel_clown ;)
                                      • +1
                                        Уже поправил, хотел быстрее, но хабр 502 часто выдает
                                        • НЛО прилетело и опубликовало эту надпись здесь
                                      • 0
                                        К сожалению как раз так и приходится работать.
                                        Удовольствия от работы 0.
                                        Что делать пока непонятно… полномочия не те. =(
                                        • 0
                                          Не стоит сдаваться. Очень, ОЧЕНЬ многое можно сделать и без полномочий. А потом в хорошей компании и полномочия появятся. А если не появятся полномочия, то появится опыт и уверенность. А это уже хороший шаг в саморазвитии. Вот такой мотивирующий комментарий получился =)
                                        • 0
                                          Думаю, это относится и к самодисциплине, а не только к работе с людьми.
                                          Спасибо, что просветили.
                                          • +3
                                            После нескольких абзацев вспомнил про слова сокурсника, на день после городского субботника «Мля, иду по городу — всё так чисто, окурок бросить некуда!»
                                            • 0
                                              Как раз объясняет правила в магазинах, это про обсуждение корзинок в супермаркете в соседней ветке:)
                                              • 0
                                                Каждый раз начиная новый проект, хочется продумать архитектуру грамотно, спроектировать классы… Приходит начальство и говорит — хватит ерундой заниматься, где результаты? Какое ООП??? Не заморачивай себе голову… и приходится писать код как они хотят… чтобы скорее им на стол «готовый» продукт.
                                                • +11
                                                  Исследование с разбитыми окнами изначально было затеяно, чтобы исследовать вопрос преступности в неблагополучных районах одного из штатов (не помню, какого) США. Вкратце (те, кто заинтересуется, может сходить в гугл для более подробной инфы) — автомобиль с разбитым окном поставили в неблагополучном районе (читай негритянском) и разбили ему одно окно. Второе авто поставили в благополучном районе и не разбиавли ему окна. Через некоторое время первое авто разнесли вхлам. Оставили только кузов (буквально). В благополучном районе авто стояло целым, нетронутым.

                                                  На этом эксперимент не закончился. Автомобилю в благополучном районе тоже разбили окно. Через некоторое время его постигла та же судьба, что и его собрата.

                                                  Концепт также описывается в книге «программист прагматик» с точки зрения отношения к багам и качеству кода.

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

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

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

                                                  PS: «разбитые окна» отрицают поговорку «чисто там, где не мусорят», так как чисто там, где вовремя убирают.
                                                  • 0
                                                    Поправка к моему комментарию — первая машина (в неблагополучном районе которая) была просто без номеров. А вторую (в благополучном) экспериментатор сам ударил кувалдой, впоследствии чего также начался дестрой автомобиля. (не знаю, почему я ошибся; возможно или давно читал информацию по вопросу, или читал некорректный перевод на русский).

                                                    Больше информации по вопросу — game-torrent.info/forum/viewtopic.php?t=17523
                                                    • 0
                                                      Напоминает фильм Das Experiment, снятый по мотивам настоящего эксперимента.
                                                    • +2
                                                      Так в чём проблема? Под знаком «стоянка запрещена» надо поставить раскуроченый кузов от автомобиля. И никто рядом ставить не будет. Ответ на поверхности.
                                                      • 0
                                                        Спасибо за отличный пост! Очень интересно.

                                                        Я всегда стараюсь деать всё тчательно, потому что переделывать себе дороже, хотя поначалу это кажется не рациональным.
                                                        • 0
                                                          Неужели нельзя было наладить коммуникацию с другими командами, или хотя бы одной? Попытаться устроить всё эффективно во второй команде и т.п.?
                                                          • НЛО прилетело и опубликовало эту надпись здесь
                                                            • 0
                                                              И если мне не изменяет мой склероз, про ТРО я впервые прочитал именно в ней.
                                                            • +1
                                                              Постоянно использую метафору разбитых окон в применении к модульному тестированию — сколько бы вы не внедряли модульные тесты и TDD, стоит вам только пару раз вовремя не исправить сломавшийся тест, как они будут ломаться один за другим, и для команды этот станет нормой…
                                                              • 0
                                                                О! City Quest! :)

                                                                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.