Warning: preg_replace(): Compilation failed: invalid range in character class at offset 14 in /home/httpd/vhosts/moiregion.com/httpdocs/components/com_k2/views/item/view.html.php on line 212

Warning: preg_replace(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/moiregion.com/httpdocs/components/com_k2/views/item/view.html.php on line 213

Warning: preg_replace(): Compilation failed: invalid range in character class at offset 14 in /home/httpd/vhosts/moiregion.com/httpdocs/components/com_k2/views/item/view.html.php on line 212

Warning: preg_replace(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/moiregion.com/httpdocs/components/com_k2/views/item/view.html.php on line 213

Девятый уровень (Рассказ)

Время на чтение: менее минуты Автор: Понедельник, 14 января 2019 14:38
Оцените материал
(1 Голосовать)

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

Он вспомнил, как в студенческие годы с двумя приятелями провёл три дня на озере, сознательно оторвавшись от цивилизации. Первый день прошёл хорошо, но затем они испытали такой информационный голод, что стали читать этикетки с консервных банок и спичечных коробков. И теперь, вместо того, чтобы освободить голову и подготовить её к ежедневной «мясорубке», Рассел сосредоточился на мониторе – там чередовались отчёты о погоде, фондовой бирже и дорожных новостях.

В своём кубикле Рассел проверил ночные работы, ответил на электронные письма, накопившиеся с прошлой ночи – и вернулся к проблеме, с которой он столкнулся вчера.

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

– Это займ номер 3595423. Над ним работал Берт Мюллер из филиала в Луизиане. Он должен был отправить займ на вторую подпись, потому что сумма была выше уровня его полномочий. Берт подал запрос Рику Хатчинсону. Но Рику пришлось отправить его ещё выше…  

– Подождите. Зачем Рику отправлять его выше? Разве не он – старший андеррайтер? У него же пятый уровень?

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

– Да, но это был займ на пятьсот шестьдесят пять тысяч, поэтому требовалась подпись исполнительного вице-президента уровня 7.

– И что?

– А то, что Рик попытался отправить его на седьмой уровень, но список сотрудников на этом уровне был пуст.

– Понял.

– Это нужно срочно!

– Да-да, я понял. Дай мне пять минут на раскачку, и я этим займусь.

Но вчера он был слишком измучен к концу дня – будто кто-то высосал из его черепа всё серое вещество.

Теперь же Рассел чувствовал себя свежим, бодрым – и готов был сразиться с проблемой. С одной стороны, он боялся предстоящей борьбы, потому что знал – ему придется копнуть глубоко, и готовил себя к огромному умственному усилию. Но в то же время, Рассел этой борьбы жаждал – ибо знал, что если полностью сконцентрируется и окунётся в задачу, то будет вознаграждён полным забвением настоящего момента.

Программист любил эти моменты забытья. Задача захватывала его так глубоко, что он терял осознание того, кем был: живым организмом где-то в пространственно-временном континууме, информационной единицей, отслеживаемой номерами социального страхования, банковского счёта, кредитной карты, ID сотрудника фирмы, кредитным рейтингом, суммой денег на его банковском счету, суммой зарплаты, количеством иждивенцев… Но главное – такие моменты позволяли забыть, что несмотря на все усилия, жизнь Рассела не представляла собой ничего особенного, и он не мог подняться выше обыкновенной статистической единицы, даже в своих собственных глазах.

***

Запустив программу, Рассел начал отслеживать её выполнение, наблюдая за переходами от оператора к оператору, периодически проверяя внутренние значения.  

Программист может остановить или затормозить выполнение программы и проверить внутренние значения переменных как показано на картинке внизу. Таким образом ищут ошибку в алгоритме программы.

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

«Секунду... а кого я должен увидеть? Рэя Меркина. Он – глава Андеррайтинга. Но разве он не ушёл из компании?»

Aндеррайтинг - это процедура проверки кредитором потенциального клиента.

– Эй, Паола… – Рассел перехватил её, когда девушка возвращалась в свой кубикл. – А разве Рэй Меркин не ушёл из компании?

– Ушёл.

– И ты деактивировала его в базе данных?

– Ну да.

– Если так, то с какой стати он должен показаться в результатах запроса?

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

– А кто должен показаться на восьмом?

– Джефф Спинакер. Он – Главный Кредитного Отдела. Почему же он там не показался?

– Мне самому интересно.

«М-м-м-м… да» – подумал Рассел, вернувшись к программе и проверив код. Как ни странно, до шестого уровня программа переходила уровнем выше, если на текущем было пусто. Но тогда... Рассел просто не мог понять, почему алгоритм не перепрыгивает на восьмой уровень. Это не имело смысла.

Он проверил, существует ли восьмой уровень в таблице. Увидел результаты – и сразу понял, в чём проблема. Запрос показал не только имя Джеффа Спинакера, но и его самого, Паолу, Эндрю, ещё одного программиста с этого проекта. Все были там, на восьмом уровне, вместе с Главa Кредитного Отдела. Программисты и аналитики нуждались в доступе высокого уровня, чтобы иметь возможность свободно перемещаться в рамках программы, но они не должны были иметь право одобрять кредиты на пятьсот шестьдесят пять тысяч долларов.
Если бы он в своё время не ограничивал логику на седьмом уровне, то каждый программист, участвующий в проекте, в конечном итоге появился бы на восьмом.

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

Храни́мая процеду́ра — объект базы данных, представляющий собой набор SQL-инструкций, который компилируется один раз и хранится на сервере как внизу на картинке.

Перерыв. Лучшие идеи всегда приходили к нему за чашкой кофе. Рассел откатился в кресле назад и взглянул на Эндрю, уставившегося в монитор – его мысли, очевидно, были где-то в брюхе программы.

– Жахнем по кофейку?
***

В буфете над кофеваркой были наклеены два воззвания:

Эндрю взглянул на них и вздохнул.

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

Рассел ухмыльнулся – просто чтобы показать своё участие – но его лицо сразу вернулось к типичному ворчливому выражению «Не беспокой меня – разве не видишь, я занят!»
Эндрю посмотрел на него и усмехнулся.

– Почему мне кажется, что ты вот-вот родишь идею?

– Идею? Да нет. Просто предвкушаю неприятную встречу – нужно поговорить с Дэниз.

– Сочувствую.

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

– Не то чтобы она, так сказать, «редиска», – заметил Рассел, отвечая совместной подспудной мысли. – Только...

– Не плохая, просто туповатая.

Они в унисон покачали головами.

– Это, разумеется, не её вина, – Рассел рассеянно вытер кофе, разлитый кем-то на столе.

– Нет, не её, – согласился Эндрю. – Такой уж родилась.

– Это всё дурацкое Сарбон-Оксли.

– Что за Сарбон-Оксли такое? – спросила только что вошедшая Пэгги Меркулес из бухгалтерии, наливая себе кружку.  
– Это два сенатора – старые пердуны. Они написали меморандум, названный их именами.

– А как это относится к нам?

– Предписывает разделение полномочий в IT-отделах. Одна группа создаёт софт, а другая должна его поддерживать. Это, якобы, усилит безопасность.

– Что же тут плохого? По-моему, вполне рационально.

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

– Но почему же люди, которые поддерживают производственную среду, плохо в ней разбираются?  

– Теоретически, они должны. Но на IT-отделы выделяют маленький бюджет. Фирма может содержать только полдюжины людей, которые знают, что делают. Остальные – просто малооплачиваемые клерки.

– И что же теперь делать?

– Бог знает. Недавно приятель говорил мне, что многие маленькие фирмы закрывают свои IT-отделы и отдают эти функции на аутсортинг в Индию.

– Да, невесело. Ну что ж ребята, мне нужно бежать. Приятного вам дня! – Пегги махнула ручкой и упорхнула в коридор.

Рассел и Эндрю проводили её глазами, посмотрели друг на друга и одновременно покачали головами.
«Бухгалтерия. Разве они могут понять?»


– Я просто пытаюсь вас понять. Вы хотите добавить ещё один уровень доступа, который будет выше уровня доступа президента компании? – блёклые глаза Дэниз смотрели на Рассела сквозь толстые стёкла очков и как будто знали, что он виновен. Только она пока не знала, как это доказать. – Я никогда о таком не слышала. Почему нельзя сделать это обычным путём?

– Потому что возникла проблема в производственной среде. Пожалуйста, Дэниз, не нужно делать из мухи слона. Всё, что мне нужно сделать – добавить одну запись в таблице и поменять одну линию в хранимой процедуре.

– Но вы хотите сделать это в производственной среде? А почему не сделать в тестовой?

– Ну разумеется, мы сделаем это в тестовой. Но, Дэниз, займ там не может быть одобрен. А одобрить нужно сегодня. Почему это так сложно понять? Это должно быть сделано в производственной среде.

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

– Что вы такое говорите? Вы что, специалист в создании компьютерных систем? Система – это коллективный проект! Вы же знаете – не я решаю, сколько уровней доступа должна иметь программа! Мне приказали сделать восемь – и я сделал восемь.

– Тогда зачем вам сейчас понадобился девятый?

Рассел громко выдохнул, продумывая, как сложно будет объяснить это Дэниз… И сказал только полуфилософскую фразу:

– Потому что никогда не дают времени, чтобы сделать работу до конца правильно.  

– Вот что я вам скажу, – Дэниз была непреклонна. – Я не знаю, что вам теперь делать. Да и к слову – мне это безразлично. Говорите, я не даю вам работать? Вы можете говорить это сколько угодно и кому угодно. Но я знаю, что МОЮ работу я делаю!

Рассел отвёл голову, стараясь успокоиться – он был готов придушить Дэниз.
«Можно, конечно, это сделать… – успокаивал он себя. – Но так я не решу проблему».
Теперь глаза Дэниз глядели так, будто вина Рассела была уже доказана, а присяжные только что вернулись в зал суда с обвинительным вердиктом по делу о преднамеренном убийстве.  

– Идите и тестируйте! Когда всё будет готово – я буду рада подписать ваши бумажки. И не закатывайте на меня глаза! Я вам сказала, что просто выполняю свой долг.


Рассел, не мигая, смотрел в монитор.  

«Вот тупая! – думал он. – Тупой Сарбон-Оксли! «Защити производство от разработчиков»! Да если б я захотел, я бы проник в производственную только так! – он щёлкнул пальцами. – Всё, что нужно – это альфанумерический генератор паролей, который попытается открыть базу данных от имени системного администратора. Поставить это в цикл – и сохранить пароль, который сработает. Как нефиг делать! Нужно мне это её разрешение, как собаке пятая нога!»
***

У Рассела ушло примерно полчаса, чтобы закончить все изменения. Программа теперь работала с ними. Он повернулся к своему второму компьютеру – и теперь документировал проблему для Дэниз. Но периодически поворачивался к первому компьютеру – проверить, найден ли пароль администратора?
Программе понадобился час и сорок минут, чтобы взломать пароль. Рассел усмехнулся. 

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

«Слава богу!»

– Эй, Паола! – уже расслабившись, Рассел прокатился в кресле к её кубиклу. – Теперь у нас всё нормально с займом номер 3595423. Посмотри!
Паола быстро протестировала.  

– Классно! Я сейчас позвоню Рику! Как ты это сделал?

– Не спрашивай! – Рассел прикрыл глаза и провёл рукой по лицу. – Лучше не спрашивай...

 


Прошёл час. Они продолжали говорить о проекте, когда Паоле позвонили. – Это Джефф Спинакер! – шепнула Паола Расселу, прикрывая трубку рукой. – Да, Джефф? Да, конечно! Буду у вас через пять минут.

– А ему чего надо? – Рассел вопросительно расширил глаза, наклонился вперед и развёл руки.

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

– Какая ирония!

– Что? – Паола полуобернулась, уже уходя. – Да ничего... Всё вместе. Символично это, и в то же время – жизненно. Сидящие на высшем уровне доступа не знают, какую кнопку нажимать.

– Кого ты имеешь в виду – Джеффа или Сарбон-Оксли?

– Все они хороши!


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

– Ах ты, чёрт! – выйдя, Рассел осознал, что это не его этаж. Двери закрывались, но женщина услышала его реплику – и успела нажать кнопку «Открыть».

– Спасибо, – сказал Рассел, смущённо улыбнувшись. – Извините.

– Ничего, – улыбнулась женщина в ответ.

– Кому не случалось выйти не на том этаже?

– Да уж. Не тот этаж… – погружённый в свои мысли, Рассел добавил уже себе под нос – И не тот уровень доступа.

 

2 комментарии

TOP-10

Рецензия на мультфильм "Маугли дикой планеты" (2019)

Приветствую вас, уважаемые читатели! В этот раз хочу представить вам…

Военные записки. Глава девятая.

Безлунной и холодной осенней ночью штурмовые группы противника скрытно проникли…

Рецензия на сериал "Орвилл" (2017-...)

Приветствую вас, уважаемые читатели! Я крайне редко пишу рецензии или…

Военные записки. Глава восьмая.

Среди белого дня Бамбус лежал на кровати в одежде и…

Военные записки. Глава седьмая.

По идее, ребята вне расположения оставались-бы без пропитания, голодными, а…

Прогулка

Закончились последние тёплые дни этой осени - вчера и сегодня…

Отзыв о сериале "The O.A."

Большинство сериалов я посматриваю вполглаза, пока готовлю ужин, режу картошечку,…

Военные записки. Глава шестая.

В силу военной бюрократии Бамбус был обязан доложиться о прибытии…