I have currently stopped working on the UI for Rhino ETL, and it is an interesting experience. In the past, I have usually started with building the functionality and then adding the UI for it. That failed. The problem wasn't that the functionality wasn't there, it was that the UI wasn't nice enough for use, or wasn't pretty enough to attract.
This time, I am doing it in reverse, I am building the UI first, at least the rough draft of it, and then I intend to go and hook everything up. This means that while the picture on the right looks very nice, it is mostly skeleton with nice UI, without much functionality.
Right now it is just an editor for Rhino ETL scripts, but I am currently hooking up the requirements for a project system that would allow me to build some really interesting functionality on top of the scripts.
You can see some of the ideas that I have in the live view pane, which should allow me to visualize everything in the project for ease of use.
Doing it the other way around is not likely to be possible, sadly, except in the most trivial cases, so I think that I will skip that.
Anyway, the point of this post is that by giving it a good looking UI, I make myself feel much better about the application. Working on an ugly application is distasteful, and you tend to just try to get away. Working on pretty ones make you want to improve the current state.
That is the whole No Broken Windows mentality again, by the way, as well as some self motivation practices. Beside, and that is a secret, working on the UI allows me to consider the back end in a very detailed way without getting too low level.
Almost by accident, there is this Daily WTF post about just this issue. Insightful is not something that I use lightly with regards to the Daily WTF posts, but this one is certainly is.
If you possibly can, make it pretty, you, your users, and the application will be thankful.