
- •Технологія програмування та створення програмних продуктів
- •(частина 2)
- •Візуальне моделювання на основі UML
- •MSF – Модель проектної групи (v. 3.1)
- •Анотація
- •1. Основи моделі проектної групи MSF
- •Основні принципи
- •Розподіл відповідальності при фіксації звітності
- •Наділення членів команди повноваженнями
- •Концентрація на бізнес-пріоритетах
- •Єдине бачення проекту
- •Прояв гнучкості і готовність до змін
- •Заохочення вільного спілкування
- •2. Ключові концепції
- •Команда соратників
- •Фокусування на потребах замовника
- •Націленість на кінцевий результат
- •Установка на відсутність дефектів
- •Прагнення до самовдосконалення
- •Зацікавлені команди працюють ефективно
- •3. Випробувані методики
- •Малі багатопрофільні проектні групи
- •Колективна робота
- •Загальна участь в проектуванні
- •4. Огляд моделі команди MSF
- •Задоволені замовники
- •Досягнення результату в рамках проектних обмежень
- •Створення продукту відповідно до специфікації
- •Схвалення випуску продукту лише після того, як всі дефекти виявлені і відлагоджені
- •Підвищення споживчої цінності продукту
- •Безпроблемне впровадження і супровід продукту
- •Ролеві кластери моделі проектної групи
- •I. Ролевий кластер "Управління продуктом"
- •Області компетенції
- •1. Планування продукту
- •2. Бізнес-віддача
- •3. Представлення інтересів замовника
- •4. Маркетинг
- •II. Ролевий кластер "Управління програмою"
- •Області компетенції
- •1. Управління проектом
- •2. Вироблення архітектури рішення
- •3. Контроль виробничого процесу
- •4. Адміністративні служби
- •III. Ролевий кластер "Розробка"
- •Області компетенції
- •1. Технологічне консультування
- •2. Проектування і здійснення реалізації
- •3. Розробка програмних рішень
- •4. Розробка інфраструктури
- •IV. Ролевий кластер "Тестування"
- •Області компетенцій
- •1. Планування тестів
- •2. Розробка тестів
- •3. Звітність про тести
- •V. Ролевий кластер "Задоволення споживача"_
- •Області компетенцій
- •1. Загальнодоступність
- •2. Інтернаціоналізація
- •3. Забезпечення технічної підтримки
- •4. Навчання користувачів
- •5. Зручність експлуатації (ергономіка)
- •6. Графічний дизайн
- •VI. Ролевий кластер "Управління випуском"
- •Області компетенції
- •1. Управління випуском
- •2. Інфраструктура
- •3. Супровід
- •4. Бізнес-процеси
- •Масштабування моделі проектної групи
- •Групи напрямів
- •Функціональні групи
- •Об'єднання ролей
- •Ескалація і підзвітність
- •Модель проектної групи немає організаційної структури
- •Зовнішня координація – на кому лежить відповідальність?
- •Висновок
- •MSF: Модель процесів
- •Анотація
- •Короткий огляд методології
- •Введення
- •Інші моделі процесів
- •Краще з двох світів
- •Базові принципи MSF
- •Єдине бачення проекту
- •Проявляйте гнучкість – будьте готові до змін
- •Концентруйтеся на бізнес - пріоритетах
- •Заохочуйте вільне спілкування
- •Ключові концепції моделі процесів MSF
- •Замовники
- •Зацікавлені сторони (учасники)
- •Що є рішення?
- •Створення базових версій
- •Рамки проекту
- •Управління компромісами
- •Трикутник компромісів
- •Матриця компромісів проекту
- •Характеристики моделі процесів MSF
- •Підхід, заснований на віхах
- •Характеристики підходу, заснованого на віхах
- •Головні і проміжні віхи
- •Віхи як точки синхронізації
- •Віхи як орієнтири виробничої відповідальності
- •Провідні ролі різних фаз
- •Аналіз пройдених віх
- •Ітеративний підхід
- •Характеристики ітеративного підходу
- •Випуск версій
- •Створення "живої" документації
- •Ранні базові версії, відкладені підсумкові версії
- •Щоденні білди
- •Управління конфігураціями проекту
- •Рекомендації для випуску версій рішення
- •Створюючи плани, передбачайте версіонування
- •Перш за все, поставляйте базову функціональність
- •Вибирайте пріоритети, враховуючи ризики
- •Здійснюйте часті ітерації розробки
- •Інституціюйте процедури контролю змін в проекті
- •Цілісний погляд на розробку і впровадження
- •Переваги інтегрованої моделі процесів
- •Зосередження на потребах підприємства
- •Покращена підтримка розробки веб-приложений
- •Покращена підтримка веб-сервісів
- •Поліпшення взаємодії з командою супроводу
- •Зауваження про використання інтегрованої моделі процесів
- •Тривалість фаз не однакова
- •Діяльність може виходити за межі однієї фази
- •Проекти, обмежені розробкою застосування або впровадженням інфраструктури
- •Фази і віхи моделі процесів MSF
- •Фаза вироблення концепції
- •Введення
- •Віха "Концепція затверджена"
- •Результати
- •Основні завдання проектної групи на фазі вироблення концепції
- •Проміжні віхи, що рекомендуються
- •Ядро проектної групи сформоване
- •Чорновий варіант концепції проекту складений
- •Фаза планування
- •Введення
- •Віха "Плани проекту затверджені"
- •Результати
- •Основні завдання проектної групи на фазі планування
- •Проміжні віхи, що рекомендуються
- •Верифікація технологій
- •Базова версія функціональної специфікації створена
- •Базова версія звідного плану проекту створена
- •Базова версія звідного календарного графіка проекту створена
- •Середовища розробки і тестування розгорнені
- •Фаза розробки
- •Введення
- •Віха "Розробка завершена"
- •Результати
- •Основні завдання проектної групи на фазі розробки
- •Проміжні віхи, що рекомендуються
- •Концепція підтверджена
- •Білд n завершений, білд n+1 завершений...
- •Фаза стабілізації
- •Введення
- •Віха "Готовність рішення затверджена"
- •Результати
- •Основні завдання проектної групи на фазі стабілізації
- •Проміжні віхи, що рекомендуються
- •Точка конвергенції
- •Точка досягнення нуля
- •Версії-кандидати
- •Контрольне тестування завершене
- •Тестування прийнятності для споживачів завершене
- •Пілотне впровадження завершене
- •Фаза впровадження
- •Введення
- •Віха "Впровадження завершене"
- •Результати
- •Основні завдання проектної групи на фазі впровадження
- •Проміжні віхи, що рекомендуються
- •Ключові компоненти розгорнені
- •Впровадження на місцях завершене
- •Упроваджене рішення стабілізоване
- •Методики моделі процесів MSF, що рекомендуються
- •Стимулювання винахідливості для розширення функціональності й обмеження ресурсів
- •Фіксування календарного графіка
- •Календарне планування на невизначене майбутнє
- •Використання паралельно працюючих компактних команд
- •Розбиття великих проектів на реальні частини
- •Отримання уроків з пройдених віх
- •Використання прототипіювання
- •Використання частих білдів і швидких тестів
- •Часті ітерації розробки і впровадження
- •Уникання розповзання рамок проекту
- •Оцінка з низу до верху
- •Інтеграція представлених проектною групою оцінок
- •Застосування A
- •Зміни в порівнянні з попередньою версією MSF
- •Висновок
- •Література
- •Анотація
- •Введення
- •Основні відомості про ризики
- •Базові принципи:
- •1. Гнучкість і постійна готовність до змін
- •2. Вільне спілкування
- •3. Отримання зі всього уроків
- •4. Розподіл відповідальності при фіксації звітності
- •Ключові концепції:
- •Найбільш ефективним є превентивне управління ризиками
- •2. Заохочення до виявлення ризиків
- •3. Постійна оцінка ризиків
- •4. Підтримка відкритого спілкування
- •5. Постійний аналіз ризиків
- •6. Кількість ризиків не характеризує реальне положення речей
- •Планування управління ризиками
- •Процес управління ризиками
- •Загальне уявлення
- •Етап 1. Виявлення ризиків
- •Введення
- •Початкові дані
- •Кроки по виявленню ризиків
- •Структурований підхід
- •Класифікація ризиків
- •Формулювання ризиків
- •Результати
- •Етап 1. Аналіз і пріоритезація ризиків
- •Введення
- •Мета
- •Початкові дані
- •Процес аналізу ризиків
- •Вірогідність ризику
- •Загроза ризику
- •Очікувана величина ризику
- •Додаткові кількісні методики
- •Результати
- •Головна таблиця ризиків
- •Інші методи проведення аналізу
- •Документ опису ризиків
- •Список головних ризиків
- •Деактивація ризиків
- •Планування ризиків_
- •Введення
- •Початкові дані
- •Заходи
- •Дослідження
- •Ухвалення
- •Уникнення
- •Перенесення
- •Запобігання
- •Пом'якшення наслідків (реагування)
- •Календарне планування
- •Результати
- •Діяльність по управлінню ризиками
- •Документування планів
- •Оновлення плану і календарного графіка проекту
- •Моніторинг ризиків_
- •Початкові дані
- •Заходи щодо моніторингу
- •Звітність про стан ризиків
- •Результати
- •Коректування ситуації_
- •Мета
- •Початкові дані
- •Дії з коректування ситуації
- •Результати
- •Витягання уроків з ризиків
- •Введення
- •Типи отримуваних уроків
- •Управління витяганням уроків
- •Контекстна класифікація ризиків
- •База знань про ризики
- •Досягнення зрілості в управлінні знаннями про ризики
- •Управління ризиками як складова частина життєвого циклу проекту_
- •Управління ризиками на підприємстві
- •Створення культури управління ризиками
- •Управління портфелем проектів_
- •Висновок
- •MSF: Дисципліна управління проектами
- •Анотація
- •Введення
- •Базові принципи MSF
- •Пр.1: Розподіл відповідальності при фіксації звітності
- •Пр.2: Наділення членів команди повноваженнями
- •Ключові концепції
- •1) Дисципліни MSF
- •2) Поняття управління проектом
- •3) Менеджмент проекту і менеджер проекту
- •4) Управління проектами і специфічні IT-процеси
- •Особливості управління проектами в MSF
- •Роль менеджера проекту покладається на кластер "Управління програмою"
- •Взаємодія "Управління програмою" з лідерами командних ролей
- •A. Функціональні групи
- •B. Групи напрямів
- •Масштабування функцій управління проектом
- •Обов'язки по управлінню проектами
- •Лідери груп
- •Кластер "Управління програмою"
- •Управління великими і складними проектами
- •Адміністративні служби проекту
- •Звітність перед замовником
- •Рекомендації проектним групам
- •Управління рамками проекту
- •Визначення рамок на етапі вироблення концепції
- •Рамки рішення і рамки проекту
- •Визначення рамок (scope definition)
- •Управління змінами рамок (scope change control)
- •Підготовка планів
- •Повторне використання документів
- •Плани проекту
- •Ієрархічна структура робіт
- •Відповідність між WBS, функц. специфікаціями і зведеним планом
- •Створення WBS
- •Рекомендації по декомпозиції роботи
- •Оцінка знизу вгору
- •Інтеграція представлених проектною групою оцінок
- •Формування реалістичних очікувань
- •Невизначеність і точність оцінок
- •Оцінюйте завдання нижнього рівня декомпозиції
- •Аналіз PERT
- •Рекомендації по складанню календарного графіка
- •1) Впорядкування завдань
- •2) Обмеження часу
- •3) Вибір пріоритетів, з врахуванням ризиків
- •Створення часових буферів
- •Висновок
- •MSF: Дисципліна "Управління підготовкою"
- •Анотація
- •Вступ
- •Базові принципи
- •Пр.1: Заохочення вільного спілкування
- •Пр.2: Інвестування в якість
- •Пр.2: Отримання уроків
- •Пр.3: Гнучкість та готовність до змін
- •Ключові концепції
- •1) Інвентаризація наявних знань
- •2) Прагнення до самовдосконалення
- •3) Підготовка повинна бути перманентним процесом
- •Випробувані методики
- •1) Планування підготовки
- •Оцінка і моніторинг професійного рівня і індивідуальних цілей
- •Відноситеся до пропусків в підготовці як до ризиків
- •Огляд процесу Управління підготовкою
- •1) Визначення:
- •2) Оцінювання:
- •3) Коригування:
- •4) Осмислення:
- •Превентивне Управління підготовкою
- •Підготовка впродовж життєвого циклу ІТ
- •Кроки процесу Управління підготовкою
- •Крок 1: Визначення
- •Скл. 1: Проектні сценарії
- •Скл. 2: Кваліфікаційні вимоги
- •Скл. 3: Професійні навики
- •Крок 2: Оцінювання
- •Оцінка знань, умінь, здібностей
- •Специфікація процесу оцінювання
- •Збір і обробка даних
- •Обробка результатів оцінювання
- •Аналіз невідповідностей
- •Створення планів навчання
- •Крок 3: Коригування
- •Навчання
- •Моніторинг прогресу
- •Крок 4: Осмислення
- •Аналіз результатів
- •Управління знаннями
- •Вимоги до професійних навиків проектних ролей
- •Створення планів підготовки
- •Висновок
2. Ключові концепції
Успішне використання моделі проектної групи MSF ґрунтується на ряду ключових концепцій (key concepts), представлених в цьому розділі.
Команда соратників
Концепція "команди соратників" (teem of peers) означає рівноправне положення кожної з ролей в команді. Це сприяє вільному спілкуванню, збільшує командну відповідальність і зумовлює рівну важливість кожної з шести якісних цілей. Щоб досягти успіху в рамках команди соратників (команди рівних учасників), кожен з її членів, незалежно від ролі, повинен нести відповідальність за якість продукту, розуміти інтереси замовника і суть вирішуваної бізнес-задачі.
Хоча соратники рівні, ухвалення рішення методом консенсусу між ролями не тотожно ухваленню рішення методом консенсусу між співробітниками. Кожен ролевий кластер вимагає певної внутрішньої організаційної ієрархії для розподілу роботи і управління його ресурсами. Керівники ролевих кластерів відповідальні за організацію роботи, управління і координацію дій команди, тоді як її члени мають можливість зосередитися на своїх індивідуальних завданнях.
Фокусування на потребах замовника
Задоволення потреб замовника – головний пріоритет будь-якої добре працюючої проектної групи. Концентрація на потребах замовника (customer-focused mindset) означає обов'язкове розуміння його бізнес-задач і прагнення до їх вирішення з боку команди. Одним із способів визначення успіху такої уваги до замовника є здатність відстежити зв'язок
кожного елементу в дизайні системи з відповідним йому початковою вимогою замовника або користувача (trace each feature in the design back to а customer or user requirement). Іншим ключовим моментом в задоволенні потреб замовника є його активна участь в проектуванні рішення і отримання його відгуків в ході процесу розробки. Це дозволяє проектній групі і замовникові успішно погоджувати свої очікування і потреби.
Націленість на кінцевий результат
Неважливо, чи займаєтеся ви, подібно до співробітників майкрософту, виробництвом "коробкового" ПО або розробляєте програми для внутрішніх цілей вашого підприємства. Важливо, як ви відноситеся до результатів своєї індивідуальної праці, чи сприймаєте ви їх як продукт.
Перший крок в досягненні гідного рівня якості – це розглядати власну роботу як самостійний проект або ж внесок в який-небудь більший проект. MSF виступає за наділ проектів індивідуальними рисами. В результаті, члени проектної групи починають відчувати себе членами команди, а не відособленими працівниками.
Наприклад, в майкрософті для досягнення цього проектам дають імена. Такий підхід допомагає виділити проект і його команду, підсилити в ній відчуття відповідальності і створити механізм, що формує в команді моральний дух. Друк назви проекту на футболках, кавових чашках і інших сувенірах допомагає створити і укріпити дух команди. Це особливо корисно в проектах, над якими працюють "віртуальні колективи", складені з працівників різних підрозділів організації.
Усвідомивши свій внесок в проект, вам буде легко зрозуміти, що всякий очікуваний від вас результат може розглядатися як кінцевий продукт. Тому, принципи і методики, які застосовують при створенні продуктів "взагалі", наприклад - MSF, можуть допомогти вам досягти успіху в цьому.
Установка на кінцевий продукт (product mindset) також означає, що отриманню кінцевого результату проекту приділяється більше уваги, ніж процесу його досягнення. З цього не виходить, що сам процес може бути поганий або непродуманий – просто він існує для отримання кінцевої мети, а не ради себе самого. Коли увага до кінцевого продукту стає
20

частиною виробничої культури, кожен член колективу починає відчувати відповідальність за результат проекту.
У своїй презентації 1991-го року колишній менеджер програми майкрософт Chris Peters так описував цю концепцію стосовно розробки програмного забезпечення:
"У кожного ... абсолютно однакова робота. Вона має одну і ту ж назву. І це – постачання продукту. Ваша робота – це не написання програмного коду. Ваша робота – це не тестування. Ваша робота – це не складання специфікацій. Ваша робота – це постачання продукту. Це якраз те, чим займається команда розробників.
Ваша роль як розробника або тестувальника вторинна. Я не говорю, що це не важливо, але це вторинне по відношенню до вашої справжньої роботи, якою є постачання продукту.
Коли ви прокидаєтеся вранці і приходите на роботу, ви говорите: "Що є пріоритетом – ми створюємо продукт або пишемо програмний код?" Відповіддю є: ми створюємо продукт. Не намагайтеся створювати код – створюйте продукт".
Установка на відсутність дефектів
В успішній команді кожен співробітник відчуває відповідальність за якість продукту. Вона не може бути делегована одним членом команди іншому або ж одним ролевим кластером іншому. Відповідно, кожен член команди повинен представляти інтереси замовника, враховуючи в ході розробки продукту його споживчі якості.
Установка на відсутність дефектів (zero-defect mindset) – це прагнення до високого рівня якості. Вона означає, що мета команди – виконання своєї роботи з максимально можливою якістю, причому таким чином, що якщо від команди зажадають поставити результат завтра, вона буде здатна поставити щось, що працює. Необхідне розуміння того, що продукт щодня повинен бути практично готовий до постачання. Це не означає постачання програмного коду, повністю вільного від дефектів. Але це означає, що продукт відповідає вимогам якості (quality bar), встановленим спонсором (sponsor) проекту 1і прийнятим проектною групою на етапі вироблення концепції.
Як аналогія, яка найкращим чином описує цю ідею, приведемо лінію по виробництву автомобілів. Традиційно робочі виконували зборку з комплектуючих і відповідали тільки за якість своєї власної роботи. Коли автомобіль сходив з лінії, інспектор перевіряв, чи достатня його якість для виставляння на продаж. Проте, у разі виявлення проблем виникали великі витрати на їх усунення, оскільки всяка переробка вже зібраної машини обходиться дуже дорого. Крім того, якість не була легко передбаченою, оскільки кількість часу на тестування автомобіля також була важко прогнозованою.
Пізніше в автомобільній промисловості якість стала "завданням номер один". Це означає, що як тільки певна операція (наприклад, приєднання дверей або установка радіо) завершена, інспектор перевіряє поточний стан зразка і упевняється, що стандарти якості дотримані. Якщо в ході всього процесу збірки зберігається належний рівень якості, потрібний значно менше часу і ресурсів на остаточну перевірку придатності автомобіля. Крім того, це робить процес перевірки набагато більш передбаченим, оскільки інспекторові потрібно лише перевірити якість збірки продукту в цілому, а не стан окремих його частин.
Прагнення до самовдосконалення
Прагнення до самовдосконалення (willingness to learn) – це прихильність ідеї невпинного саморозвитку за допомогою накопичення досвіду і обміну знаннями. Воно дозволяє членам проектної групи отримувати користь з негативного досвіду зроблених помилок, так само як і відтворювати успіхи, використовуючи перевірені методи роботи інших людей. Проведення по закінченню основних фаз проекту відкритих обговорень його стану і доброзичливий, але об'єктивний аналіз проекту після його закінчення – це ключові компоненти моделі процесу MSF. Проектні групи, що виділяють час на аналіз результатів своєї роботи і витягання з них уроків, створюють базу для постійного самовдосконалення і довготривалого успіху. Крім того, майкрософт успішно розвиває культуру самовдосконалення, включаючи аналіз уроків, що витягують, і обмін знаннями в плани індивідуальної роботи співробітників.
1 В контексті управління проектами під термином "спонсори проекта" (project sponsors) зазвичай розуміють осіб (або організації), які ініціювали проект, виділяють для проекта ресурси і затверджують його результати. Іноді "project sponsor" перекладають как "куратор проекта".
21