В данном топике я постараюсь перемешать реальную историю с функциональным описанием системы. И даже попытаться объяснить что, как и почему так получилось.
Чуть больше года назад я начал разрабатывать систему OTMS. Сперва это был простенький opensource helpdesk. Работал я тогда системным администратором-разработчиком. Системный администратор в провинциальном городишке — сотрудник, который выполняет много различных IT работ, зачастую даже не относящихся к системному администрированию. По-простому это называется — компьютерщик-программист. Основной моей работой была поддержка серверов: DNS, хостинг, почта. Radius и биллинг сервера к тому времени я благополучно сбросил с себя на другого сисадмина. Вторым моим занятием была разработка интернет-магазина. Разработка закончилась ничем, так как заказчик-директор потерял всяческий интерес к продолжению разработки. И тогда же я начал делать OTMS. Для начала я переделал уже существующий ранее мною же написанный helpdesk к более современному виду, добавив MVC паттерн. Далее самым главным решением было добавить объекты.
Объекты и Задачи
Объекты — любые ресурсы, которыми управляет компания в ходе своей работы. Ну самое простое применение объекта — клиент. Почти любая компания строит свою работу вокруг понятия «клиент». К клиенту привязываются задачи, для клиента оказываются услуги и т.д. Также объектами могут служить и другие ресурсы, например, сервера. Сервер ломается, над сервером ведутся работы, сервера меняются. Всё это задачи. Вокруг такой структуры «объект — задача» у меня и появилось куча идей, как можно было бы далее развивать систему. И даже то, что существовали другие решения: redmine, jira, otrs и прочие меня не испугало. В любом случае эти решения выполняли немного другие задачи, всё это системы ведения и управления проектами. Да это тоже helpdesk-и, но с другой спецификой.
Кстати, OTMS — object and task management system. Я не стал долго ломать голову над названием.
Читать полностью »