Каталог решений - О блондинках и предметной области

О блондинках и предметной области

О блондинках и предметной области

В наличии

Трагикомедия в трех действиях (зачастую бессмысленных)

Категория:

Описание

Трагикомедия в трёх действиях (зачастую бессмысленных)

 

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

Действующие лица:

Василий – Программист 1С, работник умственного труда.

Александр – Начальник отдела IT

Изольда – Начальник отдела снабжения и логистики.

Мария Петровна – Генеральный директор.

Аристарх Николаевич – Исполнительный директор, он же непосредственный руководитель Александра.

Ашот – программист, когда-то написавший несколько отчетов, по сей день используемые в компании.

Действие 1. Завязка

Четверг. Вечер. Комната совещаний. Четверо (Александр, Василий, Изольда и Мария Петровна) ведут активное обсуждение рабочих вопросов. Дело близится к финалу.

Изольда – Мне срочно нужен отчет, заказанный еще месяц назад отделу IT и до сих пор не сделанный.

Василий – ПО ТЗ сформированному месяц назад все работы примерно тогда и выполнены (в сторону) в том числе и само ТЗ.

Александр – Да, давайте отделять первоначальное ТЗ и последующие требования. Первоначальный заказ выполнен, сейчас же требуется внесение дополнительного функционала.

Мария Петровна – ну что же, Василий, в какой срок управитесь?

Василий: (умножая в уме на два) во вторник утром будет готово.

 

Действие 2. Трагический поворот

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

Утро понедельника. Офис

Василий (с хмурой улыбкой приветствует сослуживцев) – добрый вечер, дорогие мои.

Приложив титанические волевые усилия, наш герой начал работу. Получалось плохо, постоянно отвлекали шумы и посторонние мысли. Зачем-то заходила Изольда и что-то спрашивала, ответил что-то нечленораздельное, вроде сработало – ушла. Мозговая деятельность давалась с трудом, лишь собрав волю в кулак, надев наушники и полностью отключившись от внешнего мира Василию удалось завершить основную часть работы, оставалось самое простое, но слишком хотелось спать.

Утро вторника. Офис

Василий (насвистывая под нос бодрую песенку, заходит в кабинет) – приступим к делу, коллеги.

Разобрав свежую и вчерашнюю почту Василий пошел к Изольде, ибо утро вторника наступило, и нужно было хоть что-то показывать.

Василий (входя в кабинет начальника отдела снабжения) – Доброе утро. Я с двумя новостями, хорошей и плохой. Хорошая – вот отчет, основная задача выполнена, а плохая – остальное даже не начиналось, ибо так сложились звёзды. Но я обязательно сегодня всё сделаю, но чуть позже.

Изольда – Василий, помнится Вы обещали мне, что проверите, правильно ли считается ABC в отчете «Снабжение». Мне нужны формулы – как там считается.

Василий (судорожно пытаясь вспомнить, когда он успел такое пообещать) Хорошо, посмотрю.

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

Василий (в чат Изольде) – выделение ABC-групп в отчете «Снабжение» производится по методу сумм. Реквизит «Способ вывода итогов» не используется (всё выводится по номенклатурным позициям. В новом отчете планирую использовать метод сумм (как наиболее реализуемый и масштабируемый).

Засучив рукава и сделав умное лицо, Василий приступил к работе над отчетом. Но поработать не удалось.

Изольда (в чат Василию) – Формулу напиши мне.

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

Изольда (уточняя) – формулу забитую в отчете.

Василий – Там нет формулы, это методика расчетов, сами расчеты просты, но весьма громоздки. (В сторону) RTFM, черт возьми!

Изольда (не думая сдаваться в надежде получить готовый результат без приложения собственных усилий) – методику расчета тогда!

Василий – [хттп:ФинАнализ.АБЦ.АнализАБЦ_методом_сумм.ру]

Изольда – Что это?

Василий – Это методика расчета. У Ашота реализовано именно так.

Изольда – А ты проверял? Мне нужен факт!

Василий (хватаясь за голову) – Я открываю программный код, смотрю, как считается. Лезу в учебник по экономике. Смотрю как называется этот метод и profit!

Изольда – вот покажи мне, как считается в программе, мне не нужен учебник, мне нужно то, как считается в отчете «Снабжение».

Василий – без проблем. (в сторону) – вот тебе то, что написано в программе. //копирует фрагмент программного кода выполняющий финальные вычисления и отправляет в чат.

 

SELECT

Товары.Группа,

Товары.ПодГруппа,

Товары.Код,

Товары.Артикул,

Товары.Номенклатура,

Товары.РозничнаяЦена,

Товары.ЗакупочнаяЦена,

Товары.Свойство,

Товары.ШтрихКод,

SUM(CASE

WHEN &ПараметрАнализа = «»Прибыль»»

THEN Временная.Прибыль

ELSE Временная.Выручка

END) AS Показатель,

SUM(Временная.ПродажиКоличество) КАК ПродажиКоличество,

MAX(«»»»)AS ABCКласс,

SUM(CASE

WHEN &ПараметрАнализа = «»Прибыль»»

THEN Временная.Прибыль

ELSE Временная.Выручка

END * 100 / Итог.Показатель) AS Процент

FROM

Итог AS Итог,

Товары AS Товары

LEFT JOIN Временная AS Временная

ON Товары.Номенклатура = Временная.Номенклатура

 

GROUP BY

Товары.Номенклатура,

Товары.Код,

Товары.Артикул,

Товары.Группа,

Товары.ПодГруппа,

Товары.РозничнаяЦена,

Товары.ЗакупочнаяЦена,

Товары.Свойство,

Товары.ШтрихКод

 

ORDER BY

Показатель DESC

;

///////////////////////////////////////////////////////////////////

DROP Временная

;

///////////////////////////////////////////////////////////////////

DROP Итог»;

Query. SetParameter («ТекущаяДата»,ТекущаяДата());

Query. SetParameter («ПараметрАнализа»,ПараметрАнализа);

Query. SetParameter («ДатаНачала»,Новый Граница((мДатаОкончания – ГлубинаРасчетаСреднихПродаж * 3600 * 24), BoundaryType. Including));

Query. SetParameter («ДатаОкончания»,Новый Граница(мДатаОкончания, ВидГраницы.Включая));

Query. SetParameter («СписокИсключаемыхПокупателей», ThisObject.ИсключаемыеПокупатели.Выгрузить().ВыгрузитьКолонку(«Контрагент»));

МассивТоваров = ЭтотОбъект.Товары.Выгрузить().ВыгрузитьКолонку(«Номенклатура»);

ПустойСписокТоваров = (МассивТоваров.Количество() = 0);

Query. SetParameter («СписокТоваров», МассивТоваров);

Query. SetParameter («ПустойСписокТоваров», ПустойСписокТоваров);

Query. SetParameter («ОбластьРасчета», ОбластьРасчета);

МассивСкладов = New Array;

FOR EACH СтрокаТЧ FROM ThisObject.Склады DO

IF ValueIsFilled (СтрокаТЧ.Склад) THEN

МассивСкладов.ADD(СтрокаТЧ.Склад.Наименование);

ENDIF;

ENDDO;

ПустойСписокСкладов = (МассивСкладов.Количество() = 0);

Query. SetParameter («СписокСкладов», МассивСкладов);

Query. SetParameter («ПустойСписокСкладов», ПустойСписокСкладов);

МассивПоставщиков = ЭтотОбъект.Поставщики.Выгрузить().ВыгрузитьКолонку(«Контрагент»);

ПустойСписокПоставщиков = (МассивПоставщиков.Количество() = 0);

Query. SetParameter («СписокПоставщиков»,МассивПоставщиков);

Query. SetParameter («ПустойСписокПоставщиков»,ПустойСписокПоставщиков);

Результат = Query. Execute ().Unload ();

ИтогПроцент = 0;

FOR EACH СтрокаТЗ FROM Результат DO

#IF CLIENT THEN

ОбработкаПрерыванияПользователя();

#ENDIF

IF ЗначениеЗаполнено(СтрокаТЗ.Процент) THEN

ИтогПроцент = ИтогПроцент + СтрокаТЗ.Процент;

СтрокаТЗ.Процент = Окр(СтрокаТЗ.Процент, 2);

ELSE

СтрокаТЗ.Процент = 0;

ENDIF;

IF ИтогПроцент < ПроцентAКласса THEN

СтрокаТЗ.ABCКласс = «A»

ELSEIF ИтогПроцент < ПроцентAКласса + ПроцентBКласса THEN

СтрокаТЗ.ABCКласс = «B»

ELSE

СтрокаТЗ.ABCКласс = «C»

ENDIF;

ENDDO;

 

Василий – У него есть ошибки связанные с неполной выборкой товара. Но метод именно сумм.

Изольда – мне нужен ответ по скорости отчетов //речь шла о других отчетах написанных Ашотом.

Василий – Это второй вопрос? По скорости мы уже давали ответ-оптимизация возможна. Методы оптимизации навскидку назывались, но детальной проработки не было.

P.S. Выделение ABC-классов в новом отчете я делаю по методу сумм.

Изольда – Не нужно делать неизвестно как!

Василий – Известно как. Так и делалось. С ошибками (не все данные попадали в статистическую выборку), но делалось по указанной методике.

Изольда – ты тоже с ошибками будешь делать?

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

Василий – Уточняю. Ошибки допущены на этапе сбора данных (т.е. ошибка не методологическая, а техническая).

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

Василий в порыве радостного вдохновения копипастит в текстовый документ подробное с картинками описание (для чайников) методики расчета и отправляет на печать.

Василий (в чат Изольде) — Подготовил наглядное описание методики расчета ABC. Распечатку положил на стол

Изольда – И ты собираешься так делать?

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

Василий (в сторону) – Вот чего она приходила вчера! (к Изольде) – Вчера обраться не удалось, т.к. один из участников (Александр) отсутствовал. Что же касается отчета, то да – я собираюсь так сделать.

Изольда – давай ты пока так делать не будешь, потому что окончательный вариант так, и не принят.

Василий (в сторону) – Ага, нужно переварить три страницы описания с картинками и графиками. (к Изольде) ОК, тогда я могу заняться оперативной работой пока мы не решили окончательно. Потому что я всё откладывал из-за срочности сдачи отчета.

Изольда – У тебя в приоритете скорость работы отчетов. Сделай это!

Василий – У меня в приоритете – чтобы предприятие не остановилась. Если нужно что-то сделать очень срочно, то через Александра, его нет, но на телефон он отвечает.

Изольда – Василий, сделай ту задачу, которая стояла у тебя в приоритете.

Василий – Отчет, который мы сейчас обсуждали, стоял на верхнем уровне.

Изольда – Ты ее не сделал в срок, у тебя след задача это скорость работы отчетов.

Василий – У меня другие сведения об очередности задач.

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

 

Действие 3. Разявязка

Вторник. Вечер. Комната совещаний. Пятеро (Александр, Аристарх Николаевич, Василий, Изольда и Мария Петровна) ведут активное обсуждение рабочих вопросов.

Изольда – работа не была выполнена.

Василий – согласен, хочу заметить, что основной причиной этого были даже не наши разногласия, а то, что в связи с техническими проблемами в пятницу поработать не удалось, а в понедельник успеть не удалось, т.к. на выполнение задачи бралось 2 дня.

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

Василий (в сторону) – Время идет, и так хочется спать, надо вернуться к теме! (к собравшимся) Предлагаю вернуться к теме обсуждения. А именно: с Изольдой у нас возникли разногласия относительно методики реализации расчетов.

Изольда – вообще я уже давно ждала ответа с описанием методики расчета в отчете «Снабжение». А в этом описании вообще написано, что результат снимается только по выручке.

Василий (в сторону) Ну как можно быть такой?! (к Изольде) Пример расчетов приводится с использованием выручки, в новом отчете будет возможность выбора целевого показателя. Об этом написано в п.3. данного описания.

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

Мария Петровна – Василий, спасибо за проявленный энтузиазм, но это вообще не твоя работа, и зря потраченное время.

Василий – (в сторону) Выжранный насквозь мозг это проявленный энтузиазм? Та в гробу я видел такой энтузиазм. (к Марии Петровне) Не стоит благодарностей, хотел исключить возможность недопонимания. //Торжествующе посмотрел на Изольду.

Изольда – Но в этом описании не написано как будет работать отчет!

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

Изольда – И расчеты тоже перенесешь?

Василий – Нет, Я не буду использовать разработки Ашота, на то есть свои причины (в сторону) видели бы вы этот код» (к собравшимся) —  я создам алгоритм, реализующий названную методику расчетов. Т.е. моя работа будет состоять в том, чтобы по указанной методике реализовать правильные расчеты.

Мария Петровна – Срок выполнения работы?

Василий – завтрашний день, как и планировалось. Один день использован, остался второй.

Мария Петровна – Всем спасибо, все свободны.

 

Эпилог

Вечер. Офис.

Василий пишет пьесу в трёх действиях

has been added to your cart:
Оформление заказа