Трагикомедия в трёх действиях (зачастую бессмысленных)
Все имена и события являются вымышленными, любые совпадения с реальностью случайны.
Действующие лица:
Василий – Программист 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)
//Действие второе:
…а понял :)))))))))))))
Василий пишет пьесу в трёх действиях
Лучше бы Васе коммуникативные навыки прокачать…
Выглядит Вася пока как аутичный долбоклюй…
Василий! Не работай по выходным.
(5) ardn,
полностью поддерживаю
(4) Vovan1975, видимо Василий с прилагает некоторые усилия чтобы сдержать поток чувств ))
(5) Василию платят за это, трагизм ситуации в том, что наложились экстренная и плановая работа
Вообще задача экономиста разработать метод расчет ABC-анализа. Задача программиста же программиста качественно данный метод реализовать. Об этом, как я понял, и сказала на совещании Мария Петровна. Изольда же просто перекладывает свою работу на других. А вот Василию, как было замечено выше, коммуникативных навыков не хватает.
Коммуникативных навыков? — да у меня весь завод Изольды. Если навыки коммуникативные применять — кодить будет некогда. И совершенно не исключаю подобную ситуацию у Василия. Единственное, в своих реалиях отшил бы Изольду жестче и быстрее, возложив работу на местного нашего Александра)))
К сожалению, «Александр» оба этих дня отсутствовал на работе, и Василий принял весь удар на себя, как говорится в пьесе «так сложились звёзды» =)
Ну а насчет быстрее, это только еслиподумать послать. Но Василий слишком вежлив и воспитан ))
(10)
ну это до поры до времени. в статье описали только две задачи которые решал Василий, а когда этих задач будет много и Василий будет пытаться всем угодить, финал будет: либо Василий «сгорит», либо, просто уволиться.
А по выходным нужно отдыхать!
— сочувствую.
Можно «лечить» — путем составления должностных иснтрукций, писанием записок начальству о неполном служебном и.т.д.
— поддерживаю.
Главное, чтобы среди «Изольд» встречались и другие: сообразительные руководители и пользователи 😉
(13) victory1985, таких, как минимум, большинство. Изольда скорее исключение =)
да ладно, у меня вообще вокруг одни Изольды.
их и смысла то особо слушать нет про то какую они хотят методику для АБС анализа, все равно вменяемого ничего не скажут. Вменяемых то единицы, остальных проще послать, сказать я сам нагуглю… гугля лучше тебе объясняет.
(15) Lokiy, а я саботирую периодически. Вот пока внятно с формулами не родят — пусть ведут в Экселе.
У меня недавно было (дословно)
А давайте возьмем примерную сумму и сделаем так, чтобы она шла с балансом.
Очень не хватает операторов ВзятьПримерно и СделатьТак.
Насколько симпатичная Изольда? Может проблема решается проще…
(18) Gilev.Vyacheslav, к сожалению Изольда не в его вкусе, да и силы можно не рассчитать, тогда точно сгореть можно =)
(16) Lancelot-2M, Не могу не согласится, «Саботаж» неизбежный инструмент воздействия в нашей профессии….»вместо тысячи слов»…покажи «все слетело»….
Сложилось впечатление что Изольда так ненавидит IT -отдел (в частности Василия). Александр (Начальник отдела IT) как чувствовал что надо свалить на пару тройку деньков :).
(18) «Неуставные» отношения на работе ни к чему хорошему не приведут 🙂
(5) ardn, Ни все работают в бюджетных организациях, где выходные это действительно выходные, чаще рабочая неделя ненормированная.
Эх…как же все знакомо и пройдено не один раз…
Хорошо что Мария Петровна «в адеквате». А то бывает так, что Мария Петровна и Изольда на одной волне и одном интеллектуальном уровне… Вот тогда засада…
Семь красных линий…
http://www.youtube.com/watch?v=XoEx-Skki0I
Спасибо, очень реалистично
В нашей конторе, Василий с Изольдой на прямую никогда не общаются, только через Александра. Нет Александра, жди когда появится. Если все Изольды будут Василия дергать не по делу, кто же работу работать будет. А обо всех косяках с падением базы, нужно незамедлительно наверх докладывать, ставить сверхурочку, и сдвигать график выполнения работ на пару дней заранее, предупредив всех. Еще и в понедельник отгул брать, чтобы выспаться. Опять же это головная боль Александра, как это пробить в конторе, чтобы тех отдел уважали и с ним считались. Тут явно Василий не своим делом занимается. Обо всех левых вопросах-делах отчет Александру о потраченном времени, в конце дня, недели, месяца. Тогда будет решаться вопрос о найме помощника на тех поддержку.
Василию совет, вначале разобраться:
1) кто в его конторе, за что отвечает
2) за что ему деньги платят
3) не совать нос не в свои дела.
(28) Спасибо за участие. Примерно как у вас и происходит и Василий занимается только проектной работой по ТЗ. Просто для Изольды было сделано исключение =)
(29) спасибо за пьесу, прослезился. Я тоже Василий и у меня есть своя Изольда. Но чувствую, что скоро я стану Отелло и придушу свою Дездемону.
(30) majmyl, А ты на ночь молился Отелло?
PS: Пользователелей не надо душить, им нужно по мозгам дать, чтобы вправить на место(Шутка)
(31) Bukaska, иногда одни только административные меры позволяют вправить пользователям руки и мозги. Иногда — не поможет ничего.
Иногда нужно слегка придушить, иногда нужно и по мозгам надавать.
Пример: есть 2 конфы — самописная (точнее — очень-очень переписанная когда-то давно типовая) и типовая (бухгалтерия). В самописную вношу множество защит от косяков пользователей, и все равно умудряются находить новые способы накосячить. В типовой бухгалтерии косячил только один пользователь: то не глядя скопирует платежки («ну так ведь это же очередная зарплата, что там менять то?»), то проведет регистрацию товарного знака как уплату налогов («а что? не правильно?»), то еще чего-нибудь. С данным конкретным сотрудником мы разошлись (по совокупности разногласий), но можно было решить и мягче: сам накосячил — сам виноват!
Поддерживаю ) Тоже самое происходит и в нашей организации )))