Основные теоретические положения при создании электронной модели проекта

В общем случае под проектом понимается некоторая совокупность мероприятий или работ, направленная на достижение определенной цели.

Как правило, проект характеризуется требуемым сроком завершения и ресурсами, используемыми для его реализации.

Руководство проектом — это процесс планирования, организации и управления задачами и ресурсами, направленный на достижение определенной цели, обычно в условиях ограничений на время, имеющиеся ресурсы или стоимость работ.

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

Так или иначе, руководитель любого проекта должен быть готов к тому, что на каком-то шаге между исходным планом и реальным положением возникнет некоторое расхождение. Поэтому одной из основных задач управления проектами является своевременная коррекция первоначального плана, причем с наименьшими накладными расходами.

Итак, в ходе управления любым проектом должно быть обеспечено решение следующих задач:

· соблюдение директивных сроков завершения проекта;

· рациональное распределение материальных ресурсов и исполнителей между задачами проекта, а также во времени;

· своевременная коррекция исходного плана в соответствии с реальным положением дел.

Эти три задачи тесно связаны между собой, и недостаточное внимание к одной из них неизбежно приведет к проблемам по двум другим направлениям. Например, неудачное распределение ресурсов непременно вызовет отклонение от запланированных сроков выполнения задач проекта, а неумение скорректировать исходный план может свести на нет всю выполненную работу.

Именно поэтому для управления проектами должна применяться специальная технология.

Чтобы проект оказался успешным, в его реализации должны быть предусмотрены три главные фазы:

1. Формирование плана.

2. Контроль за реализацией плана и управление проектом.

3. Завершение проекта.

Чем качественнее будут реализованы эти фазы, тем выше вероятность успешного выполнения проекта в целом.

Разумеется, достаточно опытный (или самонадеянный) менеджер проекта может посчитать, что для достижения поставленных целей вполне достаточно его опыта и интуиции, однако грамотный руководитель вряд ли решится поставить успех предприятия в зависимость от одного человека. Тем более что людям, как известно, свойственно ошибаться. Поэтому субъективные оценки, полученные умозрительно, лучше сверить с объективными результатами, полученными с помощью соответствующих методов, имеющих достаточно строгое математическое обоснование. Речь идет о так называемых методах сетевого планирования и управления проектами.

Сетевое планирование и управление проектами

По сравнению с другими математическими методами исследования операций, метод сетевого (или календарного) планирования проектов относительно молод, но его ярко выраженная практическая направленность обеспечила ему популярность сразу после рождения.

В 1956 году специалисту в области вычисли тельной техники из фирмы «Дюпон» М. Уолкеру, совместно с Д. Келли, работавшим в группе планирования капитального строительства фирмы «Ремингтон Рэд», удалось разработать простой и эффективный метод планирования работ по модернизации заводов фирмы «Дюпон». Метод был основан на построении так называемых сетевых графиков и получил название «метод критического пути», сокращенно МКП (англоязычный вариант — Critical Path Method — СРМ).

Практически в то же время в военно-морских силах США был создан метод анализа и оценки программ (как ни странно, русская аббревиатура для его обозначения так и не появилась, и продолжает использоваться англоязычный вариант — PERT, от Programme Evaluation and Review Technique). Метод был разработан в процессе проектирования корпорацией «Локхид» ракетной системы «Поларис», предназначенной для оснащения подводных лодок ВМС США. В работах по созданию ракетной системы участвовало около 4 тысяч основных подрядчиков, а технологическая цепочка насчитывала около 60 тысяч операций. Благодаря внедрению метода PERT проект удалось завершить на два года раньше намеченного срока.

Основное различие между методами СРМ и PERT заключалось в том, что в первом из них длительности входящих в проект работ полагались детерминированными, а во втором рассчитывалась вероятностная оценка длительности работ. Впоследствии оба метода были объединены под общим названием PERT-CPM (наиболее распространенный русскоязычный вариант — метод сетевого планирования и управления).

К настоящему времени технология сетевого планирования и управления уже достаточно хорошо отлажена и отлично зарекомендовала себя в таких областях деятельности, как разработка и подготовка к производству новых видов изделий, строительство и реконструкция, проведение научно-исследовательских и опытно-конструкторских работ, и, наконец, разработка программных продуктов.

Один из наиболее свежих примеров успешного применения этого метода в России — реализация проекта по восстановлению храма Христа Спасителя в Москве.

Сетевое планирование и управление содержит три основных этапа: структурное планирование, календарное планирование и оперативное управление. Ниже каждый из этих этапов рассмотрен более подробно.

Структурное планирование

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

Сетевой график состоит из элементов двух видов — работ и событий, и позволяет в наглядной форме представить структуру проекта с точки зрения входящих в него работ.

Другими словами, сетевой график отображает взаимосвязи между работами внутри проекта и порядок их выполнения.

С математической точки зрения он является направленным графом, в котором каждая работа представляется ориентированной дугой, а каждое событие — вершиной (узлом). Каждое событие определяется как момент времени, когда завершается одна работа (или группа работ) и начинается другая. Любая работа, включенная в сетевой график, считается описанной (заданной), если указаны номера событий, между которыми она заключена, и ее длительность.

В качестве примера на рис. 1.1 приведен сетевой график, отображающий (в упрощенном виде) структуру работ при создании программного продукта, состоящего из двух относительно самостоятельных модулей.

Изображенные на рисунке дуги соответствуют следующим видам работ:

· А12 — разработка алгоритма первого модуля;

· А13 — разработка алгоритма второго модуля;

Рис. 1.1. Пример сетевого графика

· А24 — программирование первого модуля;

· А34 — программирование второго модуля;

· А45 — комплексная отладка модулей;

· А56 — разработка программной документации.

Воспользовавшись еще раз приведенным примером, сформулируем основные правила построения сетевого графика.

· Каждая работа представляется одной и только одной дугой, то есть ни одна работа не должна появляться в графике дважды. При этом любая работа в случае необходимости может быть разбита на две или более частей, каждой из которых будет соответствовать своя дуга. Например, программирование модуля можно представить как две работы: ввод текста программы и ее отладку.

· Ни одна пара работ не должна определяться одинаковыми начальным и конечным событиями (в противном случае две различные работы будут идентифицированы одинаково). Возможность такого неоднозначного задания работ существует в тех случаях, когда две (или более) работы могут выполняться одновременно.

· Ни одно событие не может произойти до тех пор, пока не будут закончены все входящие в него работы. Например, комплексная отладка модулей не может быть начата до завершения программирования каждого из них, то есть событие 4 на рис. 1.1 не произойдет до завершения работ А24 и А34.

· Ни одна работа, выходящая из данного события, не может начинаться до тех пор, пока не произойдет данное событие; например, программирование первого модуля (работа А24) не может начаться, если не закончена разработка его алгоритма (то есть пока не произошло событие 3). Чтобы исключить неоднозначность, вводят фиктивную работу и фиктивное промежуточное событие. Затраты времени и ресурсов на выполнение фиктивной работы принимаются равными нулю.

Сетевой график позволяет прежде всего оценить (определить) временные характеристики проекта и входящих в него работ. В этом отношении наиболее важное значение в построении плана проекта имеют так называемые критические работы.

Работа считается критической, если задержка ее начала приводит к задержке срока окончания проекта в целом. Некритическая работа отличается тем, что промежуток времени между ее ранним началом и поздним окончанием больше ее фактической продолжительности. Другими словами, любая некритическая работа имеет резерв времени.

На основе понятия критической работы введем понятие критического пути.

Критический путь представляет собой непрерывную последовательность критических работ, связывающую исходное и завершающее события сети (сетевого графика).

С содержательной точки зрения длительность критического пути определяет минимально возможную продолжительность проекта в целом (то есть для построенного сетевого графика работ быстрее завершить проект не получится). Если вычисленная длительность критического пути вас не устраивает, необходимо пересмотреть структуру сетевого графика.

Но, как было указано выше, для построения критического пути требуется выявить все критические работы проекта. Для этого необходимо найти такие работы, для которых резерв времени равен нулю.

Расчет резервов времени для работ проекта включает в себя два этапа.

Первый этап называется прямым проходом. Вычисления начинаются с исходного события и продолжаются до тех пор, пока не будет достигнуто завершающее событие всей сети. При прямом проходе для каждого события вычисляется ранний срок его наступления Tp(i). На втором этапе, называемом обратным проходом, вычисления начинаются с завершающего события сети и продолжаются до достижения исходного события. При этом для каждого события вычисляется поздний допустимый срок его наступления Tn(i). После этого остается только найти такие работы, фактическая длительность которых совпадает с промежутком времени между их ранним началом и поздним окончанием, то есть такие, для которых резерв времени равен нулю.

Поясним технологию расчета резервов времени подробнее. Для этого предварительно рассмотрим порядок вычисления упомянутых выше величин — раннего и позднего сроков наступления события — Тр и Тп.

1. Наиболее раннее возможное время наступления j-го события Tp(j) определяется из следующего соотношения:

Tp(j) = max{Tp(i) + tij},

где i, j — номера предшествующего и последующего событий соответственно;

t. — фактическая продолжительность работы Аij;

Tp(i) — наиболее раннее возможное время наступления события i. Приведенное соотношение можно проиллюстрировать фрагментом сетевого графика, приведенным на рис. 1.2.

С содержательной точки зрения величина Tp(j) представляет собой момент времени, когда будет завершена наиболее «поздняя» из работ, влияющих на j-e событие сети.

Рис. 1.2. Вычисление наиболее раннего возможного времени наступления j-го события Рис. 1.3. Вычисление наиболее позднего допустимого времени наступления i-ro события

2. Наиболее позднее допустимое время наступления i-ro события Tn(i) определяется из следующего соотношения:

Тп(i) = min{Тп(j)-tij},

где i, j — номера предшествующего и последующего событий соответственно;

tij — фактическая продолжительность работы Аij;

Tn(i) — наиболее позднее допустимое время наступления события i. Приведенное соотношение можно проиллюстрировать фрагментом сетевого графика, приведенным на рис. 1.3.

С содержательной точки зрения величина Tn(i) представляет собой момент времени, когда должна быть начата наиболее продолжительная (и/или поздно начинающаяся) из работ, выходящих из i-го события, чтобы не вызвать задержку связанного с ней последующего события сети.

На основании раннего и позднего сроков наступления событий сети могут быть рассчитаны следующие виды резервов времени:

1. Резерв времени i-го события:

R(i) = Tn(i)-Tp(i).

Если резерв времени события больше нуля, это означает, что такое событие может быть помещено на временной оси в любой точке, лежащей в промежутке между ранним и поздним сроками наступления этого события, и это не приведет к задержке последующих событий сети.

2. Полный резерв времени работы Аij:

Rn(ij) = Tn(j)-TP(i)-t...

Смысл полного резерва времени работы заключается в том, что задержка в выполнении работы на величину, меньшую Rn(ij), не приведет к задержке завершающего события сети (т. е. не вызовет задержку завершения проекта в целом).

3. Свободный резерв времени работы Аij:

Кс(ij) = Тр(j)-Тп(i)-tij

Смысл свободного резерва времени заключается в том, что если для событияj существует возможность раннего его наступления, то увеличение длительности работы на величину, не превышающую свободного резерва времени, не приведет к задержке ни одной из последующих работ. Поясним методику определения критического пути с помощью приводившегося выше примера, связанного с разработкой программного продукта. Предположим, что входящие в сетевой график (см. рис. 1.1) работы имеют следующую продолжительность (в днях):

t12 = 6; t13 = 8; t24 = 9; t34=10; t45 = 4; t56 = 5.

При вычислении характеристик сетевого графика длительность проекта определяется без привязки к реальным календарным датам, поэтому при выполнении прямого прохода момент наступления исходного события сети принимается равным нулю, и этот момент считается наиболее ранним возможным моментом наступления исходного события, то есть Тр(1) = 0.

Соответственно, наиболее ранний возможным момент наступления второго события (для рассматриваемого примера) определяется так:

Tp(2) = Tp(l) + t12=0 + 6 = 6.

Расчетные соотношения и результаты вычислений для остальных событий приведены ниже:

Tp(3) = Tp(-l) + t13=0 + 8 = 8;

Тр(4) = max {(Tp(2) + t24),

(Tp(3) + t34)} = max {15, 18} = 18;

Tp(5) = Tp(4) + t45=18 + 4 = 22;

Тр(6) = Тр(5) + t56 = 22 + 5 = 27.

Чтобы выполнить обратный проход, то есть рассчитать наиболее поздние допустимые сроки наступления событий сети, предполагается, что для завершающего события ранний и поздний сроки равны, то есть для рассматриваемого примера

Тп(6) = Тр(6) = 27.

Расчетные соотношения и результаты вычислений для остальных событий приведены ниже:

Тп(5) = Тп(6) - t56= 27 - 5 = 22;

Tn(4) = Tn(5)-t45=22-4=18;

Tn(3) = Tn(4)-t34=18-10 = 8;

Tn(2) = Tn(4)-t24=18-9 = 9;

Тп(1) = min {(Тп(2) -t12),

(Тп(3) -t13)}= min {3, 0} = D.

Следующим шагом является расчет резервов времени для работ, входящих в сетевой график. Поскольку при анализе проектов ориентируются в основном на полный резерв времени, то мы ограничимся вычислением именно этой величины для всех работ рассматриваемого графика. Они имеют следующие значения:

Rn(12) = fn(2) - Тр(1) -1,2 = 9 - 0 - 6 = 3;

Rn(13) = Тп(3) - Тр(1) -1,3 = 8 - 0 - 8 = 0;

Rn(24) = Тп(4) - Тр(2) -124 =18-6-9 = 3;

Rn(34) = Тп(4) - Тр(3) -134 = 18 - 8 - 10 = 0;

Rn(45) = Тп(5) - Тр(4) -145 = 22 - 18 - 4 = 0;

Rn(56) = Тп(6) - Тр(5) -156 = 27 - 22 - 5 = 0.

Те работы, для которых полный резерв времени оказался равным нулю, являются критическими. Если мы отметим все такие работы на исходном сетевом графике (на рис. 1.4 они отмечены штрихами), и затем отыщем непрерывную последовательность таких работ (что для нашего примера сделать совсем не сложно), то мы тем самым определим и критический путь проекта. Чтобы вычислить его

Рис. 1.4. Критический путь проекта

продолжительность, достаточно просто сложить длительность образующих его критических работ. Для рассматриваемого примера разработка программного продукта не может быть завершена ранее, чем через 27 дней.

Теперь вернемся к работам, которые не являются критическими и, соответственно, имеют резерв времени. Какую роль играют они в планировании? Как уже отмечалось выше, такие работы могут быть смещены по оси времени в пределах имеющегося резерва. Как использовать такую возможность, зависит от условий реализации и ограничений, имеющих место для конкретного проекта. Например, при дефиците ресурсов или исполнителей резерв времени может быть использован для выравнивания их загрузки. Либо в течение резервного времени исполнитель может быть задействован для выполнения критических работ. Так, в случае с разработкой программного продукта два программиста могут (теоретически) отладить один программный модуль быстрее, чем в одиночку, обеспечив тем самым сокращение сроков выполнения проекта в целом. Однако задачи, связанные с назначением и распределением ресурсов, решаются на следующем этапе сетевого планирования — на этапе построения календарного графика.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: