Есть как минимум два аспекта качества, которые мы должны учитывать:
- качество программного обеспечения: соответствует ли программное обеспечение желаемым целям / требованиям? мы доставляем сборки с критическими ошибками? Легко ли конечным пользователям работать?
- качество кода: насколько сложно поддерживать код? Легко ли реализовать новые функции?
Если вы создаете производимое программное обеспечение, я думаю, что стоит предположить, что оно никогда не будет достаточно хорошим в обоих аспектах. Каждая маленькая функция имеет значение, и если пользователи не найдут то, что им нужно, или продукт недостаточно стабилен, они взглянут на конкуренцию. Вы также хотите внедрить новые функции как можно быстрее, чтобы у вас было конкурентное преимущество на рынке.
Ситуация становится интересной, если вы создаете нестандартное программное обеспечение для бизнеса, где конечные пользователи и лица, принимающие решения, обычно не являются одними и теми же людьми, тогда компромисс между функциями / качеством / деньгами становится частью процесса переговоров. Обычно мы накладываем «достаточно хорошие» ограничения на эти три аспекта: у нас есть набор требований, которые нужно соблюдать, качество, которое нужно поддерживать, и, как правило, не хватает времени, чтобы сохранить оба.
Что обычно забывают в этом процессе, так это второй момент: качество кода или удобство сопровождения. Мы, программисты, понимаем, что рано или поздно дрянной код отомстит и приведет к критическим ошибкам или затратам на обслуживание. Лица, принимающие решения, нет. Проблема заключается в том, что ответственность (риски) вы берете на себя (ваша компания, ваше подразделение и т. Д.), И вы будете первыми виноваты, если что-то пойдет не так.
Мое мнение таково: для обеспечения качества программного обеспечения делайте то, что вам говорит клиент, они лучше знают, какие функции для него важны, сколько может быть ошибок в программном обеспечении и т. Д. Для качества кода и удобства сопровождения: делайте как можно лучше научитесь делать больше и учите других делать то же самое. Здесь я получаю удовольствие.