Максим Русаков
      rmy@srgroup.ru

Быстрая оценка
  ИТ-проекта
Оценить проект это:

1. Определить сроки и стоимость проекта
2. Посчитать риски проекта
3. Убедить спонсоров проекта
Фундаментальный базис
   оценки проектов
Метод аналогий

Reference Class Forecasting
        (Daniel Kahneman)
Нобелевская премия по экономике
               2002
Метод аналогий

1. Найти аналогичные завершённые проекты
2. Построить статистику по искомому параметру
3. Сравнить свой проект со статистикой
Always Reference before
                                 Forecasting
      Введение нового предмета в ВУЗах:

Проектная команда:
                         Аналогичные проекты:
    2 – 3 года
                               7 – 10 лет
                            40% прекращены
Always Reference before
                              Forecasting
   Введение нового предмета в ВУЗах:

         Проект завершился через 8 лет
Разработанный учебный план использовался редко
Статистика говорит
Затраты:
  Финальные = 2 х Планируемые
Выгода:
  Фактическая = ½ х Планируемая
Оценка ИТ-проектов
Парадигма оценки




сроки стоимость риски
Для оценки нужно

1. Основной признак для сравнения
2. Статистика проектов для сравнения
3. Выборка наиболее похожих проектов
Основной признак



= размер программы
Размер программы
1.   IFPUG
                 Функциональные
2.   COSMIC        требования

3.   MK II
4.   NESMA
5.   FiSMA
Размер программы
1.   IFPUG
                       Функциональные
2.   COSMIC              требования

3.   MK II cosmicon.com
4.   NESMA
5.   FiSMA
методология COSMIC

Размер программы = ∑ Функций

Функция = ∑ элементарных Операций
Элементарные операции
Размер ИТ-проектов
«По Закону Архимеда»
С размером определились
Как и с чем сравнивать?
Коммерческие программы
 содержат статистику для
       сравнения!
Тысячи проектов

     Ваш проект
       здесь!
Инструменты
                     моделирования
Функциональные
  требования

Нефункциональные
   требования


Условия разработки
Инструменты
                 моделирования
1.   COCOMO II
2.   SEER
3.   SLIM
4.   …
Инструменты
                         моделирования
1.   COCOMO II
2.   SEER
3.   SLIM galorath.com
4.   …
Инструменты
                      моделирования

Позволяют учесть:
 1. Нелинейный рост трудозатрат
 2. Все необходимые типы работ
Формула трудозатрат

  Трудозатраты = А * (Размер)В

A, B - параметры проекта, команды и т.п.
Трудозатраты - Размер
ТРУДОЕМКОСТЬ   20

               15

               10

               5

               0
                    0   20     40      60
 РАЗМЕР ПРОЕКТА
Northrop Grumman (USA)


Отклонение оценки сроков и трудозатрат
     от финальных значений ±2%
Быстрая оценка ИТ-проекта
        Критерий
100 : 1 это быстро
Продуктивность оценщика в день   Скорость

    0.5 FTE      ≈ (100 : 1)     Быстро
    1.0 FTE      ≈ (200 : 1)     Ещё быстрее
    3.5 FTE      ≈ (700 : 1)     Очень быстро
COSMIC
Определение функционального размера
       программы пароварки
COSMIC
Что умеет пароварка
      400



      350



      300



      250
Температура



      200



      150



      100



        50



         0
              0       5   10     15



              Время
Процесс 1


Каждые 30 секунд:
  определяем целевую температуру по графику
Процесс 1
   Каждые 30 секунд:
     определяем целевую температуру по графику
                   Режим
                    (R)

Старт процесса
     (E)
                 График T(t)
                    (R)
                               Запись целевой T
                                     (W)          ∑ = 5 ФТ
                  Остаток
                  времени
                     (E)
Процесс 2


Каждые 5 секунд:
  сравниваем фактическую температуру с целевой
  включаем / выключаем нагреватель
Процесс 2
   Каждые 5 секунд:
     сравниваем фактическую температуру с целевой
     включаем / выключаем нагреватель
                  Целевая T
                      (R)
                                               ∑ = 4 ФТ
                                   Команда
Старт процесса
                                 нагревателю
     (E)
                 Фактическая T       (X)
                      (E)
Процесс 3


Каждую 1 секунду:
  если процесс приготовления идет,
  то индикатор горит
Процесс 3
Каждую 1 секунду:
  если процесс приготовления идет,
  то индикатор горит


                                ∑ = 2 ФТ
                    Команда
  Старт процесса
                   индикатору
       (E)
                      (X)
ИТОГО
Процесс     Размер, ФТ
Процесс 1       5
Процесс 2       4
Процесс 3       2
 ИТОГО:        11
Быстро попробовали
Теперь еще быстрее…
Добавляем процесс 4
   для пароварки
Процесс 4


Каждые 60 секунд:
  перезаписываем выбранный режим работы
Выбираем более
                       крупный блок
3 процесса = 11 ФТ
1 процесс ≈ 3.7 ФТ

4 процесса = 3.7 × 4 ≈ 15 ФТ
Процесс 4
   Каждые 60 секунд:
     перезаписываем выбранный режим работы


                                           ∑ = 3 ФТ
                 Выбранный     Команда
Старт процесса
                   режим     нагревателю
     (E)
                    (E)          (X)
ИТОГО
Процесс     Размер, ФТ
Процесс 1        5
Процесс 2        4
Процесс 3        2
Процесс 4   3        4
 ИТОГО:     14       15
Оцениваем очень быстро
  Примеры из жизни
Выбираем
                  подходящий блок
1.   Функциональный процесс
2.   Формула
3.   Интерфейс
4.   Справочник
5.   Страница
6.   Бизнес-процесс
Делим блоки на
               размерные группы
1.   Мелкие
2.   Средние
3.   Крупные
4.   Очень Крупные
Определяем размер для
                  блоков из разных групп
Функциональный
    процесс
                   Авиапром    Бизнес
Мелкий               6 ФТ       5 ФТ
Средний             11 ФТ       8 ФТ
Крупный             18 ФТ      11 ФТ

Очень крупный       39 ФТ      16 ФТ
Web разработка

            Блок                  Операции             Размер, ФТ

Статическая страница                  ERX                     3

Мультимедиа                        C * (ERX)         C * 3 (C = 1,2,3)

Скриптweb objects for development effort estimation of web applications”
  “Using (Клиент)                      E                      1
           Web Engineering, Lecture Notes In Computer Science
Скрипт (Сервер)                    ERX ± R                  3±1
Запускаем пилотный проект?
По итогам
                   пилотного проекта
          Настраиваем модель
1.   Размер программы
2.   Число блоков
3.   Нефункциональные требования
4.   Условия разработки
Экстраполируем
     Блок       БЫЛО, шт    БУДЕТ, шт
Мелкий            15           55
Средний           10           30
Крупный            5           23
Очень крупный
                   2           10
Определяем
      размер программы


1000 ФТ COSMIC
Формула трудозатрат

  Трудозатраты = А * (Размер)В

A, B - параметры проекта, команды и т.п.
Трудозатраты - Размер
         20




                                             ТРУДОЕМКОСТЬ
         15
ОШИБКА
         10

         5

         0
              0        20     40        60
                              РАЗМЕР ПРОЕКТА
              БЫЛО    БУДЕТ
Подводя итог
Подводя итог

Always Reference before Forecasting:
   • Ищем ключевой признак
   • Ищем аналоги
   • Сравниваем
Подводя итог

Программу определяет ее размер:
  • Функциональные точки COSMIC
  • Более крупные блоки
Подводя итог

Параметрическая модель:
  • Использует размер программы
  • Опирается на статистику
  • Учитывает необходимые детали
Подводя итог

Трудозатраты растут нелинейно:

  Трудозатраты = А * (Размер)В

Оценка ИТ-проекта на ранней стадии. Практический опыт применения методологии COSMIC (Максим Русаков)