In a previous post I talked about developers distinguishing themselves as specialists in a particular part of the application e.g. server side, gui, database etc. This kind of specialisation is counter productive to creating good software. However, there are roles where the specialisation is important.
One such specialisation is the role of the GUI Designer. To be more precise the roles of an Art Director and a User Experience Consultant. The User Experience Consultant works with the customer/business analyst to understand the UI requirements and creates user journeys / screen mocks to define how a user will interact with the system. An Art Director takes these mocks and creates graphical representation of these, adhering to the customer branding. It's the job of the Art Director to present design choices, helping the customer create a suitable and effective look and feel for the UI. The UI Developer then takes the Design Guidelines from the Art Director and create a faithful representation in the UI technology of choice.
These roles - especially that of the Art Director - are highly specialised and are disciplines in their own right. A developer should not be expected to fullfil them. Yet most people in the Software Engineering industry have not even heard of these. Consequently the most important part of the UI Application - i.e. the User Interface - are put together as an afterthought.