Я читал «Факты и ошибки разработки программного обеспечения», в котором есть раздел технического обслуживания. Поскольку я работаю разработчиком технического обслуживания уже много лет, мне были представлены очень интересные факты. Вот три.
- Факт 41: обслуживание обычно потребляет от 40 до 80 процентов (в среднем 60 процентов) затрат на программное обеспечение. Следовательно, это, вероятно, самая важная фаза жизненного цикла программного обеспечения.
- Факт 42: На расширение приходится примерно 60 процентов затрат на обслуживание программного обеспечения. Исправление ошибок составляет примерно 17 процентов. Поэтому обслуживание программного обеспечения в основном заключается в добавлении новых возможностей к старому программному обеспечению, а не в его исправлении.
- Факт 45: Лучшая разработка программного обеспечения приводит к большему количеству обслуживания, а не меньше.
Это было нелогично, оказалось, что хорошее программное обеспечение требует больше обслуживания, потому что его легко изменить. Следовательно, он остается в использовании дольше, что приводит, да, к большим изменениям.
Какая парадигма (например, функциональная, объектно-ориентированная, процедурная) обладает наилучшей ремонтопригодностью, и есть ли какие-либо исследования, подтверждающие это?
maintenance
maintainability
KaizenSoze
источник
источник
Ответы:
Я думаю, вы обнаружите, что такие парадигмы, как функциональная, ОО и процедурная, вероятно, не связаны с возможностью сопровождения программного обеспечения осмысленным образом.
То, что вы могли бы найти, коррелирует гораздо яснее с поддержкой программного обеспечения:
Уровень сбора требований и разработка требований
Хорошие практики разработки: (слабая связь, высокая когезия, модульное тестирование, YAGNI ...)
Квалифицированные и квалифицированные инженеры-программисты (стоят в 10 раз больше, чем придурки)
Квалифицированная и организованная команда технического обеспечения
Хорошее управление проектами во главе с компетентными менеджерами проектов (даже труднее найти, чем опытные разработчики программного обеспечения ИМХО)
Хорошие Владельцы Продукта или менеджеры приложений, сильное лидерство, хорошее долгосрочное руководство, хорошая обратная связь с проектными командами, общее видение.
источник
Похоже, вы просматриваете это по количеству обслуживания, а не по процентам от стоимости. Хорошее программное обеспечение, в которое добавлено больше функций, - это просто большее количество программного обеспечения. Если процент обслуживания фиксирован (потому что это было хорошее программное обеспечение, и мы предполагаем, что дополнительные функции были добавлены как хорошее программное обеспечение), сумма будет увеличиваться. Это просто больший кусок пирога с таким же количеством ломтиков.
Исходя из того, что вы спрашиваете, имеет значение, было ли написано «хорошее» программное обеспечение: функциональный, ООП или процедурный код. Сможет ли дать кому-нибудь электрическую пилу с лазерным наведением сэкономить на дереве, если человек не знает, как измерить?
источник