#1 It’s all about the user
All functionality is created out of a user need and from a user perspective. Asking the questions; As a user… What problem does this solve for me? Does this make me happy? Is it better than the alternative?
#2 systems should match the real world
The product should speak the users' language, with words, phrases and concepts familiar to the user, rather than system-oriented terms. Follow real-world conventions, making information appear in a natural and logical order.
#3 you should assume nothing
Functionalities are created based on research and conventions. Any further design decisions should be the result of user testing. Personal preference does not enter the equation
#4 testing should be done often
Test early. Get the feedback loop moving with users. Use this information to iterate and test again.
#5 work should be structured and clean
Design should not contain information which is irrelevant or rarely needed. The design should bear this in mind both informationally and aesthetically.
#6 live in the now, build for the future
All functionality is created to be relevant to the current situation, fully extendable and scalable for future iterations.