I am a firm believer that UI should always supersede functionality, especially in the case of new webapps. People generally lash out when I say such things, but when you're starting a small company or launching a new product, a fully functional website does you no good if people don't know how to use it. Conversely, a buggy website with helpful, encouraging error handlers will encourage users to keep coming back.
Think about it this way - if Facebook suddenly went down, would you come back in an hour? If Facebook never threw any errors and was "perfect", yet it was totally unusable, would you still use it? Probably not!
A functional UI is more important than a functional app.
Developers should spend more time analyzing user-testing instead of debugging features. While I don't condone releasing a buggy application, I'd much rather see a pretty application with a few bugs released over a perfect application that only developers know how to use.
Development is often thought of in the opposite direction - get your database structure and "code"; written, and then move on to making the application look pretty. I completely despise this ideology! End users don't care about code! They don't care that your database is in third normal form. They want things that look fancy! Fade in/fade out transitions, slide up/slide downs, spinners when things are loading - these are things that users want!
All too often developers are concerned with making their code faster, better, or prettier, yet they fail to remember the end user! Add drag/drop where you can, make things as intuitive as possible, and don't forget the end user! Make your 404s and 500s informative and encourage users to return.
Seth Vargo is an engineer at Google. Previously he worked at HashiCorp, Chef Software, CustomInk, and some Pittsburgh-based startups. He is the author of Learning Chef and is passionate about reducing inequality in technology. When he is not writing, working on open source, teaching, or speaking at conferences, Seth advises non-profits.