I recently attended a UX meetup that featured a panel discussing whether or not integrating UX designers into the Agile Software Practice works. The discussion was very interesting and got me thinking.
I noticed during the discussion that the panelists made strong distinctions between "developers" and UX designers. While this is common place, it stood out to me distinctly because I am primarily a programmer but I have an interest and background in user experience. I realize the need in larger organizations to hire for specific positions, but I think the skill sets and aptitude for programmers and UX designers overlap a lot.
Both must be very detailed oriented and thorough. UX designers must consider all edge cases and possible motivations in order to shape a users experience. Programmers have to predict all of the little things that can go wrong and account for them to prevent bugs.
Both must be able to place themselves into the shoes of others. UX designers must be able to empathize with various personas to analyze the experience they will have. Programmers always have to empathize with each other in order to make sure that the code they write is understandable and maintainable to others.
Both must be very creative. UX designers must find new and innovative ways to combine, update, and tweak existing UX paradigms to fit new use cases. Programmers must always devise new architectures and patterns to get the task done quicker and make better, more efficient and more stable programs.
I could go on for a while about the similarities. The main difference that I see between UX designers and programmers is that generally UX designers are more people oriented and programmers are more technically oriented. However, UX designers in tech companies are surrounded by technology all the time. They use technology to get their job done making new technologies. Some even learn to program themselves. The definition of a programming language is also becoming fuzzier. UX designers could not design for technology if they didn't know technology. Similarly, programmers use technology on a daily basis. Many are constantly helping friends and family members use technology and learn to appreciate UX design. Programmers are extremely proficient at recognizing patterns and they can see what UX works and what doesn't.
I believe that UX designers would fit much better into the Agile process if we blend our skill sets more. UX designers will still be the experts on user experience and will be the ones innovating on the interface but the programmers can be evaluating the interfaces based on the patterns they see every day. UX designers will still be the ones leading the research but programmers could benefit greatly from seeing some of the research first hand. If we can better integrate our prototyping and development processes, programmers can help designers iterate early on in the development cycle and we can continue to iterate on the UX until the end of development because programmers will be more invested in it.
I hope that one day we can all be considered "developers" and the difference between a UX person and a front-end programmer is no more different than a front-end programmer to a back-end programmer. As a programmer I would love to learn more from UX designers and I would love to teach them more about programing.
We can all benefit from a more fluid and agile UX development process. UX cannot be developed completely before the developers see it because UX is never a static thing. Users, environments, and use cases are all constantly changing. We need to be able to iterate on the usability of the application throughout the entire development process and forever into maintenance of the product. If we do our initial development by doing all of the UX first, it will be much more challenging to iterate on it later.
The best way we can move towards a more cohesive, agile development process including both UX and programming is to stop seeing our roles as so different. UX designers and programmers can both learn skills from each other and support an overall product iteration that includes UX at its core as it should be. What is a product but a user experience?