И опыт, сын ошибок трудных,
И гений, парадоксов друг,
И случай, бог изобретатель.
/А.С. Пушкин/
Как опыт привел к парадоксу требований и заставил изобрести новую систему документооборота.
Кому интересно, прошу…
Предпосылки
Много лет занимаюсь адаптацией и внедрением разных систем документооборота на разных предприятиях одного и того же профиля. Где работаю штатным сотрудником — выступаю руководителем и исполнителем проектов, где внештатным – консультантом.
Являясь, как сейчас принято говорить, CIO, все время автоматизировал процессы совершенно далекие от ИТ. Например, разработка проектной документации, обмен заданиями на проектирование и т.п. Никак не доходили руки до автоматизации процессов протекающих в подчиненном мне ИТ-подразделении. Повезло, подразделения были небольшими, и всю информацию удавалось удержать в голове. Не спорю, ненадежно, но…
Приблизительно пару лет назад озадачился вопросом, надо бы наконец-то найти инструмент, который поможет автоматизировать «айтишные» процессы в отделе, а заодно и в аутсорсинговой ИТ-компании, которая уже давно работала под моим началом без подобающего инструмента. Изначально задача показалась совершенно тривиальной.
Изыскания
Начал поиски. Как принято у нормальных людей, определил критерии, иначе можно искать бесконечно:
Простота – конечный пользователь, т.е. сотрудник отдела или организации, не должен разбираться в сложностях интерфейса нового продукта, а должен открыть и начать работать.
Цена – бесплатно или недорого, т.е. не дороже 3-5т.р. в месяц и без начальных инвестиций.
Гибкость – важно, чтобы процессы развивались вместе с пользователями или пользователи вместе с процессами, в общем, чтобы процессы можно было изменять и развивать в соответствии с возникающими потребностями.
После нескольких дней поисков получил какой-то результат … неважно какой, т.к. понял, что искал вовсе не то. Пришло переосмысление задачи. Требовалась система не только для автоматизации ИТ-процессов, а для автоматизации любых процессов протекающих на предприятии, будь то основное место работы или клиенты аутсорсинговой компании. В конечном счете, к критериям поиска добавился еще один:
Многоорганизационность – таким страшным словом обозвал возможность искомой системы управлять разными организациями как вместе, так и порознь, иными словами, чтобы по мере необходимости сотрудники одной организаций могли быть участниками процессов другой организации.
И вот на этом критерии споткнулись все найденные мной в то время системы. Возможно, плохо искал, но не нашел.
Идея
Однако, программисты – народ ищущий и недремлющий. Взвесил «за» и «против» и решился на запуск проекта по созданию новой системы документооборота. Разумеется, разрабатывать систему только для себя – расточительство. Уж если разрабатывать, то разрабатывать универсальную систему, под разные требования и не только для себя.
Руководитель, архитектор и исполнитель – сам, дизайн – фриланс. По крайней мере, на первых порах.
Не стану описывать все мои мытарства в поиске инструмента для написания системы, выбора языка, архитектуры и т.п. В конечном счете остановился на Yii Framework. Статья не про него, поэтому про него коротко – супер!
К разрабатываемой системе выдвинул ряд требований, перекликающихся с критериями поиска указанными выше:
Простота – опять же, все должно быть просто для конечного пользователя — открыл и работай. Лично мне нравятся такие системы, в которых пользователю доступен набор действий ограниченный его потребностями, а вся сложная настройка и адаптация скрыта под консолью администратора.
Цена – система должна быть изначально бесплатной и просить денег только когда ее начнут активно использовать. Исключение начальных инвестиций в оборудование или программное обеспечение для многих компаний важный критерий.
Гибкость – процессы не должны быть жесткими, администратор должен иметь возможность изменять и дополнять их быстро и легко не обладая при этом уникальными знаниями (достаточно базовых знаний PHP).
Многоорганизационность – аутсорсинговые компании работают с разными клиентами, таким образом, все клиенты становятся участниками процессов протекающих в аутсорсинговых компаниях и система должна позволять такое организовать.
Открытость – не представляю себе систему, которая в наше время являясь закрытой сможет выжить хотя бы год, поэтому изначально должен быть хотя бы один способ для двусторонней связи – выбрал SOAP.
Скорость – отклик должен быть пусть не мгновенный, но очень быстрый. Никаких «нескольких секунд» для регулярных действий. Длительными могут быть только пакетные операции.
Шаблонность – возможность делиться своими процессами со всем миром и, как следствие, использовать опубликованные другими администраторами процессы в своих целях. Не секрет, что многие компании используют типовые процессы в своей работе, так зачем тратить время и деньги на их реализацию, когда можно взять подходящих шаблон и использовать его как есть или слегка «допилить».
Рождение
Полтора года «кодинга» привели к рождению новой системы, которую назвал easla.com. Ожила система в сети зимой этого года и в течение всего последующего времени активно тестировалась путем «боевой» эксплуатации.
Идеологически система построена предельно просто: процесс – объект – атрибут – действие, к ним добавлены роли и виды. Каждый программист знакомый с ООП поймет систему в течение получаса.
Разумеется, специалисты знакомые с системами документооборота найдут в easla.com много знакомых и ожидаемых возможностей, но в каждом продукт должна быть изюминка, а лучше целая мисочка изюминок. Из изюминок easla.com, можно отметить:
Многоорганизационность – администратор системы можно управлять неограниченным числом организаций и организации могут быть как независимыми друг от друга, так и пересекаться в процессах, если требуется.
Вложенность объектов – система позволяет хранить объекты иерархически регулируя принципы вложенности объектов, например, задача-подзадача-субзадача, но не задача-субзадача.
Сводный вид – объекты можно отобразить не простой последовательностью в таблице, а со значениями на пересечении колонок и рядов.
Рабочий календарь – календарь организации, в котором возможно указать рабочие, нерабочие, праздничные и предпраздничные дни, а потом использовать календарь для вычисления диапазонов рабочего времени, например, в процессе управления инцидентами используя календарь удобно рассчитывать плановую дату закрытия инцидента (между полуднем пятницы и полуднем понедельника не 72 часа, а только 8).
Совмещение пользователей – сотрудник организации может стать совместителем в другой организации и таким образом стать участником процессов другой организации, например, сотрудник клиента аутсорсинговой организации может стать участником процесса управления инцидентами аутсорсинговой компании, скажем, выполнять роль регистратора инцидентов.
Умный поиск – поиск по базе данных с учетом сложных критериев.
Крещение
Первое «боевое крещение» easla.com прошла путем автоматизации с ее помощью ИТ-процессов (см. ИТ сервис-менеджмент) для отдела ИТ проектной организации. Были автоматизированы следующие процессы:
Сервисы – фактически, каталог сервисов для одной организации.
Инциденты – простое управление инцидентами.
Изменения – простое управление изменениями с возможностью создания изменения на базе инцидента.
Всего несколько ролей, десяток действий и, к настоящему моменту, более 2000 объектов в easla.com.
Второе «боевое крещение» easla.com прошла при автоматизации с ее помощью ИТ-процессов для аутсорсинговой ИТ-компании. Процессы получились более сложными, пригодилась «многоорганизационность» и даже использована связь с asterisk через SOAP. Были автоматизированы следующие процессы:
Сервисы — фактически, каталог сервисов для разных организаций. Сложность заключалась в том, что помимо указания организации в сервисе, необходимо было реализовать возможность указывать рабочее время сервиса, а также нерабочее время. Сотрудники обслуживаемых организаций получили возможность входить в easla.com и получать доступ к процессам аутсорсинговой компании, иными словами, самостоятельно регистрировать инциденты и изменения.
Инциденты – простое управление инцидентами для разных организаций. Причем, список организаций в инциденте формируется на основании эксплуатируемых сервисов. Очень удобно.
Изменения – простое управление изменениями для разных организаций.
Звонки – автоматическая регистрация входящих звонков с помощью asterisk. На сервере asterisk был написан скрипт, который, используя SOAP, регистрирует каждый вх. звонок в easla.com с распознаванием пользователя по номеру телефона. Каждый вх. звонок обладает действием, которое может на основании звонка зарегистрировать инцидент.
Таким образом, в настоящий момент easla.com используется для «айтишных» процессов двумя принципиально разными организациями. В одной запущены процессы отдела, в другой – всей организации.
Описанные «айтишные» процессы опубликованы для использования. Любой администратор зарегистрировавшись на сайте easla.com может их заимствовать и использовать как есть или «допилить» под себя.
Развитие
Так как архитектура системы отнюдь непростая и тестировать ее довольно сложно, сейчас ведутся работы по исправлению хитрых «багов» и добавлению полезных «плюшек», на которые раньше не было времени.
Недостатки easla.com в том, что пока нет документации и периодически всплывают ошибки связанные с интерфейсом и дизайном. Как обычно бывает – не хватает рук и времени.
В планах, разработка desktop/server клиента для прозрачной синхронизации файлов, разработка модулей или макросов к приложениям Microsoft Office и Autodesk AutoCAD для синхронизации значений атрибутов с содержимым документов, разработка dashboard и прочие вкусности.
Итоги
В принципе, easla.com может быть хоть сейчас использована для автоматизации любых бизнес-процессов: CRM, PDM и других страшных слов. Использование ее как HelpDesk только частный случай. Предлагаю всем интересующимся указанными вопросами попробовать систему в действии. Обратная связь с конструктивной критикой, предложениями и рекомендациями приветствуется!
P.S. Публикация получилась сугубо обзорная. Если easla.com заинтересует хабра-общественность, то могу написать небольшой цикл статей о том, как настраивать систему, так сказать, взгляд на easla.com глазами администратора.
Автор: Alxdhere