Оценка стоимости
Теоретически оценка стоимости представляет собой тривиальную функцию от объема работы. Тем не менее получение оценки стоимости проекта усложняется целым рядом факторов.
Сверхурочные работы
Допускает ли ваша организация некомпенсируемые сверхурочные работы? Если допускает, то некоторый процент оцениваемого объема работ может не учитываться в оценке стоимости.
Использует ли ваша организация временных работников или подрядчиков, получающих более высокую оплату за переработку? В таких случаях вклад части оцениваемого объема работы в формирование стоимости может оказаться выше среднего.Выбор типа затрат
В некоторых организациях стоимость проекта вычисляется на базе «прямых затрат», то есть затрат, напрямую приписываемых конкретному работнику (зарплата, налоги, премии и т. д.). В других организациях при расчете стоимости проекта используются «обременяющие затраты» с учетом полных корпоративных затрат, которые не ассоциируются с конкретными работниками (аренда, корпоративные налоги, затраты служб кадров, продаж, маркетинга и т. д.). В зависимости от размера организации, объема невозмещаемой инфраструктуры, стоимости офисного пространства и других факторов, бремя расходов в процентах от зарплаты работника может составлять от 30 до 125 % и выше.
Другие прямые затраты
Некоторые проекты также требуют затрат на командировки, специализированный инструментарий, оборудование и т. д. Эти затраты тоже должны включаться в оценку стоимости.
За ссылками на дополнительную информацию по этой теме обращайтесь к разделу «Дополнительные ресурсы» в конце главы. Оценка дефектообразования и исправления
Дефектообразование в программном проекте является функцией объема работы и размера проекта, поэтому количество дефектов тоже может оцениваться заранее. Информация о вероятном количестве дефектов пригодится для планирования объема работ, направленных на их исправление.
Кейперс Джонс описывает один из способов анализа дефектообразования, основанный на размере программы в функциональных пунктах (Jones 2000). Как показано в табл. 21.10, из данных Джонса следует, что в типичном проекте на один функциональный пункт создается около 5 дефектов. Этот показатель соответствует примерно 50 дефектам на 1000 строк программного кода (в зависимости от используемого языка программирования).
Таблица 21.10. Типичная частота дефектообразования в различных операциях
| Операция | Среднее количество создаваемых дефектов |
| Требования | Один дефект на функциональный пункт |
| Архитектура | 1,25 дефекта на функциональный пункт |
| Конструирование | 1,75 дефекта на функциональный пункт |
| />Документация | 0,60 дефекта на функциональный пункт |
| Некорректные исправления | 0,40 дефекта на функциональный пункт |
| ИТОГО | 5,0 дефекта на функциональный пункт |
Другой фактор, вносящий свой вклад в издержки масштаба, заключается в том, что в крупных проектах на строку кода обычно генерируется больше дефектов; это повышает объем работы по исправлению ошибок, что, в свою очередь, повышает затраты проекта. В табл. 21.11 представлена зависимость плотности ошибок для разных размеров проекта.
| Таблица 21.11. Размер проекта и плотность ошибок | |
| Размер проекта (в строках кода) | Типичная плотность ошибок |
| lt; 2К | 0-25 ошибок на KLOC |
| 2К-16К | 0-40 ошибок на KLOC |
| 16К-64К | 0,5-50 ошибок на KLOC |
| 64К-512К | 2-70 ошибок на KLOC |
| gt;512К | 4-100 ошибок на KLOC |
Источник: «Program Quality and Programmer Productivity» (Jones 1977), «Estimating Software Costs» (Jones 1998).
Среднеотраслевые частоты дефектообразования изменяются более чем на порядок. Исторические данные прошлых проектов повысят точность оценки.
СОВЕТ № 100
Используйте среднеотраслевые или исторические данные для оценки предполагаемого количества дефектов в вашем проекте.
Оценка работы по исправлению дефектов
Дефектообразование — лишь одна из частей формулы планирования. Другой частью является исправление дефектов. В программной отрасли накопился достаточно большой объем данных по эффективности основных методов исправления дефектов. В табл. 21.12 представлены данные об эффективности исправления дефектов1 для анализа, обсуждения, модульного тестирования, тестирования системы и других распространенных методов.
Таблица 21.12. Эффективность исправления дефектов
| Фаза удаления | Минимальная эффективность | Модальная эффективность | Максимальная эффективность |
| Неформальный обзор архитектуры | 25% | 35% | 40% |
| Формальный анализ архитектуры | 45% | 55% | 65% |
| Неформальный обзор кода | 20% | 25% | 35% |
| Формальный анализ кода | 45% | 60% | 70% |
| Моделирование или макетирование | 35% | 65% | 80% |
продолжение amp;
1 Defect Removal Rate (Efficiency) = (Количество исправленных дефектов)/(Количество исправленных дефектов + Количество дефектов, обнаруженных после начала поставок продукта). — Примеч. перев.
Таблица 21.12 (продолжение)
| Фаза удаления | Минимальная эффективность | Модальная эффективность | Максимальная эффективность |
| Персональная проверка кода | 20% | 40% | 60% |
| Модульное тестирование | 15% | 30% | 50% |
| Тестирование новых функций (компонентов) | 20% | 30% | 35% |
| Интеграционное тестирование | 25% | 35% | 40% |
| Регрессионное тестирование | 15% | 25% | 30% |
| Системное тестирование | 25% | 40% | 55% |
| Бета-тестирование в малом масштабе (lt;10 мест) | 25% | 35% | 40% |
| Бета-тестирование в большом масштабе (gt; 1000 мест) | 60% | 75% | 85% |
Источник: По материалам «Programming Productivity» (Jones 1986а), «Software Defect-Removal Efficiency» (Jones 1996) и «What We Have Learned About Fighting Defects» (Shull et al 2002).
Важную роль здесь играет диапазон от минимальной до максимальной эффективности; как обычно, исторические данные вашей организации помогут получить более точную оценку.
Пример оценки эффективности исправления дефектов
Объединение информацйи из таблиц дефектообразования и исправления позволяет оценить количество дефектов, которые останутся в окончательной версии вашей программы (и конечно, помогает спланировать действия по удалению большего или меньшего количества дефектов, в зависимости от ваших критериев качества).
Предположим, имеется система в 1000 функциональных пунктов. Оценка по данным Джонса из табл. 21.10 показывает, что проект будет содержать около 5000 дефектов. В табл. 21.13 описаны результаты их поэтапного устранения с применением стандартной стратегии, состоящей из персональной проверки кода, модульного тестирования, интеграционного тестирования, системного тестирования и бета-тестирования в малом масштабе.
Таблица 21.13. Пример типичной процедуры образования и устранения дефектов (для системы размером в 1000 функциональных пунктов)
| Операция | Изменения в количестве дефектов | Общее количество внесенных дефектов | Остается дефектов |
| Требования | +1000 дефектов | 1000 | 1000 |
| Архитектура | +1250 дефектов | 2250 | 2250 |
| Конструирование | +1750 дефектов | 4000 | 4000 |
| Персональная проверка кода | -40% | 4000 | 2400 |
| Документация | +600 дефектов | 4600 | 3000 |
| Модульное тестирование | -30 % | 4600 | 2100 |
| Операция | Изменения в количестве дефектов | Общее количество внесенных дефектов | Остается дефектов |
| Интеграционное тестирование | -35 % | 4600 | 2100 |
| Системное тестирование | -40% | 4600 | 1365 |
| Некорректные исправления | +400 дефектов | 5000 | 1219 |
| Бета-тестирование в малом масштабе | -35 % | 5000 | 792 |
| Дефектов остается в окончательной версии | -84% | 5000 | 72 (16 %) |
Получается, что типичный подход к исправлению дефектов устранит из программы только около 84 % ошибок, что примерно соответствует стандартам отрасли (Jones 2000). Как обычно, числа, полученные этим способом, являются приближенными.
В табл. 21.14 показано, как может проходить исправление дефектов в лучших организациях. Предполагается, что группа внесет в проект те же 5000 дефектов. Однако на этот раз в число методов удаления дефектов войдет моделирование требований, формальный анализ архитектуры, персональная проверка кода, модульное, интеграционное и системное тестирование, а также бета-тестирование в большом масштабе. Как видно из таблицы, комбинация этих методов должна привести к удалению из программного продукта около 95 % дефектов.
Таблица 21.14. Пример самой надежной процедуры образования и устранения дефектов (для системы размером в 1000 функциональных пунктов)
| Операция | Изменения в количестве дефектов | Общее количество внесенных дефектов | Остается дефектов |
| Требования | + 1000 дефектов | 1000 | 1000 |
| Моделирование требований | -65 % | 1000 | 350 |
| Архитектура | + 1250 дефектов | 2250 | 1600 |
| Формальный анализ архитектуры | -55 % | 2250 | 720 |
| Конструирование | + 1750 дефектов | 4000 | 2470 |
| Документация | + 600 дефектов | 4600 | 3070 |
| Персональная проверка кода | -40 % | 4600 | 1842 |
| Модульное тестирование | -30 % | 4600 | 1289 |
| Интеграционное тестирование | -35 % | 4600 | 838 |
| Системное тестирование | -40 % | 4600 | 503 |
| Некорректные исправления | + 400 дефектов | 5000 | 903 |
| Бета-тестирование в малом масштабе | -735 % | 5000 | 226 |
| Дефектов остается в окончательной версии | -95 % | 5000 | 226 (5 %) |
Как и в предыдущем примере, излишняя четкость оценки в 226 дефектов не поддерживается используемыми данными.
СОВЕТ № 101
Данные эффективности исправления дефектов позволяют оценить количество дефектов, которые будут удалены из программы вашими методами контроля качества перед выпуском окончательной версии.
Лоренс Путнэм приводит два дополнительных эмпирических правила исправления дефектов. Если вы хотите перейти от 95 % надежности к 99 % надежности, долю «основной сборки» в сроке следует увеличить на 25 %. Чтобы перейти от 99 к 99,9 % надежности, заложите в срок еще 25 % (Putnam and Myers 2003). (В терминологии Путнэма понятия «надежность» и «процент исправления дефектов перед выпуском» эквивалентны.)
Дальнейшая оценка атрибутов качества — весьма непростая тема, в значительной мере опирающаяся на научные методы оценки. В секции «Дополнительные ресурсы» в конце главы рассказано, где найти дополнительную информацию.
Еще по теме Оценка стоимости:
- Расчет стоимости активов, оценка и составление отчетности о стоимости активов и пассивов фонда
- О порядке оценки стоимости чистых активов и стоимости одного инвестиционного пая паевых инвестиционных фондов
- 6.1 Средняя и предельная стоимость капитала. Общие принципы оценки стоимости капитала
- Методы оценки стоимости акций
- 77. Основные этапы оценки стоимости предпр
- 2.5. Ликвидационная стоимость объекта оценки
- 2.1. Стоимость объекта оценки с ограниченным рынком
- 8.4. Оценка стоимости объекта недвижимости
- Оценка стоимости нематериальных активов и амортизация
- 2. Оценка текущей стоимости вложений
- Оценка стоимости долговых инструментов
- 11.3. Методы оценки стоимости фирмы по остаточным доходам
- о Оценка стоимости бескупонных облигаций
- Оценка рыночной стоимости земельных участков