Оценка трудозатрат при разработке ПО

Содержание

Слайд 2

Оценка трудозатрат

Рассмотрим методы прогнозирования трудозатрат, которые:
Позволяют оценивать трудозатраты на ранних этапах, в

Оценка трудозатрат Рассмотрим методы прогнозирования трудозатрат, которые: Позволяют оценивать трудозатраты на ранних
условиях неопределенности.
Позволяют учесть влияние рисков в сроках прогнозов.
Снижают влияние тенденции экспертов к систематической недооценке сложности задач.
Дают механизмы проверки достоверности сроков, основанные на метриках.
При этом, практичны и просты в применении.

Слайд 3

Оценка вариации сроков

Как учесть неопределенность в прогнозе

Оценка вариации сроков Как учесть неопределенность в прогнозе

Слайд 4

Оценка вариации срока

Оценки сроков неточны:
Эксперты часто имеют тенденцию к систематической недооценке сложности;
Присутствие

Оценка вариации срока Оценки сроков неточны: Эксперты часто имеют тенденцию к систематической
рисков не позволяет дать точных оценок;
Имея единственную оценку нельзя понять, на что заложился эксперт, когда ее давал.
Выход – давать оценки оптимистичного и пессимистичного сценариев.
Critical Chain Project Management
PERT

Слайд 5

Метод PERT Estimation

Обрабатывает три экспертных оценки срока.
L - «раньше не справлюсь точно,

Метод PERT Estimation Обрабатывает три экспертных оценки срока. L - «раньше не
даже если повезет»;
H - «успею гарантированно, даже если все риски сыграют»;
M – «наиболее вероятно успею»
Формулы PERT: PERT Estimation (μ) =( L + 4M + H ) / 6 PERT Deviation (σ) = ( H – L ) / 6
Задача уложится в срок μ+σ с вероятностью 72 %.

Слайд 6

Основа PERT Estimation

Длительность задачи - случайная величина, имеющая бета-распределение.
PERT Estimation и Deviation

Основа PERT Estimation Длительность задачи - случайная величина, имеющая бета-распределение. PERT Estimation
– матожидание и среднеквадратичное отклонение
Между крайними оценками – 6 сигм

Слайд 7

Свойства задач с независимыми прогнозами

Для суммы независимых случайных величин верно: σ = √(σ12

Свойства задач с независимыми прогнозами Для суммы независимых случайных величин верно: σ
+ σ22 + … + σn2)
Сигма суммы независимых случайных величин в процентах уменьшается при увеличении их количества:
Таким образом, чем больше в плане «независимых» задач, тем точнее суммарная оценка сроков. Погрешности планирования разных задач компенсируют друг друга.

Слайд 8

Зависимость сигмы от количества задач

Показана зависимость общей сигмы плана в процентах от

Зависимость сигмы от количества задач Показана зависимость общей сигмы плана в процентах
количества независимых задач.
Задачи имеют равные длительности и сигму 100%.

Слайд 9

Какие задачи независимы?

Независимых задач в разработке много:
Все задачи разработки, которые могут выполняться

Какие задачи независимы? Независимых задач в разработке много: Все задачи разработки, которые
независимо друг от друга и впараллель;
Все задачи, относящиеся к непересекающемуся функционалу;
Большинство заданий, возникающих при поддержке ПО (исправление дефектов, реализация feature requests, и прочее).
Прогнозы задач зависимы, если их реальные длительности зависят от одних и тех же факторов
Зависимые задачи обычно связанны связью «окончание-начало». Например, фазы разработки зависимы по прогнозу между собой.

Слайд 10

Оценки для группы задач

Для суммы случайных величин верно: μ = μ1 + μ2

Оценки для группы задач Для суммы случайных величин верно: μ = μ1
+ ... + μn;
Ожидаемое время выполнения задач просто суммируется.
Сигма для группы задач:
Суммируется для зависимых прогнозов;
Может быть оценена как корень из суммы квадратов для независимых прогнозов.
Распределение суммы случайных величин меняется, приближаясь к нормальному, при увеличении их количества.
PERT: сумма задач уже не имеет бета-распределения.

Слайд 11

Нормальное распределение

«Не справлюсь точно» (вероятность <2%) = μ - 2σ
«Успею с запасом» (вероятность

Нормальное распределение «Не справлюсь точно» (вероятность «Успею с запасом» (вероятность 98%) =
98%) = μ + 2σ
Между крайними оценками 4 сигмы

Слайд 12

PERT Estimation

PERT Deviation лишен внятного смысла для суммы задач.
«Задача уложится в μ+σ

PERT Estimation PERT Deviation лишен внятного смысла для суммы задач. «Задача уложится
с вероятностью 72 %» - для суммы задач уже не верно.
Сколько сигм надо добавить к прогнозу сроков всего проекта, чтобы успеть с вероятностью 85% («скорее всего»)?
PERT Estimation не лучше простой пары оценок «оптимистичная – пессимистичная»
Центральная оценка с весом 4 забивает крайние, и доминирует в прогнозе.
В результате, PERT на практике не позволяет работать с большой неопределенностью в прогнозе.

Слайд 13

Модифицируем формулу PERT

В предположении, что срок выполнения задачи имеет нормальное распределение:
«Не справлюсь

Модифицируем формулу PERT В предположении, что срок выполнения задачи имеет нормальное распределение:
точно» (вероятность <2%) = μ - 2σ
«Успею с запасом» (вероятность 98%) = μ + 2σ
«Normal Estimation»:
μ =( L + H ) / 2 σ = ( H – L ) / 4
Распределение сохраняется при суммировании.
Проект уложится в срок μ+σ c вероятностью ≈85%.

Слайд 14

Применение метрик в планировании

Практический подход

Применение метрик в планировании Практический подход

Слайд 15

Основные метрики

Базовые метрики
Время работы (дни, часы)
Объем работы
Строки кода (SLOC)
Функциональные точки
Количество классов, функций,

Основные метрики Базовые метрики Время работы (дни, часы) Объем работы Строки кода
и т. д.
Количество ошибок
Производные метрики
Продуктивность = Объем / Время
Плотность ошибок = Количество / Объем

Слайд 16

Свойства метрик

Базовые метрики дают корелляции
Объем vs Время
Объем vs количество ошибок
Производные метрики устойчивы

Свойства метрик Базовые метрики дают корелляции Объем vs Время Объем vs количество
и колеблются в границах коридора.
Фактические значения метрик с завершенных проектов могут быть измерены и использованы при планировании.
PSP/TSP – пример методологии разработки построенной на применении метрик.

Слайд 17

Корелляция SLOC и времени работ

"Estimating With Objects", Watts S. Humphrey, Carnegie-Mellon SEI

Корелляция SLOC и времени работ "Estimating With Objects", Watts S. Humphrey, Carnegie-Mellon SEI

Слайд 18

Метрика SLOC

Дает лучшие корелляции с временем и количеством ошибок.
Учитываются только те строки,

Метрика SLOC Дает лучшие корелляции с временем и количеством ошибок. Учитываются только
в которых можно допустить ошибки.
Не учитываются комментарии, пустые строки, и автоматически генерируемый код.
Можно не учитывать операторные скобоки (begin-end, { }, прочее).
Может быть посчитана автоматически.
Может быть использована как промежуточная метрика (proxy-based estimation), рассчитанная из других метрик объема (классы, функции, функциональные точки, и т.д.)

Слайд 19

Время разработки

Время должно включать в себя все основные активности разработки, на которых

Время разработки Время должно включать в себя все основные активности разработки, на
вносятся ошибки:
проектирование;
кодирование;
отладка;
а, также, возможно, работу с требованиями.
Корелляции с объемом проявляются:
На законченных проектах;
На задачах, которые могут быть раздельно протестированы.

Слайд 20

Метрика «продуктивности»

Осмысленна при наличии корелляции время-объем.
Более стабильна на больших отрезках времени, в

Метрика «продуктивности» Осмысленна при наличии корелляции время-объем. Более стабильна на больших отрезках
том числе и для группы программистов.
Колеблется в некотором коридоре, зависящем от:
языка программирования;
характера и сложности задачи;
стиля программиста – разные люди решают одинаковые задачи с разным размером кода;
качества результата – чем меньше в нем ошибок, тем меньше «продуктивность».
Нельзя применять как показатель эффективности работы.
Программист, тратящий меньше времени на проектирование, и пишущий больше кода для той же задачи – покажет высокую «продуктивность».

Слайд 21

Применение в планировании

Получение сроков от оценки объема:
Выполнить прогноз объема в удобной метрике

Применение в планировании Получение сроков от оценки объема: Выполнить прогноз объема в
(например – количество модулей или классов)
Перейти к SLOC (proxy-based estimation).
Пользуясь корелляцией SLOC/time, выполнить прогноз времени.
Недостатки
Сложно учесть в прогнозе риски.
Сложно учесть тенденцию экспертов к недооценке сложности.
Требуется аккуратно подойти к выбору базы для снятия метрик.
Альтернатива:
Выполнить раздельный прогноз сроков и объема
Использовать «продуктивность» как проверочный коэффициент

Слайд 22

Правила проверки

Метрика «продуктивности» должна находится в коридоре исторических колебаний по аналогичным завершенным

Правила проверки Метрика «продуктивности» должна находится в коридоре исторических колебаний по аналогичным
проектам.
Вылет за коридор чаще всего означает грубую ошибку в прогнозе срока или объема.
«Продуктивность» должна отражать представление о сложности задачи.
Сложная задача не может иметь «продуктивность» у верхней границы коридора, и наоборот.
Для двух задач, одна из которых сложнее другой – «продуктивность» более сложной должна быть меньше.
Невыполнение правила указывает на ошибку в оценках как минимум одной из задач.
Имя файла: Оценка-трудозатрат-при-разработке-ПО.pptx
Количество просмотров: 955
Количество скачиваний: 2