Планирование проекта разработки программного
обеспечения
Эффективное управление программным проектом напрямую
зависит от правильного планирования работ, необходимых для его выполнения. План
помогает руководителю предвидеть проблемы, которые могут возникнуть на
каких-либо этапах создания ПО, и разработать превентивные меры для их
предупреждения или решения. План, разработанный на начальном этапе проекта,
рассматривается всеми его участниками как руководящий документ, выполнение
которого должно привести к успешному завершению проекта. Этот первоначальный
план должен максимально подробно описывать все этапы реализации проекта.
Процесс планирования начинается, исходя из описания
системы, с определения проектных ограничений (временные ограничения,
возможности наличного персонала, бюджетные ограничения и т.д.). Эти ограничения
должны определяться параллельно с оцениванием проектных параметров, таких как
структура и размер проекта, а также распределением функций среди исполнителей.
Затем определяются этапы разработки и то, какие результаты документация,
прототипы, подсистемы или версии программного продукта) должны быть получены по
окончании этих этапов. Далее начинается циклическая часть планирования. Сначала
разрабатывается график работ по выполнению проекта или дается разрешение на
продолжение использования ранее созданного графика. После этого проводится
контроль выполнения работ и отмечаются расхождения между реальным и плановым
ходом работ.
Далее, по мере поступления новой информации о ходе
выполнения проекта, возможен пересмотр первоначальных оценок параметров
проекта. Это, в свою очередь, может привести к изменению графика работ. Если в
результате этих изменений нарушаются сроки завершения проекта, должны быть
пересмотрены (и согласованы с заказчиком ПО) проектные ограничения.
Конечно, большинство руководителей проектов не думают,
что реализация их проектов пройдет гладко, без всяких проблем. Желательно
описать возможные проблемы еще до того, как они проявят себя в ходе выполнения
проекта. Поэтому лучше составлять "пессимистические" графики работ,
чем "оптимистические". Но, конечно, невозможно построить план,
учитывающий все, в том числе случайные, проблемы и задержки выполнения проекта,
поэтому и возникает необходимость периодического пересмотра проектных
ограничений и этапов создания программного продукта.
План проекта должен четко показать ресурсы,
необходимые для реализации проекта, разделение работ на этапы и временной
график выполнения этих этапов. В некоторых организациях план проекта
составляется как единый документ, содержащий все виды планов, описанных выше. В
других случаях план проекта описывает только технологический процесс создания
ПО. В таком плане обязательно присутствуют ссылки на планы других видов, но они
разрабатываются отдельно от плана проекта.
Детализация планов проектов очень разнится в
зависимости от типа разрабатываемого программного продукта и
организации-разработчика. Но в любом случае большинство планов содержат
следующие разделы.
План должен регулярно пересматриваться в процессе
реализации проекта. Одни части плана, например график работ, изменяются часто,
другие более стабильны. Для внесения изменений в план требуется специальная
организация документопотока, позволяющая отслеживать эти изменения.