- Golden Role of GUI Design: "The user is not like you and me".
What makes sense to us as software developers will not make sense to the ultimate user.
GUI designs must be tested on real representative users. You don't even need cool rapid prototype development tools. Often magic markers on paper are best, since the user realizes the design can be easily changed.
"It is surprising how much new stuff users find that developers never do. You put a copy in front of a normal user and they find all these bugs that you would think developers would find. The real users and developers are completely different species as far as I am concerned." --Linux creator Linus Torvalds
- Know your user
Use GUI elements that are familiar to her. If the user knows Microsoft Word and Excel, use similar GUI elements and metaphors.
- Model/View/Controller (MVC) Paradigm.
This concept of application development splits an application into three parts (kinda like Gaul). The Model is the underlying data. The View is what the user sees, and the Controller is the interface between the Model and the View. The Controller makes sure that state is maintained between the other two.
Using MVC maximizes the reuse of the Model and View classes. MVC also allows a certain amount of cross-platform independence, since the GUI is a separate component.