Как вылечить microsoft project
Я хочу поделиться своим опытом использования MS Project для управления проектами по разработке программного обеспечения. Я уже лет 10 занимаюсь управлением проектами,
и в результате у меня родилась некоторая методология использования MS Project, которая позволяет получить от него немалую пользу и при этом меньше зависеть от его недостатков.
Небольшое введение
Вся методология — это просто набор простых методов и рекомендаций по использованию MS Project для решения прикладных задач руководителя проекта. Сразу оговорюсь, что методология не претендует на универсальность, и применима только при некоторых ограничениях, которые я буду упоминать по ходу повествования.
Для начала, давайте вспомним, что обычно требуется от руководителя проекта. Для опытных руководителей это очевидно, а начинающим (или только собирающимся стать руководителями) будет полезно лишний раз вспомнить. Итак, проект по разработке программного обеспечения — это создание некоторое уникального продукта. На разных этапах жизненного цикла проекта от РП требуется решать различные задачи.
Перед началом проекта
Перед началом проекта от руководителя проекта обычно требуется ответить на два вопроса:
- сколько проект займет времени
- сколько проект будет стоить
При этом важно понимать, что никого не интересует ответ вида «не раньше чем через полгода». Требуется как раз оценка сверху.
Примечание. Мне никогда не приходилось иметь дела с явными денежными оценками проекта, и, как я сейчас понимаю, это серьезное упущение. Все проекты, которыми я руководил, исполнялись сотрудниками компании. Команда проекта формировалась на всё время проекта, некоторые специалисты привлекались на определенное время. Фактически, от меня требуется оценка количества требуемых исполнителей, а также сроки их привлечения. Как мне кажется, это достаточно типичная ситуация для компаний, занимающихся разработкой ПО. В итоге все сводится к оценке трудозатрат, которая, с использованием эмпирических формул, превращается в оценку стоимости проекта. Как видим, присутствует прямая зависимость стоимости проекта от его сроков.
В процессе выполнения проекта
В условиях упомянутых ограничений, основной задачей руководителя проекта является обеспечить выполнение проекта в заявленный срок, а это непосредственно
влияет на его стоимость. Непредвиденные обстоятельства, которые обязательно сопутствуют любому проекту, могут привести к срыву сроков. Строго говоря, сроки проекта могут неожиданно и сократиться, но, честно говоря, я такого никогда не видел. От руководителя требуется своевременно реагировать на такие события, чтобы уменьшить негативные последствия. Единственный известный мне способ решения этой задачи — это аккуратное планирование, регулярное отслеживание надвигающихся проблем и корректирование планов.
При завершении проекта
При завершении проекта руководитель обычно оглядывается назад и подводит итоги проекта. Чаще всего требуется оценить насколько проект выбился из плановых графиков и почему это произошло.
Что умеет MS Project
Несмотря на внешнюю сложность, MS Project очень прост в идейном плане. Он оперирует тремя сущностями — задачи, ресурсы, календарь и связи между ними. По сути — это база данных, пользовательский интерфейс для создания и редактирования сущностей и минимальная, довольно простая автоматизация (то, что Project делает сам, в ответ на введенные данные).
Разберем вкратце свойства сущностей.
Задача имеет длительность, объем, назначенный ресурс и еще чертову уйму различных свойств. Если встроенных свойств не хватает, можно добавить свои — этим мы потом воспользуемся. Задачи могут быть связаны между собой различными отношениями (предшественники, последователи и т.п.).
Ресурс имеет много описательных свойств, но самое главное — для него можно
задать доступность во времени, для этого используется календарь. Ресурс может быть
назначен на задачу.
На основе этих данных Project умеет делать различные представления с использованием
фильтров, группировок, сортировок и т.п. Кроме этого он умеет по некоторому алгоритму
вычислять сроки начала и окончания задач с учетом доступности назначенных ресурсов
и связей между задачами. Вот, собственно, и почти все что он умеет.
Давайте посмотрим, какую пользу можно из этого извлечь
Как это использовать
Примечание Чтобы было понятнее, я уточню некоторые общие свойства проектов,
с которыми я работал. Итак, речь идет о проектах по разработке программного обеспечения,
которые состоят из нескольких этапов. В конце каждого этапа мы должны получить некоторый
осязаемый результат, который будет предъявлен заказчику, поэтому для нас важно оценить
срок не только проекта в целом, но и каждого этапа. Повторяю, единственный вид ресурсов
который требуется — это люди, причем мы не нанимаем специалистов со стороны, а используем
возможности уже работающих сотрудников.
Подготовка плана
Итак, перед нами лежит техническое задание, и требуется дать ответ на три вопроса:
- Сколько времени займет этот проект?
- Сколько (и каких) специалистов для этого потребуется?
- Какие примерно трудозатраты ожидаются по этому проекту?
Для этого мы готовим прикидочный план выполнения проекта в MS Project. Т.е. просто последовательно выписываем задачи, которые необходимо выполнить. Методика превращения техзадания в набор задач — это отдельная история, я не буду на ней сейчас останавливаться.
Подготовка плана выполняется в несколько этапов:
- Готовим список задач
- Выставляем зависимости между задачами
(результат какой задачи необходим для перехода к следующей?). - Назначаем исполнителей задач
- Выравниваем загрузку ресурсов
- Балансируем то, что получилось
Общие рекомендации
При подготовке плана придерживаемся следующих рекомендаций:
- Не используем суммарные задачи для декомпозиции.
Все задачи помещаем в один линейный список. Сначала это может показаться неудобным,
но зато избавляет от многих проблем в дальнейшем. Для управления структурой задач
используем настраиваемые поля (см.ниже). - Очень часто для управления зависимостями задач используют Drag&Drop. Когда задач много это быстро становится неудобно. Я рекомендую в этом случае не использовать перетаскивание, а явное указывать номера задач-предшественников. для этого можно добавить в таблицу столбец «предшественники» и вписывать номера задач вручную.
- Срок каждой задачи не должен превышать двух недель.
Если срок задачи превышает неделю — это уже повод задуматься о её декомпозиции. Я придерживался очень простой методики оценки: примитивная задача — 2 дня, средней
сложности — 1 неделя, сложная задача — 2 недели. При этом сложных задач не должно быть много. Такой подход дает возможность подготовить оценочный план довольно быстро.
С одной стороны, полученная оценка, конечно, не будет точной, но, с другой стороны — а какая из них точная? По опытку практического применения могу сказать, что на
больших проектах погрешности оценок отдельных задач обычно нивелируются, а на малых часто можно (и нужно!) использовать и более точные оценки. - Всеми силами избегаем задач, у которых несколько исполнителей. Для каждой задачи должен быть назначен только один исполнитель. Двух исполнителей имеет смысл назначать
только если они действительно работают вдвоем (например, вы практикуете парное программирование). В прочих случаях лучше декомпозировать задачу. - При назначении исполнителей руководствуемся их профессией и квалификацией, пока не беспокоясь о равномерности загрузки.
- Используем суммарные задачи для разделения задач на этапы. Ставим зависимости между этапами, чтобы они шли последовательно. Разделение на этапы пока достаточно приблизительное.
Список задач, разделенный на этапы
Балансировка проекта
Самым главным в методике является именно балансировка. Цель этого процесса — подготовить план, в котором работы достаточно равномерно разделены между исполнителями на всем протяжении.
После первичной подготовки плана обычно получается полное безобразие, а не проект. Поэтому начинаем приводить его в порядок. Приведение в порядок заключается в ручной балансировке назначений исполнителей и разделений на этапы. Для этого используем группировку задач по исполнителям, чтобы увидеть как разложились задачи. Для удобства просмотра рекомендую сортировать задачи по дате начала.
Группировка задач по исполнителям
Примечание. Теоретически, для оценки загрузки полагается использовать графики
загрузки пользователей. Эти графики хороши (наверное) для начальства, когда они
оценивают готовый проект. Но они непригодны на этапе создания плана, так как показывают
что все плохо, но совершенно не дают информации почему это так и что можно сделать.
Дальше начинается магия балансировки. Требуется минимизировать сроки выполнения каждого этапа путем обеспечения более-менее равномерной нагрузки на всех участников проекта. Для этого мы выполняем следующие действия:
- Сменить исполнителя задачи.
Это имеет смысл сделать, если мы видим, что у одного исполнителя большой хвост задач,
а у другого есть явные «дыры», причем он может взять на себя некоторые работы у
первого. - Перенести задачу в другой этап.
Задача, которая приводит у удлинению срока этапа, но при этом не является необходимой
для получения результата этапа может быть перенесена на этап позже. И наоборот,
если в этапе присутствуют «дыры» в загрузке исполнителей, а изменить исполнителей
не получается, то можно попробовать взять задачи из следующего этапа.
Делать все это, к сожалению, приходится вручную, выполняя выравнивание загрузки ресурсов после каждого изменения. Несмотря на кажущуюся сложность, этот процесс обычно занимает конечное время. Проект на год из 8 участников, разбитый на 4 этапа я приводил в порядок менее чем за час.
Теперь еще раз внимательно смотрим на проект, убеждаемся, что связи между задачами расставлены правильно, что ничего не забыто, а назначения исполнителей соответствуют их специальностям и квалификации.
Учет рисков
Теперь — последний штрих: учет рисков. Честно признаюсь, я не занимался серьезным управлением рисками, но учитываю возможность возникновения определенных форсмажоров (таких как болезни исполнителей, забытые работы и т.п.). Для этого я добавляю в каждый этап фиктивную задачу с минимальным приоритетом, под названием «прочие работы» для каждого ресурса. После выравнивания ресурсов эти задачи оказываются в конце этапа. Длительность этих задач зависит от вероятности возникновения и степени вляния рисков, она зависит от способа определения оценок длительностей задач, здоровья членов команды и степени паранойи руководителя проекта. Обычно я выставлял длительность «прочих работ» примерно от трети до четверти длины этапа.
В результате всех перечисленных манипуляций у нас получается план выполнения проекта, с которым можно работать.
С этим планом мы можем:
- Назвать сроки выполнения проекта и его этапов. Аргументированно и с высокой степенью
достоверности. - Оценить примерные трудозатраты по проекту
Примечание. Часто случается так, что срок выполнения получается довольно большой, и возникает резонный вопрос, можно ли его уменьшить за счет привлечения дополнительных исполнителей. Для того чтобы ответить на этот вопрос, я балансировал новый план, используя тот же набор задач, но изменяя состав исполнителей. Ответ не получался мгновенно, но это не занимало много времени.
Работа с планом
Когда проект запускается в работу, исходный план, который использовался для оценки, можно использовать и для отслеживания выполнения проекта. От руководителя проекта требуется регулярно выполнять следующие действия:
- Выдавать задания исполнителями
- Отмечать выполненные задания в плане
- Корректировать план в случае значительных отклонений
Выдача заданий исполнителями может выполняться по разному. Можно разбить выполнение на короткие итерации, формировать пул задач на итерацию и по окончании итерации отмечать результаты. Можно сразу озвучить лнителям набор задач на этап, выдать каждому по экземпляру диаграммы Ганта и периодически опрашивать о прогрессе. Можно использовать интеграцию MS Project и TFS и загрузить проект непосредственно в TFS. Суть не в средствах. Главное — это регулярное обновление плана. Я делаю это примерно раз-два в неделю. Это дает возможность достаточно быстро увидеть проблемные участки.
Для определения проблемного участка удобно использовать различные группировки — по исполнителями, по компонентам и др. Часто может оказаться, что проект в целом идет даже с опережением, но в определенном разрезе наблюдается отставание, например один из разработчиков неожиданно уткнулся в серьезную системную проблему, которая привела к отклонениями. Использование только средней метрики не покажет этой проблемы — она всплывет только в конце этапа, когда что либо делать будет уже поздно.
Отслеживание выполнения с группировкой по компонентам
Примечание. Обычно я не двигаю задачи по календарю, а только отмечаю насколько они выполнены. Отклонение от плана я отслеживаю по отклонению суммарной задачи проекта от текущего момента.
Есть другая стратегия — внесение изменений в сроки задач, «выталкивая» невыполненные задачи вперед. При таком подходе для отслеживания отклонений от плана можно использовать другую полезную функцию MS Project — базовый план. Базовый план — это просто сохраненный снимок состояния задач. Его можно сделать в начале проекта. Для сравнения текущего плана с базовым, открываем «диаграмму Ганта с отслеживанием». Для динамичного плана, когда порядок выполнения задач часто меняется, это может оказаться неудобным, поэтому я вставляю в проект контрольные точки, отражающие некоторые важные результаты проекта, и отслеживать отклонения от базового плана только для них.
Диаграмма Ганта с отслеживанием
Управление структурой задач с помощью пользовательских полей
Я категорически рекомендую не использовать суммарные задачи в MS Project для функциональной декомпозиции или категоризации задач. Дело в том, что иерархия задач в MS Project сильно завязана на их последовательность. А часто хочется посмотреть на задачи в разной последовательности, при этом вся структура «рассыпается». Для управления структурой задач я рекомендую использовать Пользовательские поля. MS Project имеет предопределенный набор полей с неопределенным заранее поведением, которые мы можем использовать так, как нам удобно. Например, для разбивки задач по компонентам нужно на основе текстового поля Текст1 создать поле Компонент и задать для него список значений, соответствующий компонентам системы.
Создание пользовательского поля
После этого мы получаем возможность указать для каждой задачи компонент, к которому она относится, и, используя группировку задач по компонентам, отслеживать как идут дела.
Группировка задач по компонентам
Пользовательские поля позволяют разделять задачи по нескольким категориям, например, я разделял задачи по типу работ: Разработка, Тестирование, Документирование.
Упомяну для любопытных, что в MS Project также можно задать правила рисования диаграмм на основе свойств задач. При желании, можно сделать так, что задачи по разным компонентам будут иметь разные цвета, причем цвет будет определяться только свойством задачи, его не нужно задавать вручную для каждой задачи. Такие настройки не требуют написания сриптов, а делаются штатными средствами настройки диаграмм.
Использование пользовательских полей, а также встроенные в MS Project функции фильтрации, сортировки и группировки задач позволяют получить самые разные представления, которые позволяют получить ответы на многие вопросы, которые возникают у руководителя проекта.
Завершение проекта
В конце проекта мы получаем план, в котором все задачи выполнены. Обычно я стараюсь сохранять также и исходный план, хотя бы в качестве базового. Честно говоря, на этом этапе от MS Project мало проку, так как интересуют не плановые значения, а фактические. Какие-то решения этой проблемы предлагает MS Project Server, там есть возможность учитывать фактические трудозатраты, но это уже за пределами данной статьи.
Заключение
Я попытался обобщить свой опыт использования MS Project для практического решения задач, которые возникали передо мной, когда я руководил проектами по разработке ПО. Описанная методика не претендует не универсальность, но она, как мне кажется, достаточно проста и логична, при этом позволяет решать практические задачи руководителя проекта.
Использование этого подхода позволило мне успешно и в срок завершить не один проект.
Правда, случались и сбои. Это происходило, как правило, тогда, когда плохо была проведена подготовительная часть проекта, а именно — постановка задачи. Т.е. в результате проекта получалось не совсем то, что требовалось, а понимание этого приходило слишком поздно.
Наверняка я что-то упустил, не стесняйтесь задавать вопросы.
Источник
Майкрософт Проджект (Microsoft Project) – это комплексное программное обеспечение – система управления проектами и способ оптимизации управления портфелями, который позволяет планировать и контролировать проектную деятельность организаций. Для этого применяются встроенные шаблоны, инструменты для разного уровня аналитики и статистики, средства управления рабочим временем и т. д. В статье даётся описание функций и более подробно рассказывается о том, что такое Ms Project, как работать в программе, и как пользоваться всеми Microsoft Project-возможностями.
Общие характеристики и место продукта среди конкурентов
Начиная с 2007 года, каждая новая версия Ms Project выходит раз в три года. Таким образом, последней на данный момент является приложение версии 2016 года с подпиской на «Office 365», совместимое с Windows 10, 8.1 и 7. По сравнению с другими аналогичными программами Ms Project считается самой распространённой и «лёгкой», относящейся к начальному уровню программного управления проектами с классическим стандартным офисным интерфейсом. На рынке однопользовательских и малых решений программный продукт занимает порядка 80% (его использует около 20 млн. человек).
Считается, что в качестве интегрированного набора методов, процессов и средств для планирования и контроля проектов Ms Project чаще применяется при реализации относительно небольших проектных замыслов. Однако существование нескольких платных вариантов – базового, профессионального и расширенного – при выборе наиболее полного функционала позволяет значительно расширить возможности программы по сравнению с базовой версией.
Тем не менее, конкуренты – аналоги Ms Project, увеличивая свои конкурентные преимущества, часто «отстраиваются» именно путём масштабирования средств стоимостного и ресурсного планирования и обеспечения организации многопользовательской работы.
Среди таких программ, ориентированных на крупные проекты, можно выделить русифицированный Open Plan.
Ещё одним направлением «отстройки» является специализация продукта. Среди такого программного обеспечения популярна Primavera, получившая распространение в сфере инженерных и строительных проектов как средство календарно-сетевого планирования, позволяющего учитывать финансовые, материальные и трудовые ресурсы в средних и крупных проектах. Программный облачный инструмент Basecamp считается главным конкурентом в сегменте ультра-лёгких управленческих решений. При этом Microsoft тоже с 2013 года предлагает облачную версию своего продукта.
Кроме облачного приложения, под маркой Project доступны несколько продуктов:
1. Project Standard позволяет осуществлять индивидуальное планирование для небольших проектов.
2. Корпоративное управление осуществляется с помощью специальной платформы, включающей:
- собственно Project Server,
- корпоративный вариант Project Professional, где к возможностям версии Standard добавлены средства совместной работы (Project Server и SharePoint Foundation / Server),
- технологию Web-интерфейса отчётности исполнителей о ходе выполнения задач, для просмотра портфелей проектов и другой совместной работы (Project Web Access).
Основой почти монопольной популярности продукта Microsoft стало то, что он представляет часть семейства Ms Office, что даёт возможность:
- проще осваивать управление инструментов в привычной среде продуктов Ms Office (очевидно стилистическое сходство интерфейса Project с Excel),
- настраивать Ms Project-формулы в стиле формул Excel,
- адаптировать продукт под особенности своего бизнеса, путём программирования либо приобретения готовых решений на базе Microsoft.Net или Visual Basic.
Чтобы уменьшить число проблем, связанных с технической поддержкой, Microsoft (например, через программу Microsoft ISV Royalty) стимулирует приобретение у партнёров готовых решений, компенсируя клиентам при этом разработку отраслевых решений.
Задачи и возможности программы
Работу в Microsoft Project рекомендуется начинать с освоения проектного подхода как такового – ознакомления с его принципами и методами проетирования. Это нужно для того, чтобы правильно пользоваться инструментов: разделять крупные проекты на части, корректировать временные оценки, учитывать и закладывать риски, отслеживать командную работу и пользоваться мотивационными приёмами. В учебном пособии, выпущенном в 2013 году Министерством образования РФ для освоения Project 2010, первые главы посвящены введению в основы проектного управления – технике планирования и построению «проектного треугольника» («время-стоимость-объём работ»).
В случае реализации проектного подхода программа Project помогает решать следующие задачи:
- Пошагово разрабатывать проект, пользуясь интеллектуальными подсказками на разных уровнях. Например, рядом с номерами задач появляются заметные пиктограммы-индикаторы, которые информируют о дополнительных параметрах задачи, если навести на них курсор. А прогресс задачи (при наличии клиента клиенте Project Online) можно наблюдать непосредственно на временной шкале.
- Создавать задачи, распределять ресурсы, указывать сроки выполнения и получать модель, которая будет максимально приближена к реальности.
- Создавать сетевую диаграмму проекта, то есть указывать связи задач и приоритетов с выравниванием ресурсов по мере реализации проекта.
- Присваивать иерархические коды структур для ресурсов и задач.
- Использовать консолидированный анализ групп проектов и общий пул ресурсов, что позволяет оптимизировать проектный план на уровне организации в целом.
- Рассчитывать критический путь.
- Представлять с помощью графических индикаторов проблемные задачи.
- Менять указанный период выполнения задач в случае необходимости.
- Анализировать как текущее состояние дел, так и тенденции развития проекта с помощью автоматизированных средств подготовки отчётов (причём, программа позволяет запомнить промежуточное текущее состояние проекта, чтобы вернуться к его анализу позднее).
- Создавать шаблоны проектов.
- Добавлять макросы и VBA-программы.
- Моделировать варианты любых решений (например, по смене схемы финансирования, замене механизмов и поставок и др.), а также анализировать последствия гипотетического принятия той или иной модели.
Для работы в программе используют понятия «Задача», «Ресурс» и «Назначение». Для достижения цели проекта работа разбивается на задачи. Понятие «ресурс» чаще применяется к сотруднику, но может относиться и к недвижимости, оборудованию, материалам. В Microsoft Project назначения возникают в тот момент, когда на выполнение задачи выделяются ресурсы. Именно назначения определяют объём необходимого на решение задач времени и, как следствие, – общее время проекта. Для отображения, анализа и ввода существуют т. н. представления задач (Диаграмма Ганта, Форма задач и др.) ресурсов (График ресурсов, Лист ресурсов) и назначений (например, Использование ресурсов), которые бывают графическими, табличными и представлениями форм.
Чтобы на одном экране полнее отобразить необходимую информацию, вместо одиночного (обычного) режима представлений путём установления «флажка» в меню, выводят комбинированный режим. В этом случае экран разделяется по горизонтали, что даёт возможность видеть одновременно два представления.
Разделение работы по проекту формирует структуру декомпозиции работ, в которой задачи представлены разными типами:
- Отдельной задачей.
- Суммарной задачей (фазой), состоящей из группы связанных задач.
- Вехой – опорной отметкой – точкой важного события, по которой контролируют ход выполнения проекта.
- Повторяющейся задачей, регулярно возникающей по ходу проекта (например, «утренние планёрки»).
Начиная с версии Project 2010, задачи можно планировать как в автоматическом, так и в ручном режимах, помещая, в этом случае, задачу в любое место расписания.
В пакете преимуществ, которые оценили Intel, Tesla, Toyota, BMW, Kraft, 21st Century Fox, British Airways и миллионы других компаний, постоянно появляются новшества, с которыми можно ознакомиться на официальном сайте Project, в специальном русском блоге или в сообществе Facebook и Вконтакте.
Источник