gifts2017

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

Опубликовал Артано Майаров (Артано) в раздел Сообщество - О жизни

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

 

Эпилог

Вечер. Офис.

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

См. также

Подписаться Добавить вознаграждение

Комментарии

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



// реплика из зала
А ввыходные дни, лень было поработать?
2. Артано Майаров (Артано) 04.03.13 10:34
(1)
А ввыходные дни, лень было поработать?


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

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


...а понял :)))))))))))))
4. Владимир Безфамильный (Vovan1975) 04.03.13 10:48
Вечер. Офис.

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


Лучше бы Васе коммуникативные навыки прокачать...
Выглядит Вася пока как аутичный долбоклюй...
5. Юрий Былинкин (ardn) 04.03.13 10:50
Василий! Не работай по выходным.
Shomak; LeXXik; greenLiss; Spartan; Roman24; fzt; i_volodin; +7 Ответить 3
6. Владимир Безфамильный (Vovan1975) 04.03.13 10:53
(5) ardn,
полностью поддерживаю
7. Артано Майаров (Артано) 04.03.13 11:38
(4) Vovan1975, видимо Василий с прилагает некоторые усилия чтобы сдержать поток чувств ))

(5) Василию платят за это, трагизм ситуации в том, что наложились экстренная и плановая работа
8. Роман Катунин (Rom_Kat) 04.03.13 12:06
Вообще задача экономиста разработать метод расчет ABC-анализа. Задача программиста же программиста качественно данный метод реализовать. Об этом, как я понял, и сказала на совещании Мария Петровна. Изольда же просто перекладывает свою работу на других. А вот Василию, как было замечено выше, коммуникативных навыков не хватает.
9. Rom Shpakoff (Lancelot-2M) 04.03.13 12:44
Коммуникативных навыков? - да у меня весь завод Изольды. Если навыки коммуникативные применять - кодить будет некогда. И совершенно не исключаю подобную ситуацию у Василия. Единственное, в своих реалиях отшил бы Изольду жестче и быстрее, возложив работу на местного нашего Александра)))
10. Артано Майаров (Артано) 04.03.13 13:21
К сожалению, "Александр" оба этих дня отсутствовал на работе, и Василий принял весь удар на себя, как говорится в пьесе "так сложились звёзды" =)


Ну а насчет быстрее, это только если подумать послать. Но Василий слишком вежлив и воспитан ))
11. Ярослав Радкевич (WKBAPKA) 04.03.13 14:21
(10) Артано,

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

А по выходным нужно отдыхать!
12. Тимофей Шантин (ShantinTD) 04.03.13 15:40
да у меня весь завод Изольды
- сочувствую.
Можно "лечить" - путем составления должностных иснтрукций, писанием записок начальству о неполном служебном и.т.д.

А по выходным нужно отдыхать!
- поддерживаю.
13. Виктория Бутко (victory1985) 04.03.13 18:54
Главное, чтобы среди "Изольд" встречались и другие: сообразительные руководители и пользователи ;)
14. Артано Майаров (Артано) 05.03.13 01:59
(13) victory1985, таких, как минимум, большинство. Изольда скорее исключение =)
15. Евген Каравашкин (Lokiy) 05.03.13 07:27
да ладно, у меня вообще вокруг одни Изольды.
их и смысла то особо слушать нет про то какую они хотят методику для АБС анализа, все равно вменяемого ничего не скажут. Вменяемых то единицы, остальных проще послать, сказать я сам нагуглю... гугля лучше тебе объясняет.
16. Rom Shpakoff (Lancelot-2M) 05.03.13 10:16
(15) Lokiy, а я саботирую периодически. Вот пока внятно с формулами не родят - пусть ведут в Экселе.
17. Екатерина Соколова (catena) 06.03.13 07:05
У меня недавно было (дословно)

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


Очень не хватает операторов ВзятьПримерно и СделатьТак.
denis_aka_wolf; cubic; +2 Ответить
18. Вячеслав Гилёв (Gilev.Vyacheslav) 06.03.13 09:58
Насколько симпатичная Изольда? Может проблема решается проще...
19. Артано Майаров (Артано) 06.03.13 11:23
(18) Gilev.Vyacheslav, к сожалению Изольда не в его вкусе, да и силы можно не рассчитать, тогда точно сгореть можно =)
20. Alex Gaiduk (AlexSunS) 07.03.13 10:02
(16) Lancelot-2M, Не могу не согласится, "Саботаж" неизбежный инструмент воздействия в нашей профессии...."вместо тысячи слов"...покажи "все слетело"....
21. Gudvin Pupkin (Slotty) 07.03.13 14:00
Сложилось впечатление что Изольда так ненавидит IT -отдел (в частности Василия). Александр (Начальник отдела IT) как чувствовал что надо свалить на пару тройку деньков :).
22. ZLENKO.PRO (ZLENKO) 07.03.13 17:27
(18) "Неуставные" отношения на работе ни к чему хорошему не приведут :-)
23. Геннадьевич Бу (Геннадьевич) 09.03.13 08:31
(5) ardn, Ни все работают в бюджетных организациях, где выходные это действительно выходные, чаще рабочая неделя ненормированная.
24. nanik nanik (nanik) 10.03.13 02:58
Эх...как же все знакомо и пройдено не один раз...
25. Иван Фамилия (cubic) 12.03.13 11:56
Хорошо что Мария Петровна "в адеквате". А то бывает так, что Мария Петровна и Изольда на одной волне и одном интеллектуальном уровне... Вот тогда засада...
26. Сергей Водаков (WaterSmith) 24.03.13 22:43
27. Валерий Буданов (buval) 20.05.13 12:23
Спасибо, очень реалистично
28. Росинфо 1 (rosinfo1) 03.12.13 01:23
В нашей конторе, Василий с Изольдой на прямую никогда не общаются, только через Александра. Нет Александра, жди когда появится. Если все Изольды будут Василия дергать не по делу, кто же работу работать будет. А обо всех косяках с падением базы, нужно незамедлительно наверх докладывать, ставить сверхурочку, и сдвигать график выполнения работ на пару дней заранее, предупредив всех. Еще и в понедельник отгул брать, чтобы выспаться. Опять же это головная боль Александра, как это пробить в конторе, чтобы тех отдел уважали и с ним считались. Тут явно Василий не своим делом занимается. Обо всех левых вопросах-делах отчет Александру о потраченном времени, в конце дня, недели, месяца. Тогда будет решаться вопрос о найме помощника на тех поддержку.
Василию совет, вначале разобраться:
1) кто в его конторе, за что отвечает
2) за что ему деньги платят
3) не совать нос не в свои дела.
29. Артано Майаров (Артано) 03.12.13 02:36
(28) Спасибо за участие. Примерно как у вас и происходит и Василий занимается только проектной работой по ТЗ. Просто для Изольды было сделано исключение =)
30. majmyl Hauanov (majmyl) 26.02.14 09:56
(29) Артано, спасибо за пьесу, прослезился. Я тоже Василий и у меня есть своя Изольда. Но чувствую, что скоро я стану Отелло и придушу свою Дездемону.
31. Елена Пименова (Bukaska) 26.02.14 10:13
(30) majmyl, А ты на ночь молился Отелло?
PS: Пользователелей не надо душить, им нужно по мозгам дать, чтобы вправить на место(Шутка)
32. Тимофей Шантин (ShantinTD) 26.02.14 10:41
(31) Bukaska, иногда одни только административные меры позволяют вправить пользователям руки и мозги. Иногда - не поможет ничего.

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

Пример: есть 2 конфы - самописная (точнее - очень-очень переписанная когда-то давно типовая) и типовая (бухгалтерия). В самописную вношу множество защит от косяков пользователей, и все равно умудряются находить новые способы накосячить. В типовой бухгалтерии косячил только один пользователь: то не глядя скопирует платежки ("ну так ведь это же очередная зарплата, что там менять то?"), то проведет регистрацию товарного знака как уплату налогов ("а что? не правильно?"), то еще чего-нибудь. С данным конкретным сотрудником мы разошлись (по совокупности разногласий), но можно было решить и мягче: сам накосячил - сам виноват!
33. Denis Michaylov (denis_aka_wolf) 07.03.14 06:56
Поддерживаю ) Тоже самое происходит и в нашей организации )))
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа