DETAIL_PICTURE
Доброго времени суток! С вами Михаил Тихомиров — партнер и руководитель технического направления в Income Media.

Равно как и в каждом материале нашей студии, чаще всего наши заказчики не будут раскрыты, потому что мы работаем по NDA.
Но это лирика. Причем тут форс-мажоры? К нам обратилась компания по установке стеклянных перегородок и дверей для домов и офисов.

Задача — упростить принцип работы с нештатными ситуациями на портале Битрикс24. Когда в компании количество людей или отделов начинает расти, процессы становятся более хаотичными. Заказчик хочет, чтобы процесс решения нештатных ситуаций был четким, линейным, понятным и минимизировал человеческий фактор.

Как мы это решали? Очевидно, сначала нужно выяснить два основных вопроса: какие ситуации бывают и как они решаются.
Спойлер — уже в процессе работы, как это обычно бывает, вскрылось что не все так просто.

Для начала мы разделили нештатные ситуации на 2 вида. Линейные и нелинейные. К линейным процессам мы отнесли ситуации, которые часто встречаются и решаются просто, быстро и понятно:
• Недокомплект/брак/пересортица
• Не предоставлены условия для монтажа(которые предварительно оговариваются)
• Несоответствие проемов по вине клиента или по нашей вине соответственно
• Брак субподрядчика

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

Снаружи, вроде бы, все понятно, а в чем логика?
А вот в чем. Разберем на примере одного процесса. Например, на складе случился недокомплект. Кто-то его обнаружил и передал инцидент в отдел по контролю нештатных ситуаций(да именно так, не для красного словца). Создается нештатная ситуация, выбираются ответственные лица и указываются крайние сроки. Помимо этого, нам нужно:
• Уведомить снабженцев
• Затем когда снабженцы устранят недокомплект уведомить логистов
• Логисты назначают монтаж
• Монтажник проводит монтаж
После создания нештатной ситуации создается каскадная задача на всех участников процесса. Приступить к следующей нельзя, пока не завершена предыдущая. Также в каждой следующей задаче автоматически появляется ссылка на предыдущую, чтобы узнать из нее все необходимые данные.

Поразвлекались и хватит, теперь реальный хардкор


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

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

Оказалось, что одновременно неясно, какие отделы и как будут задействованы, и ясно, что формально существует в этом некий порядок(например отдел логистики не может приступить раньше снабженцев). Именно этот момент стал самым сложным в построении логики бизнес-процесса. Нужно было построить процесс проверки на каждой итерации процесса. Сейчас это выглядит более очевидным, чем в процессе. Но просто посмотрите, как выглядит примерно четверть от всей логики.
Чтобы не «раздувать» архитектуру еще больше мы чуть упростили задачу — добавили галочки для выбора отделов, которые будут участвовать в процессе, чтобы не проводить еще одни лишние проверки.
Решение именно этой подзадачи заняло примерно 70% от всей разработки. Думаю, этим все сказано.

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

Подведем итоги


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

Ах да, еще и все это мы сделали в облачной, Карл, версии Битрикс24. Что сильно расширяет доступность для других заказчиков.
По другим вопросам интеграций Битрикс24, нестандартных решений, разработки обращайтесь к нам на почту sale@income-media.ru.