Ответ на вопрос, для чего нужно создавать высококачественное программное обеспечение, является логичным и закономерным для всех сторон процесса разработки.
Очевидно, что любой заказчик хочет получить высококачественный программный продукт, удовлетворяющий всем поставленным требованиям, по возможности дешевле и в отведённый для этого срок, чтобы в будущем предотвратить расходы на обслуживание, поиск проблем, ошибок и т.д.
С другой стороны, разработчик ПО заинтересован сделать свою работу вовремя, с максимальным качеством, для того чтобы уменьшить свои издержки на время гарантийного обслуживания. То есть обе стороны процесса создания ПО преследуют как минимум две одинаковые цели: сдача программного продукта в срок и достижение максимально возможного качества ПО.
Создание изначально качественного программного продукта:
- Увеличивает вероятность успеха проекта и сдачи его в срок, и в конечном итоге, введение ПО в эксплуатацию.
- Снижает затраты на гарантийное обслуживание с обеих сторон.
- Создаёт предпосылки для сокращения общего времени разработки, так как программисты не отвлекаются на исправление ошибок или недоработок.
Со стороны фирмы — разработчика ПО есть прямые и косвенные причины для создания надежного и качественного программного обеспечения. К таковым можно отнести:
- Снижение внутренних расходов на разработку и увеличение общей скорости обработки задач. Т.е. качественная разработка сразу позволяет избежать остановок в работе, переключений на другие задачи, поиск ошибок в ПО, перепроверки решений, поиск обходных вариантов, восстановление работоспособности и т.д.
- Связывает клиента с разработчиком до тех пор, пока клиент удовлетворён.
- Создаёт порой непреодолимое для других конкурентное преимущество при участии в тендерах на разработку ПО.
Cамо по себе меньшее количество ошибок говорит о профессионализме разработчика ПО, повышает удовлетворённость клиента и, что важно для будущего, создаёт вероятность новых заказов со стороны клиента и возможность получения хороших рекомендаций.
К критериям качественного ПО наша компания относит ещё и такое его свойство, как расширяемость, или потенциал модернизации, поскольку разработчики нередко сталкиваются с такой ситуацией, что проще выкинуть старое и сделать новое. Потенциал модернизации закладывается правильно разработанной, ориентированной на будущее архитектурой ПО и выбранными технологиями для разработки.