I'm not even close to other experienced programmers here, but from my small experience usually the two things play really nice together: beautiful and useful.
Other than that you need a balance and since your customers pay, they have a priority so if they need a feature, you might first want to deliver something that works and then re-factor.
Other than that you need a balance and since your customers pay, they have a priority so if they need a feature, you might first want to deliver something that works and then re-factor.