This is a blog about user experience design (also referred to as user interface design or interaction design). It’s also a blog about software development, product management, project management, visual design, and development processes and methodologies, because in my mind they are all tied together.
I’ve been designing user interfaces for web and desktop applications for about seven years–much of that under the formal title of software developer or software engineer, where part of my time was spent designing interfaces and a larger part of my time was spent writing the code to implement them. Some people feel this type of background hinders a designer’s creativity or their ability to create user-focused designs; I don’t think this has to be the case. My technical understanding helps me create user interfaces that are practical to implement, but I can still think creatively within those constraints. My ability to understand whole systems allows me to work closely with the development team; and, sometimes, identify complexities at the architectural level, before they rise to the user interface. And of course, my coding background allows me to implement realistic prototypes for user testing (because I don’t think you can truly learn how a user will interact with a design unless the user can comfortably explore and make mistakes).
A coworker of mine recently wrote (after an epiphanous experience at a retreat focused on how user experience works within Agile methodologies), “Roles need to give way to competencies.” That sums up my approach to user experience and software pretty well. Although my formal title now falls under user interface design and that’s a large part of my day-to-day work, it’s one competency that I apply as part of a team. My goal is to work with customers, visual designers, product managers, and engineers to design and produce the best possible user experience for software applications, whatever path that takes.