to avoid the classic pitfalls around designing a UI for you (the developer) instead of the customer, cognitive walk through for instance, but you still need customer feedback, and it needs to be good. One or two customers won't cut it, all that does is move the issue.
You need good metrics, they need to be collected frequently. You need to monitor the effectiveness of the changes you make. There's input from branding and marketing, the device being used can have a huge impact, and if you are talking legacy applications...
Best advice I can give to a software developer, is do the job properly and make sure you have separation of concerns, or no matter how "wrong" your UX is you won't be allowed to do anything about it anyway.
Keep Up with TechRepublic