Управление проектами софтовой разработки по agile С ИСПОЛЬЗОВАНИЕМ SOFTWARE EXTENSION TO THE PMBOK® GUIDE FIFTH EDITION СЕМЁНОВ ИЛЬЯ НПФ ХЕЛИКС, ДИРЕКТОР ДЕПАРТАМЕНТА ИТ
Обзор презентации Расширения PMI стандартов специфицируют базовые стандарты для предоставления большей информации о конкретных типах проектов или управлении информацией в соответствующих отраслях. Данная презентация это обзор PMBOK Software Extension – расширение PMBOK для проектов разработки программного обеспечения. Данная презентация показывается, что PMI согласна с трендами гибких методологий и адаптировала свой стандарт под специфику программной разработки. 2
Структура презентации PMBOK PMP PMI PMBOK выпуски PMBOK Группа процессов инициирования Группа процессов планирования Группа процессов исполнения Группа процессов мониторинга и управления Группа завершающих процессов Проблемы Проблемы с которыми сталкиваемся Хаотичный процесс управления проектом 3 SWX: PMBoK Software Extension Что такое SWX? Для кого стандарт? 1.2 What is a Project? 1.9 Quality Management Жизненные циклы (ЖЦ) Стандартный ЖЦ по PMBOK Iterative and Incremental Life Cycles Adaptive Life Cycles Test driven development (TDD) Highly Adaptive SD 4. PROJECT INTEGRATION MANAGEMENT 4.4 Monitor and Control Project Work 4.6 Close Project or Phase 5.4 Create WBS Agile подходы Преимущества Agile подходов 9.3 Develop Project Team 11. PROJECT RISK MANAGEMENT
PMBOK PMP PMI PMP (Project management professional) – сертификация PM, введена в 1984 г. американским Институтом управления проектами PMI (Project management institute). PMI ( - это: всемирно известная организация, объединяющая PM земного шара американский национальный институт стандартов несколько программ сертификации, утвержденных Международной организацией по стандартизации ISO 9001 организация, разработавшая стандарт PMBOK PMP и PMBOK (Project Management Body of Knowledge) американский национальный стандарт консолидированные профессиональные знания по управлению проектами набор процессов и областей знаний, общепринятых в качестве наилучшей практики источник ответов на вопросы о процессах управления проектами. инструментах и методах 4
PMBOK выпуски Pmbok 6th edition 5
PMBOK Группы процессов согласно PMBOK: 1. Инициирование 2. Планирование 3. Выполнение 4. Мониторинг и контроль 5. Завершение 6 В рамках данного стандарта управление проектами рассматривается сквозь призму 5 ключевых групп процессов и 10 областей знаний. Области знаний PMBOK: 1. Управление интеграцией 2. Управление содержанием 3. Управление сроками 4. Управление стоимостью 5. Управление качеством 6. Управление человеческими ресурсами 7. Управление коммуникациями 8. Управление рисками 9. Управление закупками 10. Управление стейкхолдерами
PMBOK. Группа процессов инициирования Разработка устава проекта Определение заинтересованных сторон проекта 7
PMBOK. Группа процессов планирования Разработка плана управления проектом Планирование содержания Определение содержания Создание иерархической структуры работ (ИСР) Определение состава операций Определение взаимосвязей операций Оценка ресурсов Оценка длительности операций Разработка расписания Стоимостная оценка 8 Разработка бюджета расходов Планирование качества Планирование человеческих ресурсов Планирование коммуникаций Планирование управления рисками Идентификация рисков Качественный анализ рисков Количественный анализ рисков Планирование реагирования на риски Планирование покупок Планирование контрактов
PMBOK. Группа процессов исполнения Руководство и управление исполнением проекта Процесс обеспечения качества Набор команды проекта Развитие команды проекта Распространение информации Запрос информации у продавцов Выбор продавцов 9
PMBOK. Группа процессов мониторинга и управления Мониторинг и управление работами проекта Общее управление изменениями Подтверждение содержания Управление содержанием Управление расписанием Управление стоимостью Процесс контроля качества Управление командой проекта Отчетность по исполнению Управление участниками проекта Наблюдение и управление рисками Администрирование контрактов 10
PMBOK. Группа завершающих процессов Закрытие проекта Закрытие контрактов 11
Группы процессов управления проектом 12
Соотношение групп процессов и областей знаний 13
Инструменты и методы PMBoK 14
Инструменты и методы PMBoK Инструменты PMBoK: Диаграмма Ганта (Gantt Chart). Диаграмма Парето (Pareto Chart). Иерархическая структура рисков (Risk Breakdown Structure, RBS). Информационная система управления проектами (Project Management Information System, PMIS). Матрица вероятности и воздействия (Probability and Impact Matrix). Матрица ответственности (Responsibility Assignment Matrix, RAM). Расписание контрольных событий (Milestone Schedule). Сетевая модель (Schedule Model). Система санкционирования выполнения работ (Work Authorization System). Система управления изменениями (Change Control System). Система управления конфигурацией (Configuration Management System). 15 Методы PMBoK: Анализ дерева решений (Decision Tree Analysis). Анализ допущений (Assumptions Analysis). Анализ ожидаемого денежного значения (Expected Monetary Value (EMV) Analysis). Анализ отклонений (Variance Analysis). Анализ сети (Schedule Network Analysis или Network Analysis). Анализ сильных и слабых сторон, возможностей и угроз (Strengths, Weaknesses, Opportunities, and Threats Analysis, или SWOT Analysis). Анализ характера и последствий отказов (Failure Mode and Effect Analysis, FMEA). Aнализ чувствительности (Sensitivity Analysis). Быстрый проход (Fast Tracking). Выравнивание ресурсов (Resource Leveling). Декомпозиция (Decomposition). Метод «операции в узлах» (метод диаграмм предшествования) (Precedence Diagramming Method, PDM). Метод Дельфи (дельфийский метод) (Delphi Technique). Метод критического пути (Critical Path Methodology, CPM). Метод критической цепи (Critical Chain Method). Метод Монте-Карло (Monte Carlo Analysis). Метод освоенного объема (Earned Value Technique, EVT). Метод оценки и анализа программ (Program Evaluation and Review Technique, PERT). Мозговой штурм (Brainstorming). Оценка «снизу вверх» (Bottom-up Estimating). Планирование методом набегающей волны (Rolling Wave Planning). Управление освоенным объемом (Earned Value Management, EVM).
Проблемы, которые не позволяют использовать жёсткие стандарты 16
Проблемы с которыми сталкиваемся С точки зрения заказчика Заказчик не даёт времени на планирование. Риски проектов не берут в расчёт. Нет возможности иметь финансовые резервы. Документация - это деньги на ветер. Главное результат. Зачем отдел тестирования, когда можно писать сразу нормальный код? Нереалистичные ожидания клиента. Недостаточное участие клиента в процессе разработки. Быстроменяющиеся планы. С точки зрения программиста Излишнее усердие разработчика. Низкое качество продуктов. 17 С точки зрения итеративных методов
Проблемы. Результат: хаотичный процесс управления проектом Результат достигаем, но как? Ошибки планирования и оценок из-за Разработка – интеллектуальный труд Производительность разработчиков колеблется в очень широких диапазонах Требования часто плохо определены Технологии меняются, развиваются 18
SWX: PMBoK Software Extension 19
SWX: PMBoK Software Extension 20 Цель нового стандарта я вижу в том, что он должен снять скепсис практиков занимающихся софтверными проектами о не применимости классического подхода PMBOK в реальной жизни. В IT отрасли до сих пор есть предубеждение что PMBOK - это обязательно тяжелый waterfall, для больших и относительно-стабильных по содержанию проектов - типа строительства, и поэтому он мало применим для очень динамично развивающихся IT проектов.
SWX: Что такое SWX? SWX состоит из: IEEE Standartd 24765:2010. System and Software Engineering - Vocabulary PMI Lexicon of Project Management Terms. IEEE Standard 12207:2008. Systems and Software Engineering - Software Life Cycle Processes. IEEE 16326:2009. Systems and Software Engineering - Life Cycle Processes - Project Management. PMI PMBOK. Итог: - Получили дополнение к PMBOK знаниями и практиками, которые могут улучшить эффективность и результативность менеджеров программных проектов, команд управления проектами и участников проектов. 21
SWX: Для кого? Audience for the Software Extension to the PMBOK ® Guide 22 Project managers; Software project managers; Functional managers; System analysts; System designers; Software architects; Software team leaders; Software systems engineers; System software developers; Application software developers; Test engineers; Verification and validation (V&V) personnel; Information systems and software security specialists; Project infrastructure personnel; IT infrastructure personnel; Web developers; IT project managers; Software process engineers; Business analysts, enterprise architects, business continuity planners, and those in related disciplines; IT CIOs, strategists, directors, analysts, solution designers, solution providers, IT security engineers, and service personnel; Program managers; Portfolio managers; Product managers; Customers; Acquirers; System integrators; and Other stakeholders who affect, or are affected by, a software project.
SWX: 1.2 What is a Project? 23 Проект – это замысле, который характеризуется следующими факторы: однократность условий в их совокупности – речь идет об особом замысле. Он отличается от повседневных работ и не повторяется; наличие цели(ей) – ясных и измеримых, которые к концу проекта должны быть достигнуты; ограничениями: ограничение по времени – временной график выполнения проекта с обозначенным началом и концом выполнения работ; ограничения финансового, персонального или другого рода – бюджет проекта, этапы; отграничение от других замыслов – проект не повторяется и отличается от процессных работ;
SWX: 1.2 What is a Project? 24
SWX. 1.9 Quality Management Safety, Security, Reliability, Resilience, Dependability, Scalability, Performance, Ease of learning, Ease of use (usability), 25 Software quality attributes that are important to software developers include, but are not limited to: Testability, Maintainability, Portability, Extensibility, and Reusability. Interpretation of error messages, Availability, Accessibility, Efficiency, Flexibility, Interoperability, and Robustness.
SWX: Ограничивающие факторы влияющие на продукт Архитектура ПО, инфраструктуры, платформы Ограничения железа Ограничения каналов связи Ограничения средств разработки софта Ограничения фреймворков, библиотек, компонентов Ограничения открытого и закрытого ПО Ограничения информационных систем заказчика Требования к интерфейсам, безопасности, надёжности, масштабируемости, производительности, качеству, поддерживаемости Ограничения команды разработки Ограничения организационной структуры Ограничения технологий Распределённая команда 26
SWX: Основной вклад SWX Адаптация 47 процессов руководства PMBOK для адаптивных ЖЦ проектов по разработке ПО. Т.к. большинство процессов PMBOK применимы к прогнозируемым ЖЦ проектов по разработке ПО. Т.к. PMBOK включает обсуждение "адаптивных", но сливает все в одну кучу с итеративным циклом и инкрементальной разработкой Т.к. PMBOK не обсуждает 47 процессов для других ЖЦ 27
SWX: Жизненные циклы (ЖЦ) 28
Стандартный ЖЦ по PMBOK 29
SWX: Жизненные циклы Водопадная модель (полностью управляемая планом) Смешанные ЖЦ разработки ПО (Итеративные и инкрементные) Высоко адаптивные ЖЦ (Agile) 30
SWX: Ключевые заявления в руководстве PMBOK Раздел 2.4 PMBOK (5 издание): ЖЦ проекта может быть от прогнозируемого или управляемого планом до адаптивного или управляемого изменениями. Как изменено в SWX: ЖЦ проекта по разработке ПО может быть от высоко прогнозируемого подхода до высоко адаптивного или гибкого. Важно: Адаптивные проекты также имеют план Прогнозируемые проекты также имеют изменения 31
SWX: Характеристики жизненных циклов проекта – ЭТАПЫ Creation of software deliverables typically requires a variety of project life cycle processes. According to ISO/IEC/IEEE Standard 12207, development of software includes the following processes (see also Figure 1 of 12207): Analyze : Software Requirements Analysis Process, Architect : Software Architectural Design Process, Design : Software Detailed Design Process, Construct : Software Construction Process, Integrate : Software Integration Process, and Test : Software Qualification Testing Characteristics of Project Life Cycles
SWX: Наложение фаз Predictive Life Cycles 33 Figure 2-2. Overlapping Sequential Phases of a Predictive Software Project Life Cycle
SWX: The Five Process Groups of the PMBOK Guide 34
SWX: Iterative and Incremental Life Cycles 35 Figure 2-4. Incremental Software Product Development
SWX: Adaptive Life Cycles 36 "A generic example of a software development method for an adaptive software project life cycle is illustrated in Figure 2-5. This is a common software development pattern, often used as a basis for agile development methods. Examples that use variations of this pattern include Scrum, eXtreme Programming, Feature-Driven Development, Test-Driven Development, and the Dynamic System Development Method."
Scrum – итеративная разработка 37 Каждая итерация – это мини проект Программирование Тестирование Документирование Планирование Анализ требований Проектирование
SWX: Test driven development (TDD) Figure 2-6. Internal Development Cycles for Adaptive Software Development 38 "Figure 2-6 illustrates the internal details of the software development cycles in Figure 2-5. Note that features are translated into requirements and that test cases are written before the code for new features is added (i.e., testdriven development). Code is added and the software is tested... The software is then refactored to improve the structure without altering the behavior."
SWX: Highly Adaptive SD 39 Figure 2-7. External Development Cycles for Adaptive Software Development "Figure 2-7 illustrates a highly adaptive software development method that produces daily demonstrations of working software for a knowledgeable customer who is involved on a continuing, daily basis during development of the software product. The customer relates a user story or scenario for a desired feature of the software. Software tea m members specify product requirements and write test scenarios for implementation of the desired feature or features. The new feature(s) are added, and the test scenarios are applied.
SWX: 4. PROJECT INTEGRATION MANAGEMENT 40
SWX: 4.4 Monitor and Control Project Work 41
SWX: 4.6 Close Project or Phase 42
SWX: 5.4 Create WBS 43
Scrum-ban – постоянное изменение улучшение 44 Scrum Роли (Product Owner / Scrum Master / Команда). Приоритезированный Product Backlog. Ограниченные по времени итерации. Демонстрации по окончанию итерации. Daily Stand-up. XP Разработка через тестирование. Парное программирование. Непрерывная интеграция. Refactoring. Частые релизы. Бережливое производство процесс непрерывного устранения потерь, (затрат, мусора). Золотая сервировка, простои. Быстрая доставка продукта. Стремление к совершенству – сокращение операций, сервировки. Обеспечение непрерывного течения потока создания ценности продукта. Всеобъемлющее тестирование. Kanban – точно вовремя Оценки задач опциональны. Можно добавлять новые задачи, в любой момент времени. Непрерывный поток задач не привязанный к итерации.
SWX: Agile подходы XP: Additional Tools and Techniques Pair Programming. Test-Driven Development. Continues Integration. Рефакторинг (Design Improvement, Refactor) Частые небольшие релизы (Small Releases) Заказчик всегда рядом (Whole team, Onsite customer) 45 Scrum Sprint, Meetings (daily stand-up meetings) Work Performance Reports ( velocity metrics and burndown and burnup charts ) Retrospectives 6.7 Control Schedule Burnup and Burndown Charts Kanban Cumulative Flow Diagrams Workflow Board with Daily Walkthrough [Also known as kanban board ] принцип "точно вовремя" (just in time);
SWX: Преимущества Agile подходов самоструктурирующиеся команды; гибкая реакция на изменения внешней среды; команда проекта заинтересована в конечном результате; план работа постоянно уточняется; нет потерь на планирование проектов в условиях изменений; вовлечение заказчика в процесс разработки продуктов. 46
Проектное управление. Процесс разработки Scrum-ban 47
Процесс тестирования 48 Кто отвечает за тестирование?
Code review & Refactoring 49
Continuous integration 50
Continuous integration 51
9.3 Develop Project Team Figure 9-2. Factors that Increase Software Project Team Effectiveness 52
SWX: 11. PROJECT RISK MANAGEMENT Figure Business and Risk Reduction Activities Prioritized in the Product Feature Set 53
Вывод Если раньше я говорил, что работаю по Scrum, Kanban, XP и частично по PMBOK, то сейчас могу сказать, что Я работаю по PMBOK Software Extension. 54