В данной статье я хотел бы поделиться своим опытом работы внедрения ERP-систем на больших проектах. Статья была написана в 2013 году в момент внедрения большого проекта на 1С, так сказать по горячим следам.

Вступление: два вида клиентов


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

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

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

Минусы: требуется обучение пользователей работе в 1С, загрузки данных из Экселя. Например был у меня клиент, у которого пользователи были избалованы разнообразием печатных форм в Экселе (практически для каждого заказчика своя, причем, разная для разных его филиалов), поэтому они требовали сделать такую же поддержку в 1С. Необходим большой административный ресурс для того чтобы унифицировать формы, а также сдвинуть внедрение с мертвой точки: пользователи начали обучаться, пользователи начали выполнять новую непривычную для них работу, например, поддержку справочников контрагентов и номенклатуры в актуальном состоянии.

Во втором случае это переход со старых систем, например, программы 1С 7-й версии или другие устаревшие программы, которые не отвечают современным требованиям, например у меня был клиент с программой RS-Balance 3.16, которая жутко тормозила.

Обычно это клиенты с большим числом рабочих мест — более 100, у них уже ведется учет на старой системе, поэтому вначале нужно перенести старые бизнес-процессы на новые рельсы (на новую платформу 1С 8), так чтобы деятельность компании ни на минуту не остановилась, а уже потом дорабатывать бизнес процессы. Есть два способа выполнить начальный запуск: методом большого взрыва — когда вся компания переходит на новую программу и методом встраивания отдельных рабочих мест — перевод выполняется по отдельным пользователям, при этом между системами выполняется двухсторонняя синхронизация данных. Данные введенные в одной системы тут же попадают в другую систему, в итоге пол-фирмы может работать в одной программе, а оставшаяся часть другой. Этот способ внедрения наиболее удобный и безопасный с точки зрения сохранения деятельности компании, но он самый технически сложный для исполнителя. Но оказалось возможным для перехода с таких программ как 1С 7.7 и RS-Balance.

Идеальное внедрение


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

Сотрудники заказчика работают с 9 до 18, они работаю в привычном своем русле заданий: они не хотят напрягать мозги — выполнять новую работу или обучаться, они не хотят иметь проблемы с начальством если сбоит программа и из-за этого не могут выполнить свои обязанности, например из-за недоработок программы товар не отгружается со склада. Идеальный случай — это повторение старого интерфейса программы (тогда сотруднику не придется обучаться новому) и создание двухсторонней синхронизации данных (в случае сбоя в новой программе пользователи не останавливаясь продолжают работать в старой программе)

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

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

Управляемый взрыв


Как это делается

Создается механизм регистрации изменений объектов (например: для 1С 8 подойдет встроенных механизм регистрации или можно использовать механизм подписки на события, для 1С 7 версии используется внешняя компонента Мигратор 1С, для RS-Balance используются пользовательские макросы переопределяющие стандартные методы записи справочников и документов “Update” и “UpdateDoc”).

В 1С 8 создается обработка умеющая выгружать и загружать измененные объекты между программами. Помимо прочего она должна иметь специальный монитор корректности переноса данных. Проблемы переноса данных должны отображаться в специальной таблице, где ошибки связанные с только неудачными транзакциями должны автоматически обрабатываться при следующий сеансах обмена, а ошибки требующий вмешательства программиста (например неверные сценарии перелива данных) — исправляться вручную программистом (сначала правится код обработки обмена, а потом вручную инициируется обмен).

Создается механизм прав для пользователей определяющий в какой программе они могут работать. Далее установкой прав задается работа каждого пользователя в той или иной программе.

Что мы узнали

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

Вместо эпилога: парадокс внедрения управляемым взрывом


Большие компании (от 100 автоматизированных рабочих мест) переходят на новую систему в том случае если старая система их не устраивает. Это очевидно. Но почему их не устраивает? Потому что нет людей которые могут контролировать внутренности системы — либо произошла ротация программистов, либо изначальна была выбрана слабая платформа, которая не справляется с большой нагрузкой, либо создано такой набор заплаток, что проще перейти на новую систему, чем пытаться разобраться в существующей. Зачастую присутствуют все перечисленный причины. Развитие существующей системы зашло в тупик, т.е. как сейчас говорят — программа больше не удовлетворяет потребности бизнеса.

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

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

Комментарии (7)


  1. erp_shnik
    11.09.2015 11:03
    +1

    Вы забыли написать про главное — ЗАЧЕМ.
    Цель внедрения какая была?
    Достигнута она?
    В чем измеряется цель вашего проекта? Как изменились показатели компании после внедрения и что это за показатели?


    1. vtools
      13.09.2015 12:24

      Ответил ниже…


  1. vtools
    13.09.2015 12:23
    +1

    Я скорее технический специалист, чем бизнес-консультант. Данная статья отвечает КАК нужно переходить на новую систему.
    Причины перехода на новую программу остались за рамками статьи, только вскользь было упомянуто про то, что старая программа больше не удовлетворяет потребности бизнеса. И если говорить про конкретный проект, то решение созрело и было принято бизнесом до меня, от меня требовалось только осуществить переход.
    Цели написания статьи — показать новый способ внедрения, в противовес так называемому большому взрыву. Так получилось, что две одинаковые фирмы выполняли внедрение 1С практически одновременно. В одной выполнялось большим взрывом — т.е. с 1 января все пользователи перешли на новую систему. А в другой, где работал я со своей командой, управляемым взрывом — перевод по отдельным рабочим местам. Разница была в том, что первая фирма на месяц остановила отгрузки клиентам, т.к. оказалось что программа была местами не доработана, вторая фирма ни на день (и даже не на час) не прекращала свою работу. И вот хочется чтобы мой опыт пригодился…


  1. erp_shnik
    14.09.2015 10:39

    Внедрять ERP-систему отдельными рабочими местами можно и, даже, я сказал бы, нужно. Вопрос лишь в том, какими местами.
    Разумеется нельзя разрывать цепочку продажи-закупки-склад.
    А какая проблема внедрить управление договорами или, например, управление платежами без внедрения склада? Это не связанные вещи.


    1. vtools
      14.09.2015 11:38

      Наверно, текст статьи я написал несколько сумбурно и не передал основную мысль. Попытаюсь это сделать заново.
      Всего существует две полноценные рабочие базы. Одна база — это старая программа, другая это новая программа. Между ними настраивается двухсторонний обмен. Все изменения сделанные в одной базе передаются в другую. Не важно какие пользователи в каких базах работают.
      Сложность тут в том что это технически трудная задача, но она ничто по сравнению с организационной задачей при внедрении системы для нескольких сот пользователей. Да, нужно потратить несколько месяцев для наладки обмена, зато получаем выигрыш при внедрении: безопасность перехода и достаточно быстрая скорость перевода. В данном проекте была филиальная структура, мы с фин. директором заказчика ездили по филиалам и внедряли программу — неделя в одном городе, неделя в другом. Но через некоторое время собственникам фирмы надоело постоянное отсутствие фин.директора, т.к. он нужен был в Москве. Было принято решение внедрять удаленно — через Skype. Скорость внедрения резко выросла, каждый день я переводил один филиал, а через пару недель мы отключили старую программу (это был RS-Balance)


  1. serbod
    15.09.2015 09:14

    Со справочниками понятно, а прочие данные мигрировали на уровне первичных документов, или использовались механизмы синхронизации регистров? Как обрабатывались случаи изменений задним числом, когда нужно делать перепроведение документов для выравнивания остатков товаров по партиям? Как синхронизировалась бухгалтерско-финансовая часть учета (ОС, зарплата, банк-касса-подотчет)?, Там ведь довольно много сложных документов и операций, да и паника при расхождениях сумм на счетах сильнее, чем при расхождении количества на складах.

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


    1. vtools
      15.09.2015 12:41

      Если говорить про проект 2013 года, то перевод был из RS-Balance, там несколько другие были объекты, например, там не было регистров и кроме того, там редактированием задним числом невозможно. И кстати это значительно облегчило жизнь при переходе…
      В случае более ранних проектов, например, в 2008 году переводил с 1С 7.7, то передача осуществлялась справочник в справочник, документ в документ, а бухучет велся в отдельных базах, и после перехода он также продолжался вестись в отдельных базах. Более того у меня на практике так сложилось, что клиенты от несколько сот пользователей в базе всегда вели бухучет в отдельных базах.

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