1. Понятие качества программного обеспечения
Как упоминалось выше, качество программного обеспечения – это не формализуемый продукт. Расхождение в подходах начинается не с понятия качества, а с того чем является программное обеспечение: продуктом или услугой. Здесь существуют две точки зрения:
- Разработчик ПО самостоятельно реализует некоторое программное обеспечение и выходит с ним на рынок. В таком случае ПО – это продукт.
- Разработчик ПО получает задание от Заказчика – оказание услуги по разработке ПО.
Для решения этой проблемы необходимо определить, кто главный в отношениях Заказчик (Потребитель) / Разработчик. Безусловно, любая программная система предназначена для какого-то конечного пользователя, пусть даже он один и этот пользователь сам является разработчиком. Тогда разработчики производят услуги, а не товар, причем именно производят, а не оказывают, со всеми дополнительными сложностями производства, такими как документирование.
Если вернуться к рассмотрению трудностей, возникших в [1], то увидим, что в нем только одна из четырех проблем непосредственно относится к производству программного обеспечения.
Показательным является система оценок качества программного обеспечения на международных и национальных конкурсах. Например, при анализе изделий, выдвинутых на премию Malcolm Bridge, учитываются 20 критериев с общей суммой баллов 1000, из них лишь 250 баллов приходятся на технические аспекты качества.
Разработчик реализует весь жизненный цикл программного обеспечения. Но часто слишком сосредотачивается на непосредственной реализации программы, не обращая внимания на сложный жизненный цикл. Сбившись на старте с правильного направления, т.е. при проектировании, программисты забывают о тестировании и внедрении. Результат очевиден.