Масштабируемая методика планирования и контроля работ

advertisement
Балин В.Н., Гусаров И.Ю. “Масштабируемая методика планирования и контроля работ”
Масштабируемая методика
планирования и контроля работ
Балин В. Н., Гусаров И. Ю.
В статье описывается единая методика планирования и контроля работ,
пригодная для планирования и контроля на всех уровнях, начиная от
уровня рабочей группы, и заканчивая уровнем топ-менеджмента.
Методика позволяет разрабатывать планы, устойчивые в условиях
неопределенности, гибко варьировать уровень детализации планов и
отчетов, безболезненно переходя от детальных планов и отчетов к
агрегированным, и главное - дает разработчикам конкретные
инструкции, позволяющие производить планирование безболезненно и
быстро. Планировать - просто, и скоро Вы в этом убедитесь сами.
Мотивация разработки
2
Основные понятия
2
Разработка планов
3
Карта целей
3
Список компонент
4
Контроль уровня рабочей группы
-1-
6
Балин В.Н., Гусаров И.Ю. “Масштабируемая методика планирования и контроля работ”
Мотивация разработки
При планировании и контроле работ уровня отдела возникают следующие
проблемы:
1. Иерархические планы сложно составлять – не существует общепринятой
технологии их составления. В результате, на их составление тратится много
времени и они малоадекватны реальной ситуации.
2. Планы работ часто меняются по ходу работ – оказывается, что некоторые
запланированные задачи делать не нужно, а те что нужно – пропущены.
3. Мелкие задачи (неделя) необходимы для ранней оценки реальности плана.
Однако, иерархический план сложно догнать до такой степени детальности.
Тем более, это невозможно сделать для всего крупного проекта.
4. Крупные задачи необходимы для высокоуровневого контроля выполнения,
однако без мелкого подразбиения слишком поздно становится ясно, что план
нереалестичен. В результате, крупные планы часто срываются ближе к концу
работ, что недопустимо.
5. Обыкновенно, в плане сложно разобраться без объяснений и без глубокого
понимания сути задачи.
6. Составление единого отчета о работе отдела на основании отчетов
руководителей групп представляет собой каждый раз непростую проблему надо выполнять переход от мелкого уровня детализации на крупный, и за
деревьями не потерять леса.
Перечисленные проблемы возникают по причине отсутствия общепринятой
технологии планирования и контроля, которая, с одной стороны, учитывала
потребности как планирования, так и последующего контроля работ на всех
уровнях, с другой стороны - была простой и понятной в использовании.
Предлагаемая методика призвана эти проблемы решить.
Основные понятия
Для начала, введем несколько терминов:
Цель - легко проверяемое условие, которое либо выполняется, либо нет. Условие
не может быть активностью - это условие прекращения активности, критерий
выхода. Цели могут быть зависимы, если условие одной цели не выполнимо без
выполнения условия другой цели.
Этап - самые крупные и значимые цели. По сути очень близки к фазам
традиционнных циклов разработки. В случае разработки ПО - этапы работ
практически всегда совпадут с фазами цикла “контроллируемая итерация”,
применяющегося в методологии RUP. Этапы, очевидно, зависят от всех целей,
которые на них запланированы.
-2-
Балин В.Н., Гусаров И.Ю. “Масштабируемая методика планирования и контроля работ”
Компоненты - список составных частей конечного или промежуточных
результатов. Каждая цель относится к одной или нескольким компонентам. Цель,
которая должна быть выпонена для каждой из компонент, помечается признаком
*. Например, “все компонеты успешно проходят автоматические тесты”. Всегда
присутствует компонента ALL - она означает результат в целом. Пример “успешно проходят системные тесты”. Список компонент может корректироваться
по ходу работ, не сильно затрагивая структуру плана.
Задача - активность, которая направлена на достижение определенной цели, и
ведется в рамках некоторого списка компонент. Вложенных задач не бывает.
Главное отличие предлагаемой технологии планирования работ состоит в том,
что основным предметом планирования являются не активности, а цели работ.
Планирование ведется в терминах целей, которых нужно достичь, и компонент,
из которых состоят конечные и промежуточные результаты. Цели и компоненты
независимы, и планируются раздельно, их пересечение само по себе сформирует
мелкие задачи.
Такой подход исключает планирование в стиле waterfall, и заставляет
сконцентрироваться на главном. Цели, в отличии от активностей, реже меняются,
а также впрямую отражают суть работ - цели проще в понимании, и проще в
формулировке.
Традиционная иерархия задач и их зависимости заменяется зависимостями целей
друг от друга - это позволяет гибко и просто варьировать степень детальности
плана, так как промежуточные цели можно опустить без ущерба для общей
картины. Это, вместе с фактом, что любой задаче сопоставлена своя цель, дает
нам возможность безболезненно и просто переходить от детальных
внутригрупповых планов к крупных планам уровня подразделения, решая
проблему контроля работ на всех уровнях.
Разработка планов
Процесс разработки планов прост, и начинается с создания первой версии карты
целей, и формулировки начального списка компонент.
Карта целей
Карта целей представляет собой график, где каждая цель нарисована в виде
вертикальной черты, справа от которой написано условие достижения, слева список относящихся к цели компонент, снизу - дата цели, если она определена,
сверху - приоритет цели. Цели связаны между собой горизонтальными стрелками
зависимостей (слева направо), и упорядочены по зависимостям по горизонтали.
Цель обладает следующими аттрибутами:
Условие достижения - краткое описание условия достижения цели, по
возможности - в одно предложение. Формулируется в терминах релультатов, а не
активностей. Должно качественно характеризовать результат, одного его
упоминания недостаточно. Примеры - “программный код, успешно проходящий
автоматические тесты”. Эта цель зависит от цели “Тесты с покрытием
программного кода 90%”.
-3-
Балин В.Н., Гусаров И.Ю. “Масштабируемая методика планирования и контроля работ”
Компоненты - каждая цель относится к некоторым компонентам. Если
компоненты (их сокращенные идентификаторы) не отмечены слева от черты, это
означает, что цель глобальна - относится ко всему результату в целом. Если
вместо компонент указана звездочка (*) - цель относится ко всем компонентам и
должна быть выполнена для каждой из компонент.
Приоритет - насколько срочно нам нужно достигнуть этой цели, ее важность для
нас. Этот показатель расставляется в последнюю очередь - принимается во
внимание как суть цели, так и зависимости между разными целями. Применяется
балльная шкала.
Дата (период) - некоторые цели имеют не зависящие от нас даты, к которым их
надо достичь. Другие цели имеют плавающие даты - в этом случае эти даты с
точностью до отчетных интервалов расставляются на втором этапе работы над
картой целей.
Не все цели равноправны - некоторые из них крупны и глобальны, затрагивающие
весь проект, и имеющие простой и наглядный результат. Такие важные цели
являются этапами, и рисуются длинной чертой во весь лист. Цели внутри этапа
являются промежуточными, и их необходимо подробно расписывать только на
текущий этап. Однако, если промежуточные цели на следующие этапы очевидны,
их тоже необходимо отметить.
Карта целей составляется в два этапа. На первом из них - при составлении
начальной карты целей нам не важны ни компоненты, ни даты завершения целей
(если они заранее не определены) - важны условия их достижения, и зависимости
между ними.
После того, как мы определились с целями и зависимостями, мы расставляем
целям приоритеты. Обыкновенно для того, чтобы составить реалистичный
календарный план, и определиться с приоритетами целей, необходимо иметь
первую версию списка компонент (что позволит заполнить соответсвующий
аттрибут целей на карте).
Часто (но не всегда) даты завершения этапов и целей возможно рассчитать
исходя из сложности компонент, прибегая к экспертным (PERT Estimation) или
статистическим (корелляции трудозатраты-объем) методам. Мы рекомендуем
получить, если это возможно, первую версию списка компонент перед тем, как
переходить к календарному планированию.
На втором этапе мы выполняем календарное планирование. Рисуется сетка
отчетных периодов (неделя, месяц - зависит от периодичности контроля), на
которую мы наносим цели, принимая во внимание даты целей (если они заранее
определены), приоритеты, и зависимости.
Список компонент
Часто бывает так, что достоверный список компонент на раннем этапе работ
определить нельзя. В этом случае, одной из высокоприоритетных целей является
определение стабильного списка компонент. У компонент есть следующие
свойства:
-4-
Балин В.Н., Гусаров И.Ю. “Масштабируемая методика планирования и контроля работ”
Риск - степень неопределнности, связанная с этим компонентом. Чем меньше мы
о нем знаем, и чем меньше у нас опыта в подобных вещах, тем выше риск.
Предлагается четырехбальная шкала для оценки риска.
1. В составе проектной группы есть люди с опытом разработки требуемых или
подобных компонент. Таким образом, на раннем этапе могут быть учтены
тонкие проблемы возникающие при разработке.
2. В составе группы никто не делал подобных вещей. Однако, всем понятно, как
такие вещи делать, можно выписать детальный план. Риск крупных промахов
исключен, однако возможны неожиданные (некритичные) неучтенные заранее
проблемы, которые возникнут по ходу работ.
3. Не понятно, как делать компонент. Невозможно с уверенностью сказать, из
каких элементов он будет состоять. Однако, известно, что подобные вещи
делаются другими людьми, и особых проблем для них не представляют. Также,
есть общее предстваление о подходе к реализации компонента.
4. Не выполняются предыдущие условия. Неясно, можно ли вообще такую штуку
сделать, а если можно - то как именно.
Важность - степень необходимости в компоненте для того, чтобы общий
результат был полезен.
1. Критична - без этой компоненты абсолютно ничего работать не будет,
результат бесполезен.
2. Желательна - наличие этой компоненты желательно, без нее результат
потеряет часть привлекательных свойств, ради которых ведется проект.
3. Опциональна - без нее можно обойтись, ее наличие полезно, но не критично.
Трудозатраты - прикидка трудозатрат на работы в любой метрике.
Объем - размер результата в любой адекватной метрике.
Приоритет компонента определяется в основном исходя из его важности и риска.
По сути, приоритет сигнализирует о необходимости запланировать
промежуточные цели на ранние этапы работ, а также влияет их приоритеты
целей. Также, при итеративной разработке приоритет позволяет спланировать
итерации.
Цели должны быть расставлены таким образом, чтобы снизить риск по наиболее
критичным компонентам, максимально быстро понижая общий риск проекта с
течением времени. В карте целей должен быть запланирован этап, на котором
уровень риска по крайней мере для критичных компонент не превышает двойку.
-5-
Балин В.Н., Гусаров И.Ю. “Масштабируемая методика планирования и контроля работ”
Код
Наименование
Важность
Риск
Критична
Техническая
осуществимость
Желательна
Архитектура
Опциональна
Нет опыта
Опциональна
Есть опыт
Контроль уровня рабочей группы
Для определения реалистичности плана работа должна быть разбита на мелкие
задачи. Каждая задача относится к одной цели и, возможно, нескольким
компонентам. Списки задач составляются инженерами, и проверяются
руководителями групп. Все задачи подлежат регистрации в системе JIRA.
Руководители проверяют порядок работ и соответствие задач целям, и
контроллируют достижение целей через закрытие задач. Для контроля
выполнения задач применяется агрегированные графики EV-Plan и средства
системы JIRA.
Также руководители групп целиком ответственны за составление карты
промежуточных целей, и поддержании ее в актуальном состоянии. Руководители
групп еженедельно уточняют прогноз дат выполнения целей на основании
поступающей информации.
Для контроля выполнения сроков достижения целей применяются временные
линейки, созданные в Visio. Одна временная линейка отражает этапы активных
проектов, и представляет собой долговременный план. Связанная с ней линейка
показывает цели внутри текущего этапа.
Руководитель группы ответственнен за еженедельное обновление линеек своей
группы, и составление письменного еженедельного отчета. Руководители
еженедельно информируют руководителя отдела о:
1. Изменении карты целей.
2. Изменении прогнозируемых сроков достижения целей и этапов.
3. Достигнутых и не достигнутых в срок целях и этапах.
4. Изменении рисков, функциональности и/или прочих свойств компонент и
решения в целом.
5. Прочих факторов, которые могут повлиять на планы и их выполнение.
-6-
Download