In most of my applications, I tend to work according to a method that I call zones of quality.
Case in point, I am currently writing an application that does [doesn't really matter]. This application needs data entry screens to get data in, but while data entry is a big and complex topic, it is not something that is even remotely related to the real business value in the system.
For that matter, a lot of the domain logic of the system is secondary and only there as a supporting role. So I give them both the exact same treatment: Quick & dirty implementation that will move them out of the way and allow me to focus on the real business value.
Once I get that out of the way, we know that the system can work as needed, all we need to do now is replace the quick & dirty implementation with a production ready one. This is often a tedious process, but a very straightforward one.
It doesn't make sense to spend time & effort on external concerns of a system until you have gotten the main one down pat.