Экзорцизм программистскими методами 2

Еще немного изгнания зла

За полтора года, прошедших с момента публикации первого экзорцизма, вспомнились еще некоторые методы, и появились новые.

Есть много материалов о том, как внедрение информационных систем помогло компаниям избавиться от потерь, сократить затраты, вырубить на корню воровство. Это прекрасно, когда получается избавляться от зла в таком большом объеме.

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

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

Просто опыт применения некоторых инструментов и примеры того, как они меня выручали.

Учет затрат на автоматизацию

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

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

Первый пример использования — защита от наездов типа «нами не занимаются, наши задачи не решают». Открываем отчет, смотрим — ага, на автоматизацию бухгалтерии компания потратила 250 т.р. за прошлый месяц. Или 1.5 млн. рублей в год, например.

Тут фишка в том, что оценивается в рублях — единице измерения, понятной директору. Если сказать «мы решили 113 задач от бухгалтерии», то он не проникнется — скажет, что надо еще больше делать. А когда говоришь «ты потратил 1.5 млн. на их задачи», ему будет неловко сказать «потратьте еще 2 млн. моих денег на них!». Чаще всего он вздыхал и спрашивал у бухгалтерии, что за задачи такие, на которые надо 1.5 млн. рублей тратить.

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

Мы решили вывернуть поинтереснее. В решенных задачах стали указывать не только заказчика, но и имена метаданных — документов, справочников и т.д., которые были созданы или доработаны при решении этой задачи.

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

А у нас затраты посчитаны. Допустим, это 30 т.р. Метаданные мы знаем, количество объектов знаем, делим одно на другое — получается, что в нашей системе на учет одного средства измерения потрачено 30 т.р. Хотя само средство измерения стоит 1 т.р.

Когда начальник службы качества в следующий раз на совещании начинает рассказывать, что ему надо чего-то автоматизировать, вежливо спрашиваем — как поживает «золотой штангенциркуль», на учет одной поверки которого компания потратила 30 т.р.?
 

Учет затрат на тех.поддержку

У нас на тех.поддержке сидел один человек — дежурный. Я от него часто слышал что-нибудь вроде «как же она достала, дура тупая, каждый день одно и то же спрашивает». Сначала не обращал особого внимания — мало ли, человек не запомнил, или мы виноваты. Потом, окольными путями, узнал, что некоторые пользователи сознательно устраивают DDoS-атаки на тех.поддержку, потому что не любят ИТ-отдел.

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

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

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

Первый пример использования — банальный. Когда кто-то говорит, что на его вопросы не отвечают, и у него все плохо, показываем цифру. Смотри, дружок, на твои вопросы компания тратит 20 т.р. в месяц.

Второй пример использования — поинтереснее. Мы его называли «стоимость некомпетентности». К сожалению, наши HR не очень разбирались в тонкостях учета, и требование в вакансиях «Знание программ 1С» проверять не умели, а к нам отправлять на тесты не хотели. Так к нам попадали бухгалтеры, не знающие, как вести учет в компьютере.

И вот есть бухгалтер, которому платят 30 т.р. в месяц, без учета налогов. И есть стоимость тех.поддержки, оказываемой этому бухгалтеру. Например, 20 т.р. в месяц — программисты же дорогие. Получается, бухгалтер обходится компании в 50 т.р. в месяц. Столько же стоит, например, заместитель главного бухгалтера.

Директор был немного ошарашен этими цифрами. Одно дело слышать «мы тратим 50 т.р. в месяц на тех.поддержку пользователей» — ну ладно, надо так надо. Совсем другое дело — «некомпетентность этого бухгалтера стоит нам 20 т.р. в месяц». Обращений на тех.поддержку стало меньше.
 

Незабывайка

Когда мы называли стоимость автоматизации, то заказчик испытывал неудобства, но — лишь временные. Его пожурят, может какой-нибудь штраф выпишут, и забудут. Он получает индульгенцию, и может начинать все сызнова.

Нас такой подход не устраивал, потому что все снова приходило к ситуации «программисты плохие». Поэтому мы поступили просто — начали использовать накопленную статистику затрат на автоматизацию.

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

Когда снова заходит разговор о том, что мы не решаем каких-то задач, или кто-то плохо автоматизирован, мы просто поднимали отчет, и показывали накопленную сумму. Т.к. у нас была статистика в разрезе метаданных, то сумма хорошо делилась на две части — хорошую и плохую.

Хорошая — используемый функционал. Плохая — неиспользуемый. У кого-то плохая была вдвое больше хорошей.
 

Парсинг версий

Системы версионирования, что в 1С, что в том же CouchDB, работают одинаково — просто хранят версии объектов на момент записи. Некоторые доделывают эти системы — например, не сохраняют версии, если ничего в объекте не поменялось.

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

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

Бухгалтеры, например, люди ушлые, но портить учет опасаются — если перезаписывают объект, то меняют какой-нибудь незначительный реквизит, вроде комментария. Формально, версия — новая, даже если фильтровать по наличию изменений.

Мы добавили такую сущность, как view осмысленности. Просто перечислили свойства объектов, изменение которых, скорее всего, является нормальным отражением работы человека, а не ИБД. Вьюшек было несколько, на один и тот же тип объекта. Например, изменение номенклатуры в отгрузке — это серьезное изменение. Изменение счета учета — так себе, не очень серьезное, но все-таки — работа. Изменение времени документа внутри одной даты — нет, увы, просто детское баловство.

Так у нас появилась статистика изменений в разрезе осмысленности. Пользователи, естественно, прошарили и стали опять DDoS’ить — меняют важный реквизит, через минуту, или день меняют обратно. Наивные.

У нас ведь есть возможность сравнивать версии не последовательно, а, например, первую и последнюю, и игнорировать промежуточные изменения. Когда квартал закрыт, документ, с высокой вероятностью, уже в целевом состоянии, и можно смело сравнивать его с последней версией на дату создания.
 

Корреляция автоматизации и KPI

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

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

Исходя из написанного выше понятно, что у нас было много цифр про автоматизацию. И были KPI отделов, которые эту автоматизацию заказывали. Что-то считалось автоматом в системе — например, продажи. Что-то считалось вручную, в экселе или еще где-то. Но KPI по всем были — как раз внедрили какую-то систему мотивации.

Мы, как настоящие программисты, первым делом автоматизировали учет всех KPI. Те, что нельзя было рассчитать по данным системы, просто загрузили из экселя. У нас появились все цифры, характеризующие работу сотрудников и отделов компании.

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

Имея KPI и затраты на автоматизацию, очень просто посчитать корреляцию, потому что все данные хранятся с привязкой к датам. Выполнили, например, проект автоматизации стоимостью 200 т.р. в январе — должны измениться KPI соответствующего подразделения. Не сразу, а, допустим, в феврале, или в марте, или даже в июне. Но должны. Иначе в чем смысл?

Как ни странно, корреляция была. Например, в работе закупок — мы сделали проект автоматизации по ТОС, и их KPI выросли. Даже продажи выросли, т.к. именно они были целью автоматизации закупок, в конечном итоге.

Но были и примеры отсутствия корреляции. Например, внедрение CRM не принесло ничего, вообще. Создание сайта, взамен предыдущего, не принесло никакого эффекта.

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

А вот автоматизация экономистов, ведущих бухгалтерский учет, сказалась позитивно — мы лишились двух сотрудников. Их не увольняли — они сами ушли, по своим причинам. Но мы предложили — давайте пока не брать новых, посмотрим, как пойдет, мы там много автоматизировали. Директор согласился, и все получилось.

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

Правда, потом директор сменился, и все пришлось начинать с самого начала. Но, где-то через полгода, новый директор тоже оценил расчет корреляции.

28 Comments

  1. citicat

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

    Обоснование серьёзное. Чем больше цифр, тем большеее впечатление они призводят на читающего

    Reply
  2. nyam-nyam

    (1) Это не для раздутия отчетов сделано было, а для дальнейшей работы по учёту использования и расчёта стоимости в разрезе использования. Чтоб потом шельмовать шельмецов. 🙂

    Reply
  3. citicat

    «внедрение CRM не принесло ничего, вообще».

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

    Другой вопрос в базе СРМ, кто из покупателей создаёт рекламу, возможно, и случайно? Как -то это стоит учесть.

    Reply
  4. Aggressorak

    Во втором абзаце слово видимо пропущено.

    «Есть много материалов о том, как внедрение информационных «технологий» помогло компаниям избавиться…»

    Reply
  5. 1c-intelligence

    (4) да, спасибо

    Reply
  6. Vladimir Litvinenko

    (1)

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

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

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

    Система наверняка самописная и тянет данные из баг-трекера, основной учетной системы и какого-нибудь ЗУП.

    Reply
  7. Petr54-ru

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

    И тут два варианта, либо на старте не пофиксили цели, либо те цели не были достигнуты.

    Работал в одной компании, там директор как-то двинул мысли что нужна CRM, я спросил его про цели внедрения. Директор меня понять не смог. Я с другой стороны подхожу — типа я вам подготовлю табличку, со сравнением фич 1С конфигурации от Раруса и MicrosoftCRM, а вы выберете из этой таблички фичи, которые вам нужны, возможно будет проще эти нужные фичи просто дописать в УТ11. Так и не смог он выбрать нужные фичи, оказалось что у него совсем иная идея были — надо сначала внедрить CRM, а уже после внедрения понять, какую от нее можно получить пользу.

    При такой постановке задачи провал гарантирован, поэтому пока я там работал, старательно уклонялся от запуска в работу проекта внедрения CRM.

    Reply
  8. m_aster

    Некрасивая у Вас заставка, также и на аватаре. Оставили бы белька в покое, им и так достается от двуногих чудовищ. Кажется, это совсем не смешно.

    Reply
  9. Glebis
    Совсем другое дело — «некомпетентность этого бухгалтера стоит нам 20 т.р. в месяц». Обращений на тех.поддержку стало меньше.

    На мой взгляд, не обоснованная оптимизация с точки зрения руководителя предприятия, так как сэкономленные 20 т.р на консультациях с программистом могут привести к появлению ошибок в бухгалтерском учете, которые низкоквалифицированный пользователь допустит «…потому что 1С это позволило сделать… программисты это не предусмотрели… 1С кривая…на предыдущей работе таких ошибок не было…». Что в свою очередь может стоить предприятию гораздо больше 20 т.р., которые невозможно будет удержать с бухгалтера с ЗП 30 т.р..

    Reply
  10. acanta

    Найми 2х хороших бухгалтеров — сэкономь на программистах!

    Reply
  11. 1c-intelligence

    (9) это немного другая тема — управление качеством данных. Тут нужна проверка данных, фиксация, консилиум, или весь флакон сразу.

    Reply
  12. 1c-intelligence

    (8) тут надо контекст знать — игру «Overlord». Она старая, но попробуйте — увлекательно.

    Reply
  13. volkov_genadiy_

    Сереги на них нет. Не пришлось бы ничего придумывать. Серега быстро бы поставил их всех на место поиграв перед нимими в тетрис на телефоне все бы выпали в осадок от его мудрости.

    Reply
  14. 1c-intelligence

    (13) ок, следующего давай

    Reply
  15. CheBurator

    (9) Бухгалтер должен знать и уметь применять свой инструмент (ну, если просто — «чувствовать цифры». Компетентный бухгалтер даже по обобщенным данным видит некие несоответствия. И вполне может выйти на ошибку. И тут уже вопрос совершенно другой — бух отнес затраты не на тот счет который нужен. Почему? ответ бузха — так программа настроена. Ответ техотдела — мы не можем предусмотреть все возможные варианты и настроить 100 вариантов «типовых» выборов из значений возможных. Бух должен понимать, что он ввидил нетиповую, редко используемую а м.б. вообще новую «операцию».. и тупо бездумно колотить по умолчанию и плодить такие ошибки — не задача техотделда ставить везде затычки. Другое дело, чисто программные ошибки — прога ломается сразу — нет проблем, чиним. Или ошибки, которые приводят к неверным числовым значениям показателей. и если выручка за квартал 120 лямов, закупов не было, то НДС в сумме 28 лямов должен навести на вопросы… — а бухия работает еще хуже чем проги зачастух = «х..к, х..к по кнопкам, типа результат готов». Я у себя когда начался кипеж аналогичный (по более мелким поводам) сказал просто — «давайте оставим ГБ и замГБ, а всех остальных из бухии оформим как операторов ПК» — неееттт. не захотели, «булгахтер» — это же звучит гордо!

    Reply
  16. CheBurator

    Самое печальное вот это «Правда, потом директор сменился, и все пришлось начинать с самого начала. Но, где-то через полгода, новый директор тоже оценил расчет корреляции.» — то есть приходится ЖДАТЬ (вполне возможно с ущербом для компании) пока гена созреет до понимания того, что бизнес — это цифры. и не только цифры денег и вала, но и прочие цифры В ОБЛАСТЯХ ОБСЛУЖИВАНИЯ БИЗНЕСА. а с цифрами — кто у нас работает…?

    Reply
  17. CheBurator

    Несомненный плюс автору — то, что автоматизация показана на реальных примерах. В наше время — это дорогого стоит. Адски плюсую!

    Reply
  18. swimdog

    (7) А мы сейчас в CRM из экселя юристов пересаживаем. Казалось бы, причем здесь CRM? ))

    Reply
  19. citicat

    (18)

    (18)Юристы по работе с базой данных не сильно грамотнее, чем кладовщики :). Им важен текст, распчатанный на бумаге, с подписями

    сторон. Сочувствую

    Reply
  20. m_aster

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

    Reply
  21. citicat

    «это ваша программа виновата» — придётся написать свою заметку о внедрении. Хотя пользователей в базе было не так уж много.

    Программа виновата не больше, чем Кирилл и Мефодий, создавшие кириллицу.

    Займусь на досуге.

    Reply
  22. Petr54-ru

    (21) С интересом жду вашей статьи.

    Я в конце года тут выкладывал статью с подробным описанием своего микропроекта, — там эту тему тоже обойти не получилось. Цитата оттуда:

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

    Вся статья

    Reply
  23. 1c-intelligence

    (20) поменял картинку профиля. Буду флаконом.

    Reply
  24. m_aster

    (23) Наполните его знаниями, ценными не только для Вас, но и для других.

    Reply
  25. 1c-intelligence

    (24) не подскажете, зачем? Есть куча людей, в головах которых — масса знаний, ценных для меня. Но от этого ни мне, ни им не холодно, не жарко.

    Reply
  26. m_aster

    (25) тогда не пишите здесь ничего, молча носите в своем флаконе, можете даже флакон не заполнять.

    Reply
  27. 1c-intelligence

    (26) вы сказали флакон наполнять. Сейчас — не писать ничего. Что делать-то в итоге?

    Reply
  28. citicat

    (22) Написала статью про внедрение нескольких программ 1С:7.7 и программ тестирования отчетности.

    Reply

Leave a Comment

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