Я склонен делать много проектов в сжатые сроки и с большим количеством кода, который никогда не будет использоваться снова, поэтому всегда есть давление / соблазн срезать углы. Одно правило, которого я всегда придерживаюсь, - это инкапсуляция / слабая связь, поэтому у меня много маленьких классов, а не один гигантский класс Бога. Но что еще я никогда не должен идти на компромисс?
Обновление - спасибо за отличный ответ. Множество людей предложили юнит-тестирование, но я не думаю, что это действительно подходит для того типа кодирования пользовательского интерфейса, который я делаю. Юзабилити / приемочное тестирование пользователя кажется очень важным. Повторим еще раз: я говорю о минимальном стандарте кодирования для проектов с невозможным сроком исполнения.