January 3, 2016
Взято отсюда. Это охуительная иллюстрация пределов сложности систем, за которыми начинаются проблемы из-за врожденных ограничений человеческого мозга. Очень рекомендую к прочтению.
------------------
Обсуждали с коллегами, что такое плохо комментированный код, ну там были истории про комментарии на румынском и т.д. Самая прикольная история была про большую компанию, которая купила другую компанию со всеми их наработками. Когда стали разбираться в коде новой компании, то выяснилось, что большая часть написана китайцами, а добил их комментарий перед злобной реализацией некого алгоритма на несколько страниц: «описание алгоритма смотри в тетрадке у Чуня». Где тот Чунь уже было неясно :) (Цитата с сайта bash.org.ru)
Корпоративная память бывает двух видов: люди и документация. Люди помнят, как вещи работают, и знают, почему. Иногда они записывают эту информацию куда-нибудь и хранят свои записи где-нибудь. Это называется «документация». Корпоративная амнезия действует точно так же: люди уходят, и документация исчезает, гниёт или просто забывается.
Я провёл несколько десятилетий, работая в большой нефтехимической компании. В начале 1980-х мы спроектировали и построили завод, который переделывает одни углеводороды в другие углеводороды. За следующие 30 лет корпоративная память об этом заводе ослабла. Да, завод всё ещё работает и приносит фирме деньги; техобслуживание производится, и высокомудрые специалисты знают, что им надо подёргать и куда пнуть, чтобы завод продолжил работать.
Но компания абсолютно забыла, как этот завод работает.
Это произошло по вине нескольких факторов:
• Спад в нефтехимической промышленности в 1980-х и 1990-х заставил нас прекратить принимать на работу новых людей. В конце 1990-х, в нашей группе работали ребята в возрасте младше 35 или старше 55 — с очень редкими исключениями.
• Мы потихоньку перешли на проектирование с помощью компьютерных систем.
• Из-за корпоративных реорганизаций нам пришлось физически переезжать всем офисом с места на место.
• Корпоративное слияние несколькими годами позже полностью растворило нашу фирму в более крупной, вызвав глобальную перестройку отделов и перетасовку кадров.
В начале 2000-х я и несколько моих коллег вышли на пенсию.
В конце 2000-х компания вспомнила о заводе и подумала, что было бы неплохо сделать с ним что-нибудь. Скажем, увеличить производство. К примеру, можно найти узкое место в производственном процессе и улучшить его, — технология-то эти 30 лет не стояла на месте, — и, может быть, пристроить ещё один цех.
И тут компания со всего маху впечатывается в кирпичную стену. Как этот завод был построен? Почему он был построен именно так, а не иначе? Как именно он работает? Для чего нужен чан А, зачем цеха Б и В соединены трубопроводом, почему трубопровод имеет диаметр именно Г, а не Д?
Корпоративная амнезия в действии. Гигантские машины, построенные инопланетянами с помощью их инопланетной технологии, чавкают, как заведённые, выдавая на-гора груды полимеров. Компания примерно представляет себе, как обслуживать эти машины, но понятия не имеет, что за удивительное волшебство творится внутри, и ни у кого нет ни малейшего представления о том, как они создавались. В общем, народ даже не уверен, что именно надо искать, и не знает, с какой стороны следует распутывать этот клубок.
Отыскиваются ребята, которые во время строительства этого завода уже работали в фирме. Теперь они занимают высокие должности и сидят в отдельных, кондиционированных кабинетах. Им дают задание найти документацию по означенному заводу. Это уже не корпоративная память, это больше похоже на индустриальную археологию. Никто не знает, какая документация по этому заводу существует, существует ли она вообще, и если да, то в каком виде она хранится, в каких форматах, что она в себя включает и где она лежит физически. Завод проектировался проектной группой, которой больше нет, в компании, которая с тех пор была поглощена, в офисе, который был закрыт, используя методы до-компьютерной эпохи, которые больше не применяются.
Ребята вспоминают детство с обязательным копошением в грязи, закатывают рукава дорогих пиджаков и принимаются за работу.
Первый шаг поисков очевиден: нужно узнать, как называется завод, о котором идёт речь. Оказывается, что рабочие называют место своей работы названием, производным от названия города, в котором он расположен, — и это единственный логичный момент во всей истории. Официально завод называется совсем иначе. Более того, когда его проектировали, у него было другое официальное название, а фирма, взявшая подряд на его строительство, обозвала его по-своему, но тоже вполне официально. В документах свободно и вперемешку используются все четыре названия.
В 1998 году, в рамках программы по улучшению документооборота, заводу был присвоен уникальный идентификационный номер. Этим номером должны были помечаться все документы, касающиеся завода. В 2001 году, в рамках перехода на электронный документооборот, заводу был присвоен ещё один уникальный идентификационный номер, но уже другой. Неизвестно, какая именно система документооборота применялась в момент создания каждого отдельного документа; вдобавок, в документах то тут, то там упоминаются ссылки на ещё какие-то системы документооборота, о которых вообще нет никаких сведений. Более того, исходя из документов, невозможно сказать, является ли идентификатор, упомянутый в документе, идентификатором этого завода согласно инструкциям 1998 года, или идентификатором какого-то другого завода согласно инструкциям 2001 года — и наоборот.
В документах, использующих идентификатор 1998 года, постоянно мелькает указание на какой-то архив. Бумажный. Проблема в том, что, судя по адресу, он был расположен в здании, снесённом задолго до 1998 года. Это в какой-то степени объясняет, почему единственные документы, хранящиеся в цифровом виде, касаются техподдержки завода, а не его проектирования и разработки.
Методом повального телефонного обзванивания удалось найти древний сохранённый бэкап сервера электронной почты. Оттуда удалось выгрести какое-то количество электронных писем от людей из отдела разработки. В подписях этих электронных писем сохранился физический адрес. Там удалось найти информацию о библиотеке отдела разработки — бумажной, бумажной библиотеке! — которая, хвала богам, не пострадала во время всех перетасовок, а просто потерялась. Эту библиотеку нашли. В ней обнаружилось сколько-то документации о производстве полимеров, и даже копии некоторых инженерных чертежей завода, сделанных ради удобства отдела разработки. Огромные листы синей кальки и гигантские, пыльные, траченные плесенью скоросшиватели с выцветшими записями. На записях и кальках стоят печати, удостоверяющие, что с этих документов была снята цифровая копия; никто не знает, где эта цифровая копия сейчас.
Ребята из отдельных кабинетов притаскивают груду расползающихся скоросшивателей, указывают на них инженерам и говорят: «Фас!» Инженеры пытаются найти «бутылочное горлышко». Получается плохо. Во-первых, документация далеко не полная, и документы сохранились не целиком, а во-вторых, она словно написана китайскими иероглифами. То есть несколько непонятна. Менеджер шутит о необходимости ввести в программу обучения курс «Инженерная археология», где студентов будут учить понимать технологический процесс, исходя из хреново сохранившихся документов тридцатилетней давности.
Инженеры не отчаиваются. Они находят древние учебники и, фактически, учатся заново, становясь инженерами образца 1980 года. Примерно так же действуют извращенцы, развлекающиеся электроникой с радиолампами: поскольку никто не возьмётся чинить такое убожество, им приходится учиться самостоятельно.
Некоторые из методик и форм записи привычны, некоторые давно устарели. Даже там, где официально ничего не изменилось, всё равно изменилось многое, потому что изменился сам критерий того, что необходимо задокументировать, а что можно не записывать, потому что каждый образованный человек будет это знать.
Лирическое отступление:
В Древней Греции любой мальчишка знал названия и умел найти на небе примерно 300 самых ярких звёзд. В путевых заметках тех времён направление указывалось по звёздам, но никто не оставлял записей о том, как можно найти ту или иную звезду: предполагалось, что раз уж человек умеет читать, то сотни четыре-пять звёзд он гарантированно знает. Названия звёзд с тех пор изменились…
Было бы неплохо, чтобы эти инженеры в конце концов написали большую красивую книгу под названием «Что этот проклятый завод делает и как он работает». Такие книги нередко пишутся в наши дни, но не инженерами, а археологами.
В какой-то момент один из менеджеров этой компании вышел на моего бывшего коллегу, который поддерживал со мной приятельские отношения. Это позволило компании обратиться к нам с предложением: не будем ли мы так любезны потратить немного нашего времени, чтобы проконсультировать компанию об этом чёртовом заводе? За адекватную плату, разумеется. «Адекватная плата» была в несколько раз выше моей прошлой зарплаты, а работа казалась интересной, поэтому я согласился.
Таким образом, я оказался нанятым компанией, чтобы объяснить ей, как её завод работает.
Я напрягся и припомнил некоторые детали тридцатилетней давности. Часть инженерных практик, применённых при проектировании этого завода, будь он неладен, я же сам и разработал. Более того, я имел представление о том, что является важным, а что нет, и как детали стыкуются друг с другом.
Примерно настолько же важным оказалось то, что у меня было немного документации. Нелегально.
Когда я ещё работал на фирму, нам приходилось часто переезжать из офиса в офис, и документы терялись. Иногда не было другого выбора, кроме как сидеть и ждать целыми днями, пока кто-нибудь с доступом пришлёт нужную бумажку, а для этого надо было ещё отследить нужную библиотеку и нужного человека. Параноики, заведующие службой безопасности компании, разработали драконовские правила доступа к секретной информации, то есть вообще ко всему, касающемуся полимеров, и это зверски осложнило жизнь при посещении офисов подрядчиков.
Поэтому мы разработали собственную практику под названием «не спрашивай, и нам не придётся врать». Мы делали частные копии документов и таскали их с собой. Инженеры вообще ненавидят сидеть и маяться бездельем, а наличие документации позволяло нам быстро приступить к работе. Это также позволяло нам сдавать проекты во-время, вместо того, чтобы объяснять, что мы не могли работать, потому что ждали факса с нужной информацией.
Моей задачей теперь было тайно вернуть документы фирме. Я был бы рад просто прийти в офис и отдать их клерку, но поступить так было нельзя. Эти документы де-юре были у компании, и даже в электронном виде, а у меня их де-юре не было и быть не могло. На самом деле, разумеется, всё было наоборот. Но компания просто не могла принять свои документы, которые у неё есть, от человека, у которого их нет.
Вместо этого, мы контрабандно пронесли их на территорию и тайно подбросили документы в корпоративный архив. В бумажном виде. Во время следующей инвентаризации контролёр, может быть, обнаружит документы без идентификационных номеров, внесёт их в базу документов и озаботится снятием электронной копии. Я очень надеюсь, что это в самом деле будет именно так, потому что вряд ли проживу ещё 30 лет, чтобы контрабандой пронести их в компанию снова.
А, ещё одна деталь. Я же нанятый внешний консультант-контрактник, помните? Мне по статусу не положено знать корпоративные секреты. Служба безопасности должна знать о движении секретной информации и предотвращать её попадание ко всяким пришлым. Проблема в том, что у них нет ни малейшего представления о секретах, а у меня есть. Более того, я их изобрёл, и патенты были выданы на моё имя. Тем не менее, мне нужно очень тайно и секретно пронести эти данные в фирму, чтобы служба безопасности о них узнала и смогла доблестно предотвратить мой доступ к этим тайнам.
Мы часто слышим о промышленном шпионаже. Я был бы рад почитать исследования явления обратного промышленного шпионажа, — когда компании забывают собственные секреты, и работники должны тайно, нелегально вернуть их. Я уверен, что это происходит значительно чаще, чем вы думаете.
Я не знаю, в чём заключается мораль истории.
Может быть, лучшая организация документооборота решила бы часть этих проблем. С другой стороны, именно попытки улучшить организацию документооборота и послужили причиной части этих проблем, так что надо быть внимательным. Было бы здорово, если бы сохранились библиотеки отделов. Мы решили задачу только потому, что сумели найти одну из них.
С сохранением знаний о технике и о делении на важное и неважное ещё хуже. Видимо, лучшим способом будет держать в фирме людей разных возрастов, без особых возрастных разрывов, чтобы отделы не оказались обезглавленными, когда старшее поколение уйдёт на пенсию.
Но, возможно, инженерная археология всегда будет существовать. Вон, в Нью-Йорке собираются перестраивать пригороды. А это уходящие за горизонт ряды заводов, построенных кроманьонцами, оставившими после себя только обрывки карт и диаграмм.
Тэги: Jan2016 Общество Полезные сведенья
Комментировать:
Архив:
Jul2024 Jun2024 May2024 Apr2024 Mar2024 Feb2024 Jan2024 Dec2023 Nov2023 Oct2023 Sep2023 Aug2023 Jul2023 Jun2023 May2023 Apr2023 Mar2023 Feb2023 Jan2023 Dec2022 Nov2022 Oct2022 Sep2022 Aug2022 Jul2022 Jun2022 May2022 Apr2022 Mar2022 Feb2022 Jan2022 Dec2021 Nov2021 Oct2021 Sep2021 Aug2021 Jul2021 Jun2021 May2021 Apr2021 Mar2021 Feb2021 Jan2021 Dec2020 Nov2020 Oct2020 Sep2020 Aug2020 Jul2020 Jun2020 May2020 Apr2020 Mar2020 Feb2020 Jan2020 Dec2019 Nov2019 Oct2019 Sep2019 Aug2019 Jul2019 Jun2019 May2019 Apr2019 Mar2019 Feb2019 Jan2019 Dec2018 Nov2018 Oct2018 Sep2018 Aug2018 Jul2018 Jun2018 May2018 Apr2018 Mar2018 Feb2018 Jan2018 Dec2017 Nov2017 Oct2017 Sep2017 Aug2017 Jul2017 Jun2017 May2017 Apr2017 Mar2017 Feb2017 Jan2017 Dec2016 Nov2016 Oct2016 Sep2016 Aug2016 Jul2016 Jun2016 May2016 Apr2016 Mar2016 Feb2016 Jan2016 Dec2015 Nov2015 Oct2015 Sep2015 Aug2015 Jul2015 Jun2015 May2015 Apr2015 Mar2015 Feb2015 Jan2015 Dec2014 Nov2014 Oct2014 Sep2014 Aug2014 Jul2014 Jun2014 May2014 Apr2014 Mar2014 Feb2014 Jan2014 Dec2013 Nov2013 Oct2013 Sep2013 Aug2013 Jul2013 Jun2013 May2013 Apr2013 Mar2013 Feb2013 Jan2013 Dec2012 Nov2012 Oct2012 Sep2012 Aug2012 Jul2012 Jun2012 May2012 Apr2012 Mar2012 Feb2012 Jan2012 Dec2011 Nov2011 Oct2011 Sep2011 Aug2011 Jul2011 Jun2011 May2011 Apr2011 Mar2011 Feb2011 Jan2011 Dec2010 Nov2010 Oct2010 Sep2010 Aug2010 Jul2010 Jun2010 May2010 Apr2010 Mar2010 Feb2010 Jan2010 Dec2009 Nov2009 Oct2009 Sep2009 Aug2009 Jul2009 Jun2009 May2009 Apr2009 Mar2009 Feb2009 Jan2009 Dec2008 Nov2008 Oct2008 Sep2008 Aug2008 Jul2008 Jun2008 May2008 Apr2008 Mar2008 Feb2008 Jan2008 Dec2007 Nov2007 Oct2007 Sep2007 Aug2007 Jul2007 Jun2007 May2007 Apr2007 Mar2007 Feb2007 Jan2007 Dec2006 Nov2006 Oct2006 Sep2006 Aug2006 Jul2006 Jun2006 May2006 |
|
| |