К сожалению, создать идеальное приложение не возможно. Как бы об этом не мечтал разработчик, каждая программа будет содержать в себе определенное количество багов, глюков и неточностей. Точно также нельзя реализовать и идеальный интерфейс, который будет удобен абсолютно всем пользователям. Для кого-то он всегда будет слишком сложным, а для других недостаточно функциональным. Всё потому что все люди разные, у них разные представления о правильном и удобном, разные цели и навыки.
Поэтому отбрось желание создать идеал. Лучшее – враг хорошего. Необходимо доводить продукт до достаточно хорошего качества, но не стремиться к идеалу. А для того, чтобы гарантировать, что твой проект отвечает минимальным условиям качества – пиши модульные тесты. Ничто так не помогает отслеживать ошибки на ранних этапах, как тестирование.
В Visual Studio 2017 и позднее в enterprise версии есть такая классная функция как live unit testing. Она выполняет тесты прямо во время написания кода и в живую отмечает какие строки были выполнены успешно, а где были найдены ошибки. Это одна из моих любимых функций, которая не только повышает качество кода и скорость разработки, но и делает процесс программирование интереснее.
И самое главное в тестах то, что они гарантируют хотя бы минимальную работоспособность твоего приложения. Если калькулятор не будет считать или, что ещё хуже, будет считать неправильно, то это очень разозлит пользователя. Приложение обязано делать хотя бы минимум своих обязанностей! И не допускать ошибок в таких критически важных местах и помогают юнит тесты.
А ты тестируешь свой код?