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

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

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

 

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

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

Василий – Программист 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. данного описания.

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

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

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

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

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

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

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

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

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

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

 

Эпилог

Вечер. Офис.

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

33 Comments

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

    // реплика из зала
    А ввыходные дни, лень было поработать?
    Reply
  2. Артано

    (1)

    А ввыходные дни, лень было поработать?

    //Действие второе:

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

    …а понял :)))))))))))))

    Reply
  4. Vovan1975
    Вечер. Офис.

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

    Лучше бы Васе коммуникативные навыки прокачать…

    Выглядит Вася пока как аутичный долбоклюй…

    Reply
  5. ardn

    Василий! Не работай по выходным.

    Reply
  6. Vovan1975

    (5) ardn,

    полностью поддерживаю

    Reply
  7. Артано

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

    (5) Василию платят за это, трагизм ситуации в том, что наложились экстренная и плановая работа

    Reply
  8. Rom_Kat

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

    Reply
  9. Lancelot-2M

    Коммуникативных навыков? — да у меня весь завод Изольды. Если навыки коммуникативные применять — кодить будет некогда. И совершенно не исключаю подобную ситуацию у Василия. Единственное, в своих реалиях отшил бы Изольду жестче и быстрее, возложив работу на местного нашего Александра)))

    Reply
  10. Артано

    К сожалению, «Александр» оба этих дня отсутствовал на работе, и Василий принял весь удар на себя, как говорится в пьесе «так сложились звёзды» =)

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

    Reply
  11. WKBAPKA

    (10)

    ну это до поры до времени. в статье описали только две задачи которые решал Василий, а когда этих задач будет много и Василий будет пытаться всем угодить, финал будет: либо Василий «сгорит», либо, просто уволиться.

    А по выходным нужно отдыхать!

    Reply
  12. ShantinTD
    да у меня весь завод Изольды

    — сочувствую.

    Можно «лечить» — путем составления должностных иснтрукций, писанием записок начальству о неполном служебном и.т.д.

    А по выходным нужно отдыхать!

    — поддерживаю.

    Reply
  13. victory1985

    Главное, чтобы среди «Изольд» встречались и другие: сообразительные руководители и пользователи 😉

    Reply
  14. Артано

    (13) victory1985, таких, как минимум, большинство. Изольда скорее исключение =)

    Reply
  15. Lokiy

    да ладно, у меня вообще вокруг одни Изольды.

    их и смысла то особо слушать нет про то какую они хотят методику для АБС анализа, все равно вменяемого ничего не скажут. Вменяемых то единицы, остальных проще послать, сказать я сам нагуглю… гугля лучше тебе объясняет.

    Reply
  16. Lancelot-2M

    (15) Lokiy, а я саботирую периодически. Вот пока внятно с формулами не родят — пусть ведут в Экселе.

    Reply
  17. catena

    У меня недавно было (дословно)


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

    Очень не хватает операторов ВзятьПримерно и СделатьТак.

    Reply
  18. Gilev.Vyacheslav

    Насколько симпатичная Изольда? Может проблема решается проще…

    Reply
  19. Артано

    (18) Gilev.Vyacheslav, к сожалению Изольда не в его вкусе, да и силы можно не рассчитать, тогда точно сгореть можно =)

    Reply
  20. AlexSunS

    (16) Lancelot-2M, Не могу не согласится, «Саботаж» неизбежный инструмент воздействия в нашей профессии….»вместо тысячи слов»…покажи «все слетело»….

    Reply
  21. Slotty

    Сложилось впечатление что Изольда так ненавидит IT -отдел (в частности Василия). Александр (Начальник отдела IT) как чувствовал что надо свалить на пару тройку деньков :).

    Reply
  22. ZLENKO

    (18) «Неуставные» отношения на работе ни к чему хорошему не приведут 🙂

    Reply
  23. Геннадьевич

    (5) ardn, Ни все работают в бюджетных организациях, где выходные это действительно выходные, чаще рабочая неделя ненормированная.

    Reply
  24. nanik

    Эх…как же все знакомо и пройдено не один раз…

    Reply
  25. cubic

    Хорошо что Мария Петровна «в адеквате». А то бывает так, что Мария Петровна и Изольда на одной волне и одном интеллектуальном уровне… Вот тогда засада…

    Reply
  26. WaterSmith

    Семь красных линий…

    http://www.youtube.com/watch?v=XoEx-Skki0I

    Reply
  27. buval

    Спасибо, очень реалистично

    Reply
  28. rosinfo1

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

    Василию совет, вначале разобраться:

    1) кто в его конторе, за что отвечает

    2) за что ему деньги платят

    3) не совать нос не в свои дела.

    Reply
  29. Артано

    (28) Спасибо за участие. Примерно как у вас и происходит и Василий занимается только проектной работой по ТЗ. Просто для Изольды было сделано исключение =)

    Reply
  30. majmyl

    (29) спасибо за пьесу, прослезился. Я тоже Василий и у меня есть своя Изольда. Но чувствую, что скоро я стану Отелло и придушу свою Дездемону.

    Reply
  31. Bukaska

    (30) majmyl, А ты на ночь молился Отелло?

    PS: Пользователелей не надо душить, им нужно по мозгам дать, чтобы вправить на место(Шутка)

    Reply
  32. ShantinTD

    (31) Bukaska, иногда одни только административные меры позволяют вправить пользователям руки и мозги. Иногда — не поможет ничего.

    Иногда нужно слегка придушить, иногда нужно и по мозгам надавать.

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

    Reply
  33. denis_aka_wolf

    Поддерживаю ) Тоже самое происходит и в нашей организации )))

    Reply

Leave a Comment

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