Сетевое планирование и управление проектами
Метод сетевого (или календарного) планирования проектов относительно молод, но его ярко выраженная практическая направленность обеспечила ему популярность сразу после «рождения».
В 1956 году специалисту в области вычислительной техники из фирмы «Дюпон» М. Уолкеру, совместно с Д. Келли, работавшим в группе планирования капитального строительства фирмы «Ремингтон Рэд», удалось разработать простой и эффективный метод планирования работ по модернизации заводов фирмы «Дюпон». Метод был основан на построении так называемых сетевых графиков и получил название «метод критического пути», сокращенно МКП (англоязычный вариант - Critical Path Method -СРМ).
Практически в то же время в военно-морских силах США был создан метод анализа и оценки программ (как ни странно, русская аббревиатура для его обозначения так и не появилась, и продолжает использоваться англоязычный вариант - PERT, от Program Evaluation end Review Technique). Метод был разработан в процессе проектирования корпорацией «Локхид» ракетной системы «Поларис», предназначенной для оснащения подводных лодок ВМС США.
Основное различие между методами СРМ и PERT заключалось в том, что в первом из них длительности входящих в проект работ полагались детерминированными, а во втором рассчитывалась вероятностная оценка длительности работ. Впоследствии оба метода были объединены под общим названием PERT-CPM (наиболее распространенный русскоязычный вариант - метод сетевого планирования и управления).
К настоящему времени технология сетевого планирования и управления уже достаточно хорошо отлажена и отлично зарекомендовала себя в таких областях деятельности, как разработка и подготовка к производству новых видов изделий, строительство и реконструкция, проведение научно-исследовательских и опытно-конструкторских работ, и, наконец, разработка программных продуктов.
Сетевое планирование и управление содержит три основных этапа: структурное планирование, календарное планирование и оперативное управление.
Основная цель структурного планирования заключается в описании состава и взаимосвязи технологических операций, которые требуется выполнить для реализации проекта.
В теории сетевого планирования такие операции называются работами или задачами.
Кроме того, на данном шаге требуется определить (или хотя бы предварительно оценить) продолжительности работ.
Результатом структурного планирования является сетевой график проекта.
Сетевой график состоит из элементов двух видов - работ и событий - и позволяет в наглядной форме представить структуру проекта с точки зрения входящих в него работ.
Другими словами, сетевой график отображает взаимосвязи между работами внутри проекта и порядок их выполнения.
С математической точки зрения он является направленным графом, в котором каждая работа отображается ориентированной дугой (стрелкой), а каждое событие - вершиной (узлом). Каждое событие определяется как момент времени, когда завершается одна работа (или группа работ) и начинается другая. Любая работа, включенная в сетевой график, считается описанной (заданной), если указаны номера событий, между которыми она заключена, и ее длительность.
Сформулируем основные правила построения сетевого графика:
Каждая работа представляется одной и только одной дугой, то есть ни одна работа не должна появляться в графике дважды. При этом любая работа в случае необходимости может быть разбита на две или более частей, каждой из которых будет соответствовать своя дуга. Например, программирование модуля можно представить как две работы: ввод текста программы и ее отладку.
Ни одна пара работ не должна определяться одинаковыми начальным и конечным событиями (в противном случае две различные работы будут идентифицированы одинаково). Возможность такого неоднозначного задания работ существует в тех случаях, когда две (или более) работы могут выполняться одновременно.
Ни одно событие не может произойти до тех пор, пока не будут закончены все входящие в него работы;
Ни одна работа, выходящая из данного события, не может начинаться до тех пор, пока не произойдет данное событие; например, программирование первого модуля не может начаться, если не закончена разработка его алгоритма. Чтобы исключить неоднозначность, вводят фиктивную работу и фиктивное промежуточное событие. Затраты времени и ресурсов на выполнение фиктивной работы принимаются равными нулю.
Сетевой график позволяет прежде всего оценить (определить) временные характеристики проекта и входящих в него работ.