Оценка стоимости ошибок
Некоторое время назад ряд компаний провел исследование оценки стоимости ошибок, возникающих на разных этапах создания программ. Каждая фирма действовала независимо, тем не менее результаты получены примерно одинаковые: если стоимость усилий, необходимых для обнаружения и устранения ошибок на стадии написания кода, принять за единицу, то стоимость выявления и устранения ошибки на стадии выработки требований будет в 5—10 раз меньше, а стоимость обнаружения и устранения ошибки на стадии сопровождения — в 20 раз больше (рис. 2.1).
/ 0,1—0,2 |
Этап Время выработки требований |
/ 0,5 |
Проектирование |
/ 1 |
Кодирование |
/ 2 |
Тестирование компонентов |
/ 5 |
Приемка |
20 |
Поддержка и обслуживание |
Рис. 2.1. Оценка стоимости ошибок на разных этапах создания ПО
Откуда берется такая высокая стоимость ошибки? Ко времени обнаружения ошибки в требованиях группа разработчиков уже могла потратить время и усилия на создание проекта по этим ошибочным требованиям. В результате проект, вероятно, придется отбросить или пересмотреть [1].
Истинная природа ошибки может быть замаскирована; при проведении тестирования и проверок на данной стадии все думают, что имеют дело с ошибками проектирования, и значительное время и усилия могут быть потрачены впустую.
В зависимости от того, где и когда при работе над проектом разработки программного приложения был обнаружен дефект, цена его может разниться в 50—100 раз. Причина состоит в том, что для его исправления придется затратить средства на некоторые (или все) нижеперечисленные действия.
- 1. Повторная спецификация.
- 2. Повторное проектирование.
- 3. Повторное кодирование.
- 4. Повторное тестирование.
- 5. Замена заказа — сообщить клиентам и операторам о необходимости заменить дефектную версию исправленной.
- 6. Внесение исправлений — выявить и устранить все неточности, вызванные неправильным функционированием ошибочно специфицированной системы, что может потребовать выплаты определенных сумм возмущенным клиентам, повторного выполнения определенных вычислительных задач на ЭВМ и т. п.
- 7. Списание той части работы (кода, части проектов и т. п.), которая выполнялась с наилучшими побуждениями, но оказалась ненужной, когда обнаружилось, что все это создавалось на основе неверных требований.
- 8. Отозвание дефектных версий встроенного программного обеспечения и соответствующих руководств. Если принять во внимание, что программное обеспечение сегодня встраивается в различные изделия — от наручных часов и микроволновых печей до автомобилей, — такая замена может коснуться как этих изделий, так и встроенного в них программного обеспечения.
- 9. Выплаты по гарантийным обязательствам.
- 10. Ответственность за изделие, если клиент через суд требует возмещение убытка, причиненного некачественным программным продуктом.
- 11. Затраты на обслуживание — представитель компании должен посетить клиента, чтобы установить новую версию программного обеспечения.
- 12. Создание документации.