82c9accd6f450624 Любопытные извращения из мира ИТ | В законе | Право пользоваться информацией
Главная / Новости / Любопытные извращения из мира ИТ

Любопытные извращения из мира ИТ

веб-сайт The Daily WTF уже 14 лет собирает курьёзные, одичавшие и/либо грустные истории из мира ИТ. Я перевёл несколько рассказов, показавшихся мне увлекательными. Все имена и наименования компаний изменены.

На работу за 3 000 миль

Правдивая история из личного опыта нашего создателя Snoofle. [Оригинал]

Много 10-ов годов назад оборонный подрядчик DefCon Inc работал на армию США (Соединённые Штаты Америки — государство в Северной Америке) и пробовал получить новейший договор на создание какого-то приложения, используемого в бою. Компания желала показать в своём предложении, что у неё хватит персонала для выполнения этого проекта. Потому она наняла наиболее тыщи различных программистов, управляющих проектов, менеджеров и так дальше. Военные, изучавшие разные коммерческие предложения, узрели кучу новейших служащих, полностью незнакомых с необходимыми действиями, процедурами и требованиями, потому передали договор иной фирме. Подрядчик, со собственной стороны, уволил всю эту тыщу человек.

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


В протяжении 2-ух лет такое повторялось пару раз.

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

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

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

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

Опосля того, как управление назначало этих новейших служащих на проект для убыстрения работы над ним, новейшие сотрудники произнесли «Постойте-ка, в центре этого проекта есть большая дыра!» Управление ответило, что эта часть проекта засекречена, и может изучаться лишь людьми с допуском к скрытой инфы и лишь на предприятии в Калифорнии. Были запрошены и получены надлежащие допуски, опосля что опытнейших служащих выслали на две недельки на предприятие в Калифорнии.

До этого чем соглашаться на поездку, создатели желали выяснить, как они сумеют получать доступ к материалам опосля исследования. Ведь доступ вероятен лишь на месте, в Калифорнии, а все сотрудники живут и работают в Нью-Джерси. Им произнесли, что о подробностях они выяснят в Калифорнии.

Ну хорошо, они все прилетели на западное побережье, заселились в гостиницы и поехали в кабинет.

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

Но, постойте у их же не было способности обсудить это с семьёй! Как отсутствие 90% времени 1-го из родителей воздействует на малышей? Захочут ли они жить в гостиницах и аэропортах в течение 2-ух лет? Какого хрена компания не наняла служащих на месте, в Калифорнии, а занималась сиим в Нью-Джерси?

Оказалось, что так как подрядчик находится в Нью-Джерси, нанимаемый им персонал тоже должен быть зарегистрирован там же. Очевидно, если б о этом сказали до трудоустройства, то большая часть служащих (если не все из их) отказалось бы от работы. Если б они знали, то никто из работников не поднялся бы на борт самолёта и не полетел бы в Калифорнию для ознакомления с проектом.

Можно и не гласить, что остаток рабочего для менеджеры втирали о необходимости жертв ради компании, а создатели задавались вопросцем: «Какого чёрта?» Вечер четверга был занят нескончаемыми звонками домой. Днем пятницы все сотрудники уволились и направились в аэропорт, чтоб возвратиться домой.

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

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

Вариант отказа

[Оригинал]


В 1-ый денек на новейшей работе Себастьян не был особо воодушевлён. Он уже почти все повидал и набрался равнодушия и пессимизма. Эта новенькая работа не обязана была различаться ни одной иной: куча назойливых коллег, плохо обмысленных требований, старенькых кодовых баз, полных спагетти-кода. Но она отлично оплачивалась, а он утомился от собственной старенькой группы, ему надоели одни и те же обычные лица. Потому он внутренне приготовился к слегка новеньким колерам той же офисной политики и муторных заданий.

Он даже особо не расстроился, зайдя в ИТ-отдел за своими учётными данными и услышав жужжание и щёлканье старенькых серверов Packard Bell. Себастьян просто опустил на несколько уровней свою планку требований к рабочему компу, и возвратился в новейший кабинет. Да, его должность предполагала свой кабинет и подобающую оплату. Ради этого он мог смириться со почти всем остальным.

Его логин сработал с первой пробы, что было приятной неожиданностьюю. Он ждал Windows XP; когда загрузилась Vista, он не был уверен, стоит ему ликовать наиболее новейшей ОС, либо ужасаться тому, что это Vista. Завершив получение возможностей админа и урезав UAC, он даже на некое время мог притвориться, что это «семёрка». «Чтоб напугать меня, будет нужно что-то большее», — помыслил он и запустил Outlook.

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

1-ое письмо было приблизительно таковым:

Здрасти, Себастьян, добро пожаловать в нашу совершенно отточенную рабочую среду. В ней всё делается верно. При разработке проектных документов вы будете работать с Bonk-Word (веб-приложение для документирования компании IBM). Не запамятовывайте нередко сохранять работу! При аварийном окончании Bonk-Word для вас нужно будет написать письмо в отдел ИТ для его перезапуска.

Компания составляет проектную документацию. Пишите всё в страдательном залоге, используйте фиолетовый для обозначения заголовком глав и зелёный — для заголовков разделов. Документы раз в день проверяются президентом компании в 9 утра, так что будьте к этому готовы. Ошибки в заголовках станут «чёрной меткой» в вашем личном деле.

Начните с проектирования решения препядствия со шрифтами на Macintosh, которую мы не можем решить четыре года. Завтра к 9 часам утра у вас должен быть готовый проектный документ из 6 страничек. Спасибо.
«6 страничек на завтрашний день?», — забеспокоился Себастьян. «Наверное, я возрадовался эффективности очень рано. Ну, по последней мере, не будет скучновато», — он хрустнул костяшками пальцев, открыл Bonk-Word и начал разбираться с так именуемыми неуввязками со шрифтами.

1-ое, что он узнал — менеджер не шутил о нередком сохранении. К концу денька он на уровне мыслей делал ставки: что упадет первым — Bonk-Word либо сама Vista. Оба они крашились приблизительно через любые полчаса. Но ведение статистики вылетов на листочке почему-либо успокаивало Себастьяна. Оно напоминало ему: в мире что-то ещё работает. Простые математические деяния не впечатляли, но были надёжными. Постоянными. Размеренными.

Может быть, в этом кабинете Себастьян ощущал себя сиротливо. Но он был тихим и отдельным. Пусть неизменные вылеты раздражали, но Себастьян всё-таки двигался вперёд. Он задержался на работе, чтоб изучить различную литературу, посвящённую рендерингу шрифтов, в том числе спецификацию Postscript, сопроводительную литературу с советами по его использованию и информационные центры в World Wide Web, сделанные для коллекционирования мудрости наилучших разумов отрасли в знакомом и комфортном формате вопросцев и ответов. Он обширно обрисовал в документе «создание программки на Python для рендеринга всякого знака». Он издержал две странички на описание того, что можно было поведать в 2-ух словах.

«Если им необходимо 6 страничек, они получат 6 страничек», — задумывался Себастьян.

1-ый денек оказался странноватым, но Себастьян лицезрел, что полностью выдержит это в течение как минимум пары лет. Он окончил работу, вышел из строения (которое подозрительно пахло старенькым кожаным нижним бельём) и медлительно подошёл к собственному «бесплатному месту на парковке» (ещё одно преимущество, оправдывающее эту работу в его очах). Медлительно — поэтому что стоянка была совсем разъедена ржавчиной, и в почти всех местах бетон стопроцентно отвалился, обнажив арматуру пола и колонн.

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

«Я сделал, как просили, и в подходящем объёме. Быстрее всего, это просто формальность, опосля которой я смогу приступить к работе».

Спустя час униженный и измотанный Себастьян возвратился в собственный кабинет. В его ушах всё ещё звенела приобретенная им абсурдная, но беспощадная критика. По словам президента, его заглавия разделов были чуть «зелеными», а не зелёными, как добивалась компания, а заглавия глав — непростительно «красными» заместо ожидаемо фиолетовых. Не считая того, ему недвусмысленно сказали, что отладить шрифты при помощи Python «нереально». Заместо него Себастьяну отдали приказ работать на C++ и применять «волшебные» программные библиотеки компании. Ждя звонка президента, менеджер Себастьяна расхваливал документ, но во время проверки не произнес ни слова, неотрывно глядя на кирпичную стенку за своим столом.

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

«Ну хорошо», — произнес он вслух в пустом кабинете. «Взглянем на эти библиотеки».

1-ое, что он начал находить — это документация. Естественно, что в таковой помешанной на документах компании документация к «расчудесным» библиотекам обязана быть буквально набрана правильным шрифтом с совершенно четким цветом, с правильными заголовками глав и наименованиями разделов. Но документации… не было. Была уйма проектных документов с безупречным зелёным и фиолетовым цветами. Но в их описывалась лишь методология разработки библиотеки и ничего не говорилось о её использовании.

«Я что, схожу с разума?», — задал вопрос себя Себастьян, когда машинка перезагрузилась в 3-ий раз. «Может быть, код самодокументированный…»

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

Невзирая на неизменные фиаско, Себастьян держал удар. Его раз в день вызывали для еще одного раунда словесных запугиваний. Компания за четыре года не могла совладать с данной нам шрифтовой неувязкой; тем не наименее, ничто из предлагаемого им не устраивало президента. Себастьян отказался от своей библиотеки компании, начав решать делему на известном ему Python; в конце концов, если его всё равно будут гнобить, то для чего созодать то, что для тебя молвят? Но что бы он ни использовал: свой тестер на Python, либо тестер Microsoft, либо Apple, либо Adobe — шрифт оставался полным хаосом. 488 неустранимых, непоправимых, не решаемых заплатами конструктивных ошибок.

Президент категорически отрешался признать правду. Он утверждал, что это вина Себастьяна, ведь тот не употребляет прекрасные библиотеки C++.

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

Почему-либо он колебался, что будет скучать по компании.

От такового здравоохранения можно захворать

[Оригинал]

В хоть какой отрасли есть информация, которую нужно переносить меж несопоставимыми системами. Если вы жили жизнью праведника, то эти системы были просто различными приложениями на одной платформе. Но если вы отклонились от благого пути, то эти системы были написаны на различных языках для различных платформ, работающих в различных операционных системах с различным порядком следования байтов. Представьте какое-нибудь Java-приложение в Safari под какой-либо версией Mac OS, которому необходимо обмениваться данными с некий версией .NET под какой-либо версией Windows, которой, в свою очередь, необходимо разговаривать с некий версией COBOL с двоичным кодом EBCIDIC, работающей на каком-нибудь мейнфрейме.

За длительное время до того, как кто-либо мог вообразить схожий ужас, мы работали с SGML, который деградировал эволюционировал в XML, который должен быть элементарным применимым методом задания содержащихся в документе формата и полей с легкодоступным на всех платформах парсером, по этому информацией можно обмениваться, не зная ничего, не считая DTD и/либо схемы для валидации и парсинга.

Не надеясь на наилучшее, для упрощения работы мы написали поверх XML библиотеки обёрток.

К огорчению, они с задачей не совладали.


В отрасли здравоохранения какие-то работающие с сopen-source ребята сделали проект (H)ealthcare (API), либо HAPI, который на самом деле является объектно-ориентированным парсером текстовых сообщений отрасли здравоохранения. К огорчению, они, похоже, мучались от синдрома «не понимаю, когда тормознуть».

Заместо того, чтоб воплотить обобщённый парсер, который просто разбивает строчку с разделителями либо строчку фиксированного формата на перечень из значений текстовых полей, последняя версия реализует 1205 различных парсеров, любой из которых имеет свою высокоуровневую структуру данных. Самые высокоуровневые структуры имеют 10-ки подструктур. Любой парсер имеет один либо несколько способов доступа к любому полю. Поле быть может единственным экземпляром либо перечнем экземпляров, и в этом случае нужно программно определять, какой способ доступа применять.

Это API с примерно 15 тыщами вызовов способов! О чём совершенно задумывались эти создатели?

К примеру, класс: EHC_E15_PAYMENT_REMITTANCE_DETAIL_INFO может иметь от нуля и наиболее product service разделов. Потому я сходу же начинаю мыслить о каком-нибудь массиве либо перечне. Потому заместо чего-то наподобие такового:

EHC_E15_PAYMENT_REMITTANCE_DETAIL_INFO info = …;
List<EHC_E15_PRODUCT_SERVICE_SECTION> prodServices = info.getProductServices();
// итерируем

… нам требуется выполнить что-то из этого:

// Получаем подструктуру
EHC_E15_PAYMENT_REMITTANCE_DETAIL_INFO info = …;

// Получаем из подструктуры интегрированные product-service

// …если мы буквально знаем, что в сообщение он лишь один:
EHC_E15_PRODUCT_SERVICE_SECTION prodSvc = info.getPRODUCT_SERVICE_SECTION();

// …если мы не знаем, сколько их будет:
int n = infos.getPRODUCT_SERVICE_SECTIONReps();
for (int i=0; i<n; i++) {
EHC_E15_PRODUCT_SERVICE_SECTION prodSvc = info.getPRODUCT_SERVICE_SECTION(i);
// используем это
}

// …либо можно просто взять их и выполнить итерацию
List<EHC_E15_PRODUCT_SERVICE_SECTION> allSvcs = info.getPRODUCT_SERVICE_SECTIONAll();
… и необходимо вызвать подходящий способ, по другому рискуешь получить исключение. Но если существует огромное количество методов выполнения одной задачки через API, то возникает огромное количество методов её выполнения в коде при помощи API, что безизбежно приводит к дилеммам.

Можно сказать: «Да хорошо, всё не ТАК уж плохо»; довольно применять то, что для тебя необходимо. Но позже ты осознаёшь, что некие из этих структур данных интегрированы на 10 и наиболее уровней вглубь, у каждой есть 10-ки подструктур и/либо полей, и у всех их несколько способов доступа. Да ещё у всех их реально длинноватые наименования. А позже ты осознаёшь, что создатели HAPI утомились печатать текст и начали применять для всего сокращения с таковыми понятными наименованиями структур данных, как LA1, ILT и PCR.

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

Аноним работал в здравоохранении и занимался поддержкой библиотеки, обёрнутой вокруг HAPI. Ему часто давали задания (на выполнение которых отводилось по несколько недель) по обычному парсингу 1-го доп поля. Потратив массу времени на пережёвывание томов документации по API, он написал общий парсер из 1-го класса в 300 строк с несколькими split, substring, parseDate и parseInt, в качестве подмены всего интерфейса.

Опосля этого добавление новейшего поля сделалось занимать не больше 10 минут.

Источник

Смотрите также

Непонятная любовь

Год: 2018 Страна: Франция Жанр: комедия Перевод: Профессиональный (многоголосный) Качество: BDRip Время: 97 мин. / …

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *