Until recently, I was quite ignorant of the importance of UI/UX in software development. For those unaware, UI/UX stands for user interface and user experience. This falls under the broader research discipline of Human-Computer Interaction (HCI) which deals with how humans interact with computers and how to improve that experience. UI/UX, and HCI more broadly, seeks to make technology more simple, useful and accessible for users. There is vast scope for research in this field, and consequently, plenty of related work in the software industry.

The reason many beginner programmers are often neglectful of UI/UX is because during their technical training, they are often creating products (e.g. assignments, projects) for a technical audience (e.g. instructors, peers). That particular audience is often more critical of functionality and not so much concerned with aesthetics. Usability is often bundled under the banner of “aesthetics” and is left to be dealt with “later”. Programmers like to think that their software is solving problems. However, if the solution is unusable by its intended users, then the problem remains unsolved. And this is the real important of user experience design.

Software needs to be designed with its intended users in mind. This understanding must guide every decision in the software development cycle to ensure that the end product is easy to use for those whom it was developed for. Delaying UX considerations till late in the cycle creates a situation where developers must choose between extensive re-design or lack of interest from users due to frustration and confusion.

Software developers should have at least a cursory understanding of the subject and a basic idea of how to incorporate usability principles in their interfaces. I’ve linked to some resources below that should help to elucidate some basic UI/UX design principles if you are unfamiliar with the field. It’s useful to have a broad understanding of issues related to your core development work.

Introduction to UI/UX: