How much should one worry about the "edge cases" in an application, especially when creating the UI?
closed as not a real question by Mark Trapp Jul 25 '11 at 9:05
It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, see the FAQ.
Depending on how you've built your application, hopefully the layers below your UI will 'catch' any edge cases that you don't specifically cater for in your UI layer.
So, for a lot of unusual or uncommon edge cases, it's OK for the UI give a generic error, as long as the more functional layers catch it and deal with it, and data destruction or pollution doesn't happen.
However, the more feedback the UI can give, the better the experience will be. I don't think there's really a definite percentile or anything like that: it depends a bit on your users - how many of them there are, how often they're using your application, how good they are. You can't justify spending a year on dealing with every edge case in the UI of a 4 screen application.
Be warned though, that the cracks you leave now will where the bugs you will be looking for in 6 months time will be hiding. Code as defensively as you can, given the amount of time you have. (and assuming, as I said before, decent lower layers).
The quote above may sound funny at first, but IMHO it - or rather, the view behind it - is actually one of the prime source of software bugs.
Viewing our users as idiots who just can't understand our beautiful creation, or are hardly even worthy of using it, is a dangerous view.
Yes, there are plenty of users who behave in apparently irrational or plainly stupid ways, trying to coerce a program to achieve something they have in mind. And yes, often there are much better and simpler ways - or none at all, because the program in question was just never meant to do what they wanted of it.
However, merely labelling them "idiot" is surely not going to solve any real problem - rather, create more.
IMHO the best way to prevent UI bugs is to actually understand the users and their problem(s). Spend time with them, interview them, observe them during work, to understand how they use the UI and what they actually need. This helps you discover the important edge cases too - and may in some cases make you realize they were edge cases only from a limited point of view...
Plenty ... ! More often than not, we the developers are the edge cases.
Creating a good user experience is a field in its own right and should be taken seriously.