суббота, 24 декабря 2016 г.

6. История о том, как написать систему управления проектами (ERP) своими руками. План проекта. Реализация

Одна из самых важных и нужных частей во всей ерп - планирование. Однако, не только важная, но и люто сложная. Заранее не готовился, по сему не знаю, сколько напишу на это тему, итак, поехали...
Одна из основных частей, а, может, и самая важная часть всей системы управления проектами - планирование. Из планирования в последствии вытекает статистика с удачами и не очень удачами, благодаря которой можно провести анализ и принять соотв. решения (привет, кэп, давно не виделись 😏).

Так вот, как это делают "цивилизованные люди" (ну, это те, которые носили широкополые шляпы в средневековье, чтобы из окна с уборного ведра прилетало не на голову, а на шляпу. а если еще и жидкое, то вдвойне веселее, что шляпа одета) можно подглядеть в том же ms project - грамотная работа с календарем + связи между задачами, которые обеспечивают возможность оч тонкой настройки что и куда, а главное, что за чем должно идти. Ну и диаграмма Ганта - неотъемлемый атрибут "олдскульного" плана проекта. Хотя, забавный факт, что половина ей и не пользуется просто потому, что когда у тебя овер много задач, на люто-разные отрезки времени, становится несколько неудобно, да и... только у платных систем все это дело работает на оценку "выше чем удовлетворительно".. Мы не претендовали на тру-программистов, поэтому это дело и не реализовывали (на самом деле лукавлю - в 1 модуле тестово реализовали, но не взлетело, по крайней мере у нас), я тоже не буду в этой ерп пока работать с графикой, но уже слепил некоторого "франкенштейна":

табличка плана проекта

Все, в общем-то просто: разбиваем проект на стадии (считай, более мелкие проекты) с учетом того, что в 1 момент времени может быть только 1 стадия, не забываем про понятие "завершенные стадии", то есть те, на которых проект будет "отдыхать", например: "отказано", "завершено" и т.п., и которые не будут мелькать в общем топе проектов без определенных манипуляций, но об этом позже.

 Далее идут задачи. Обращаю внимание, что задача 3 идет ДО задачи 2, так как имеет связь "завершение - завершение" с задачей 2 и с учетом длительности (а она больше),  дата старта получилась раньше, чем у задачи 2. Полностью всех "пенок" раскрывать/показывать пока не буду - придет время - покажу, но отмечу, что на данный момент,  в задачах не указываются даты, только длительность, все остальное высчитывается исходя из стартовой даты. Да, кто-то скажет, что это не удобно, однако, если Вы умеете составлять план - проблем, возникнуть не должно и одновременно убережет всех от "дедлоков", связанных с датами и стадиями, когда можно запросто напланировать 3 задачи, и проект будет выполняться чуть более, чем вечность (плавали - видели, долго успокаивались). Понятное дело, что еще и даты учитывать - усложнит и без того не оч веселое дерево, а Ваш слуга человек ленивый так что... Вообще, наработалась мудрость: "чем проще - тем лучше, дабы время тратили не на обучение работе, а на работу. Хотя, все всем должна быть мера". 

Внутри этот "франкенштейн" работает на обычном бинарном дереве - сначала перебираем стадии, потом задачи выстраиваем. Все делается в мускуле в процедурах /триггерах/функциях ибо так, если что, проще менять логику, да и как-то более по-человечески. 
to be продолжаться 🙏 ..наверно ☺

Комментариев нет:

Отправить комментарий