I’m going to start with ideas that should be thought about before any code is written such as user interface design, accessibility and web standards. Then I’ll move on to the more technical bits like document type definition, jQuery efficiency, HTML5 and AJAX.
UI design or user-centred design
UI design is about developing your site or application with the user’s experience driving requirements, to ensure they can accomplish their goals as efficiently and simply as possible. When done right you will reduce the number of excessive functions that have no benefit to the user.
- Gather requirements for the application – things the system needs to do.
- Analysis of the users – have conversations with the users of the end product to see how they work and what systems they’re used to.
- Information architecture – figure out the information flow of the system.
- Prototyping – make a simple working prototype that can be used to test functionality rather than aesthetics.
- Usability testing – put the prototypes in front of the end users and record their experience and thoughts.
- Look and feel – adding the graphical user interface. This step’s output should also feed into user testing.
- Ensure consistency within your application.
- Adhere to design principles (patterns):
“…users spend most of their time on other websites.”
Jakob’s Law of the Web User Experience
- Error prevention – help the user get it right before submission.
- Provide feedback at all stages.
- Think about providing default values for inputs.
- Use a language familiar to the user.