- PVSM.RU - https://www.pvsm.ru -
В продолжении части 2 [1] и части 1 [2], мы решили написать ещё одну статью, в которой хотим детально рассказать, что произошло за 2 года работы над проектом, чего мы добились, что нового реализовали, почему вообще системы заявок настолько перспективное направление. И конечно номер статьи (3) соответствует номеру версии продукта, о которой ниже пойдёт речь.
Мы поняли, что дальнейшее развитии проекта и его разработка на текущей архитектуре тянет за собой большие затраты на трудовой ресурс и производительность системы. Слишком много было «велосипеда» в нашем коде, который был «самокатом» в прямом смысле этого слова. С него было трудно упасть, так как колёса маленькие, но большой скорости развить мы не смогли уже. А ехать хотелось далеко и быстро :)
Поэтому выбор встал в сторону PHP framework, который бы по большей своей части обладал следующими критериями:
— Простота и понимание принципов работы за счёт хорошей документации и нашей идеологии
— Быстрое вхождение в разработку
— Наличие необходимых инструментов и библиотек для интеграции с необходимыми нам сервисами
— Перспективы поддержки фреймворка
— Повышение квалификации наших разработчиков
— Единый стандарт поддержки и развития системы
Так, мы поставили себе цель и добились её. За 8 месяцев был написан с нуля, используя переработанную и адаптированную бизнес модель предыдущей версии системы, целый проект.
Вы даже не представляете себе, насколько широко применение систем заявок. В теории, в организации где есть постановка задач и отслеживание их выполнения, самый примитивный вид документооборота — это и есть система заявок. Её могут использовать от пиццерий (курьерская доставка и заказы) и до конечно же IT-департаментов, которые оказывают поддержку пользователям. Именно на них мы и нацелены в первую очередь.
Из эстетических соображений — оптимизировать рабочий процесс, в направлении контроля и учёта задач — это наша ключевая задача в данном направлении.
Во-первых, это новый фреймворк, но довольно популярный, красивый и в нём из коробки доступны реализации тех механизмов, которые нам необходимо использовать в нашей системе. Во-вторых, мы хотели расширять нашу команду, а использовать узкий свой собственный фреймворк, который нигде больше, кроме нас не используется — не позволяла совесть перед нашими разработчиками. Заодно мы «убили двух зайцев» — получили общую стандартизированную систему в рамках которой всё работает и добавили +1 фреймворк в skills опыта наших коллег.
Не секрет, что в последнее время всё больше офисные сотрудники проводят времени в социальных сетях. Наша идея — развивать продукт именно в этом направлении. Ведь лучше сотрудник будет проводить большую часть времени в корпоративной ленте новостей, читая профильные темы и повышая свою квалификацию, чем смотрит котики и сиськи в общих соц. сетях. (Естественно Вы можете постить тоже самое в системе заявок). Нам очень симпатизирует Bitrix, но ввиду личных отношений наших разработчиков к архитектуре их проекта и качеству кода, мы решили вести своё направление. Мы не хотим быть их аналогом или конкурентом, мы просто занимаем своё направление в этой области.
Настолько много, что в любой адекватной офисной структурной организации есть необходимость вести учёт задач и сроков их исполнения. Тут уже либо выбирают PM-продукты, либо системы заявок, либо ToDo-блокноты, ну или в идеале CRM-системы. В этом плане ZENLIX — не является универсальным средством, но его новая версия старается максимально легко быть интегрирована в среду предприятия, благодаря различным общим сущностям. Например, слово группа заменяется, компанией либо проектом и тогда задача/заявка уже создаётся на проект.
Это самая важная часть для нас, ведь именно в ней мы расскажем о нашем процессе разработки.
Благодаря Envoy, мы имеем прекрасную возможность быстро развернуть/обновить существующую среду разработки для тестирования, к примеру API разработчику iOS-мобильного приложения.
Всё начинается с клиента. Наша команда делится на 2 группы — одна занимается развитием текущей ветки, другая — разработкой узких решений системы заявок. Часто эти границы стираются, ведь есть некоторые задачи, которые пересекаются и мы реализуем их быстрее, чем это оговорено. 65% всех идей реализации поступают от наших постоянных клиентов, от которых мы анализируем их запросы и представляем в виде плана развития проекта. Остальная часть — поступает от руководителя проекта, который чаще руководствуется своими анализаторскими способностями рынка систем заявок. Благодаря такой формуле — мы достигаем успех и признание наших клиентов. Сам процесс разработки — не является основной работой, ведь кроме него есть ещё — техническая поддержка.
Наши клиенты получают бесплатную поддержку по почте «в течении одного рабочего дня», на практике же этот показатель достигает «в течении часа». Мы очень стремимся, что бы этот показатель был максимально высокий. Это обусловлено тем, что для нас Важно понимать наших пользователей и получать в первую очередь от них информацию, что бы двигаться дальше. Удалённая поддержка осуществляется нашим техническим персоналом только по SSH, предварительно клиенты принимают небольшое пользовательское соглашение.
В новой версии мы пересмотрели подходы к организации пользователей/групп, системе уведомлений, общих разделениях структурных единиц. Теперь администратор может создать неограниченное число групп (например в соответсвии компаниям-клиентов и отделов организации, которые оказывают поддержку данным группам). Кроме того, каждой группе можно назначить своих главных пользователей, которые будут видеть в группе все заявки. Для создания заявок — ещё более гибкий подход. Мы создали систему форм заявок, благодаря которой, каждой группе или пользователю можно назначить уникальную форму создания заявок.
Это та возможность, которая реализовалась именно из запросов наших пользователей. Это прекрасный пример, когда одним пользователям важно было поле «крайний срок» на странице создания заявок, а другим — «статус» и так далее. Мы решили всех удовлетворить и сделать механизм форм создания заявок. Теперь более чем из 20-ти пунктов настраивается форма создания заявок. Кроме того, форму можно подключить как на пользователя, так и на группу пользователей. Данный функционал дополнительно даёт возможность управления правами доступа на создание заявок группам/пользователям.
Мы изменили подход от отделов пользователей и компаний клиентов в сторону групп пользователей. Это более гибкая и простая структура управления единицами пользователей. Теперь можно создать свою изолированную среду, в которой группы и пользователи не будут пересекаться, но в то же время смогу взаимодействовать в рамках своих прав на создание и обработку заявок.
В ранней версии (v.2) в качестве системы опроса новых событий мы использовали ежесекундное обращение к таблице БД. В новой версии, мы убрали эту связку и решили использовать REDIS. Теперь наш nodejs сервер подписан на redis и это даёт дополнительную стабильность и скорость в работе всплывающих уведомлений.
Аналогично, в ранней версии мы использовали наш собственный механизм обработки очереди сообщений. Раз в минуту cron запускал систему обработки очереди сообщений и производил обработку их. Такой механизм подходил только под почтовую рассылку и расширять его под pushbullet, iOS-push, SMS — было не совсем правильным. В новой версии мы использовали Laravel Queues, который полноценно справляется с этими задачами и даёт дополнительно запас на дальнейшую интеграцию с внешними сервисами.
Дополнительные статусы заявок в новой версии:
— проверка выполнения заявки — это значит, что если есть такой пункт в заявке, то заявка после статуса выполнена должна будет быть подтверждена автором заявки или супер пользователем группы что это так. Только после этого заявка получает статус выполнена и закрывается.
— выполнение несколькими одновременно — это значит что заявка будет считаться выполненной, если только все пользователи из списка исполнители её выполнят.
Во всех случаях будет работать нотификация: на почту, sms, pushbullet, webpush, ios-push. (в зависимости от личных настроек пользователя)
Это одно из немаловажных мест, в системе, которое должно максимально сокращать расстояние между Удобством и Безопасностью. Много стало возможным благодаря встроенной системе учётных записей Laravel. Но мы её доработали, для одновременного использования с LDAP. Мы использовали полноценно механизмы middleware для полного контроля доступа к методам и ресурсам системы.
Приложив много усилий к написанию кода, мы не раз возвращались к вопросу контроля использования нашего продукта и защиты от нелегального коммерческого использования. Мы даже реализовали целый механизм сверки лицензий и блокирования работы системы. Но, использование такой системы тянуло за собой ioncube + зависимость от версий PHP.
Нас всё-таки покорил принцип простоты и непривязанности использования системы клиентами. Мы уверенны в том, что наши клиенты не должны чувствовать ограничения в выборе версии PHP, закодированных файлах и постоянно быть под нашим лицензионным наблюдением. Если нам доверяют, при выборе ПО — мы доверяем нашим клиентам в их порядочности.
Мы использовали прекрасный механизм консольных команд Laravel, для стабильного получения последней версии файлов и замены их новой.
При этом так же удобно запускается проверка целостности системы, миграции баз данных и резервные копии системы.
Чат возможно использовать, как обычный мессенджер между пользователями системы, так и между пользователями-клиентами, но в последнем случае, клиенту необходимо предварительно послать запрос на поддержку. А пользователю — необходимо принять запрос. И только после оказания поддержки, в конце общения либо в любой другой момент, пользователь может закрыть чат.
Мобильное приложение, которое работает в новой версии, умеет хранить заявки локально, без доступа в инет на мобильном устройстве.
В старой версии — необходим постоянный доступ к интернет.
Одним из преимуществ использование приложения, является использование PUSH-уведомлений.
PS.
Мы были бы рады рассмотреть преложения о долгосрочном сотрудничестве больших компаний на определённый результат и цели. Мы хотим сделать наш продукт ещё лучше, но для этого необходимы инвестиции: для увеличения штата разработчиков, оборудования, рабочих мест и т.д.
Это типичная проблема с которой мы столкнулись. Слишком много клиентов, цена на продукт довольно лояльная, работы хоть отбавляй. Но мы не хотим терять текущих клиентов, но в то же время хотим выйти на более большие компании.
А для тех, кого заинтересовал проект — прошу писать на info@zenlix.com [3] и мы будем рады любому сотрудничеству.
Автор: rustem_ck
Источник [4]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/php-2/139868
Ссылки в тексте:
[1] части 2: https://habrahabr.ru/post/245155/
[2] части 1: http://habrahabr.ru/post/227277/
[3] info@zenlix.com: mailto:info@zenlix.com
[4] Источник: https://habrahabr.ru/post/303484/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best
Нажмите здесь для печати.