
- •Технологія програмування та створення програмних продуктів
- •(частина 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: Осмислення
- •Аналіз результатів
- •Управління знаннями
- •Вимоги до професійних навиків проектних ролей
- •Створення планів підготовки
- •Висновок
•Підтримка засобів обміну повідомленнями, баз даних, телекомунікацій і мереж.
•Системне адміністрування.
•Управління брандмауером (firewall); адміністрування системи безпеки.
•Обслуговування застосувань.
•Інтеграція серверів.
•Підтримка служб каталогів.
Ця область компетенції пов'язана з поряд операційних завдань, які повинні виконуватися при здійсненні проекту. Вона відповідальна за те, щоб створюване і впроваджуване рішення було узгодженим з тими, що мають до нього відношення бізнес - процесами. Її характеристики схожі з характеристиками ролевого кластера "Бізнес - процеси" (operations) MOF.
Масштабування моделі проектної групи
У своїй книзі "Rapid Development" колишній розробник програмного забезпечення майкрософтом Steve McConnell пише:
"Великі проекти вимагають організаційних методик, які формалізують і направляють інформаційний обмін. ... Всі способи організації обміну інформацією полягають в створенні якоїсь ієрархії, тобто створенні малих груп, що працюють як команди, і наступного за цим призначення представників цих груп для взаємодії один з одним і керівною ланкою."
Модель проектної групи MSF пропонує розбиття великих команд (більше 10 чоловік) на малі багатопрофільні групи напрямів (feature teams). Ці малі колективи працюють паралельно, регулярно синхронізуючи свої зусилля.
Крім того, коли ролевому кластеру потрібно багато ресурсів, формуються т.з. функціональні групи (functional teams), які потім об'єднуються в ролеві кластери.
Групи напрямів
Кожен ролевий кластер проектної групи має одну або декілька складових, створюючих ієрархічну структуру (бажано, максимально просту). Наприклад, тестувальники підзвітні менеджерові тестування.
Уцю структуру вплетені так звані групи напрямів (feature teams). Це компактні мінікоманди, утворюючі матричну організаційну структуру. У них входять поодинці або декілька членів з різних ролевих кластерів. Такі команди мають чітко певне завдання і відповідальні за питання, що все відносяться до неї, починаючи від проектування і складання календарного графіка. Наприклад, може бути сформована спеціальна група проектування і розробки сервісів друку.
У"Rapid Development" Steve McConnel писав:
"Перевагою групи напряму є баланс відповідальності і повноважень. Таку команду легко наділити повноваженнями, оскільки вона містить представників кожній із залучених сторін. Через це група враховуватиме при ухваленні рішень всі істотні точки зору, і навряд чи виникнуть ситуації, що вимагають перегляду її рішень.
З тієї ж причини команда стає відповідальнішою. У її розпорядженні є всі люди, необхідні для здійснення вірних кроків. Якщо члени групи напряму ухвалюють погане рішення, то в цьому вони не можуть винити нікого, окрім самих себе. І ця команда добре збалансована. Ви не хотіли б, щоб розробники, маркетологи або тестувальники отримали право вирішального голосу. Але від групи напряму ви зможете отримати зважену думку, оскільки вона включає представників всіх вищеназваних категорій."
40

Рисунок 2. Групи напрямів
Примітка: приведений на малюнку приклад не визначає вимог до організації груп напряму. Наприклад, не всі групи напряму повинні включати роль "Задоволення споживача"; вони повинні бути організовані відповідно до того завдання, яке на них покладається.
Функціональні групи
Функціональні групи – це групи, що існують усередині ролевих кластерів. Вони створюються у великих проектах, коли необхідно згрупувати працівників усередині ролевих кластерів по їх областях компетенції. Наприклад, в майкрософті група управління продуктом зазвичай включає фахівців з планування продукту і фахівців з маркетингу. Як перша, так і друга сфери діяльності відносяться до управління продуктом: одна з них зосереджується на виявленні якостей продукту, що дійсно цікавлять замовника, а друга – на інформуванні потенційних споживачів про переваги продукту.
Аналогічно, в команді розробників можливе угрупування співробітників відповідно до призначення модулів, що розробляються ними: інтерфейс користувача, бізнес-логіка або об'єкти даних. Часто програмістів розділяють на розробників бібліотек і розробників рішення. Програмісти бібліотек зазвичай використовують низькорівневу мову C і створюють повторно використовувані компоненти, які можуть стати в нагоді всьому підприємству. Творці ж рішення зазвичай сполучають ці компоненти і працюють з мовами більш високого рівня, такими як, наприклад Microsoft® Visual Basic®.
Часто функціональні групи мають внутрішню ієрархічну структуру. Наприклад, менеджери програми можуть бути підзвітні провідним менеджерам програми, які у свою чергу звітують перед головним менеджером програми. Подібні структури можуть також з'являтися усередині областей компетенцій. Але важливо пам'ятати, що ці ієрархії не повинні затінювати модель команди MSF на рівні проекту в цілому. Цілі всіх ролей залишаються тими ж самими, також як і відповідальність перед проектною командою за досягнення цих цілей.
Об'єднання ролей
Хоча модель проектної групи складається з шести ролей, це не означає, що команда обов'язково повинна налічувати не менше шести чоловік. Модель не вимагає призначення
41

окремого співробітника на кожен ролевий кластер. Сенс полягає в тому, що в команді повинні бути представлені все шість якісних цілей. Зазвичай, виділення як мінімум однієї людини на кожен ролевий кластер забезпечує повноцінну увагу до інтересів кожній з ролей, але це економічно виправдано не для всіх проектів. Часто члени проектної групи можуть об'єднувати ролі.
У малих проектних групах об'єднання ролей є необхідним. При цьому повинні дотримуватися два принципи. По-перше, роль команди розробників не може бути об'єднана ні з якою іншою роллю. Розробники – це творці проекту, і вони не повинні відволікатися від свого головного завдання. Наділ розробників додатковими обов'язками лише робить вірогіднішим вихід з календарного графіка проекту.
Другий принцип – це уникнення поєднання ролей, що мають зумовлені конфлікти інтересів. Наприклад, управління продуктом і управління програмою мають ті, що суперечать один одному інтереси і, отже, не повинні об'єднуватися. Менеджмент продукту має мету задовольнити замовника, тоді як менеджмент програми забезпечує готовність продукту у відведений час і в рамках наявного бюджету. У разі поєднання цих ролей виникає ризик, що зміна, що зажадалася замовником, або не буде розглянута з належною увагою, або буде прийнята без належного аналізу його впливу на проект. Представлення цих ролей різними людьми в проектній команді забезпечує рівновагу двох точок зору, що суперечать. Те ж саме відноситься до спроби об'єднання ролей розробки і тестування.
Рисунок 3. Об'єднання ролей в малих проектах
Приведена таблиця показує невдалі ("не можна") і можливі ("допустимо") поєднання ролей. Але, як і в будь-якій іншій командній діяльності, відповідна комбінація ролей залежить від самих членів команди, їх досвіду і професійних навиків.
Знак "-" на перетині стовпця з рядком означає, що поєднання відповідних ролей неприпустимо, за винятком випадків, коли це абсолютно необхідно, і коли пов'язані з цим ризики можуть бути зменшені ефективними планами їх запобігання і пом'якшення наслідків. Ясно, що є різні рівні конфліктів між ролями, що робить модель проектної групи динамічною і утрудняє об'єднання ролей. Проте на практиці поєднання ролей зустрічається нерідко. І якщо проектна група робить це обдумано і управляє пов'язаними з таким об'єднанням ризиками, виникаючі проблеми будуть мінімальними.
42