Stopped by to listen to Larry Constantine today to hear what he is thinking about how to best design applications. These are a number of the key points I picked up from his talk:
Prioritize design efforts around tasks which have the most frequency and greatest importance.
Organize designs around the fewest number of transitions for key tasks
Keep the screen context consistent when you do transition.
Use proximal and visual context to group related and associated elements.
Provide context when offering corrections and support editing-in-place when the user makes an error.
Edit-in-place is the best way to train the user on the correct data entry.
Redundancy or alternate paths are in general a good thing; allowing actions to be reversible is better.
For user tasks that are not reversible we need to carefully consider their design. (ed. duh!)
Filter non-numeric characters from number only fields.
Don’t make the user a subroutine of the program, automatically update known information if the user gave it to you.
If there is a naturalalternative way of entering data in the real world, the machine should be flexible enough to accept it.
If the error is obvious and detectable by the program, why tell the user about it?
Propagate errors, and their cause, to the highest level that can handle them.
If there is an error in the program, tell people where the error is and how to fix it.
Don’t ever give an nodaldialogueconfirmation box to a user unless the message is relevant, recognizable AND the user can intelligently respond to the message; otherwise just “eat” the message.
About the Author
My name is Carlton Nettleton and I am the President of Look Forward Consulting. I am an international speaker, trainer and author of the book, Fourteen Observations of Good Scrum Practice and my book has been translated into Spanish. My passion is to share my excitement, enthusiasm and encouragement with teams and organizations as they reach for higher levels of performance and engagement. My business is to help your business grow and flourish.