While this is commonplace, it stood out to me because I’m primarily working on the development side as 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 that as long as we maintain these distinctions, UX designers will not be able to effectively work within the agile software process. I also think the skill sets and aptitude for programmers and UX designers have significant overlap.
One of the principles listed on agilemanifesto.org is that, “Continuous attention to technical excellence and good design enhances agility.” This means that programmers must work on a daily basis with designers. If designers simply hand over designs for the programmers to implement, design considerations are more likely to be left by the wayside as technical challenges arise.
People work much better together when they can find common ground. By recognizing that the similarities between designers and programmers greatly outweigh their differences, we can all learn to work more effectively together on a daily basis.
Attention to Detail
Both developers and designers must be very detailed oriented and thorough. UX designers must consider all edge cases and possible motivations in order to shape a user’s experience. Programmers have to predict all of the little things that can go wrong and account for them to prevent bugs.
Empathetic by Nature
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 one another in order to make sure that the code they write is understandable and maintainable by others.
Both must be very creative. UX designers have to 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 tasks completed faster and make better, more efficient, and more stable programs.
One stereotypical difference between UX designers and programmers is that UX designers are more people-oriented and programmers are more technically oriented. However, UX designers in tech companies are technical. They are surrounded by technology all the time. They use technology to get their jobs done and they are often creating technology themselves—some even learn to program.
Similarly, programmers look at technology from a user-centered position. Many are constantly helping friends and family use technology and learn to appreciate UX design. Programmers are extremely proficient at recognizing patterns and they can spot UX that works and UX that doesn't.
By recognizing these similarities, UX design can move from being a precursor to programming to an integrated part of the development process allowing for better iteration on both the technical aspects and the design.
UX designers will still be the experts on user experience and will be the ones innovating the interface, but they will do it alongside the programmers instead of in their own world. Programmers can be evaluating the interfaces based on the patterns they see every day and technical issues can be addressed earlier. UX designers will still lead the research but programmers will greatly benefit from seeing some of the research first-hand.
Everyone can be on the same page about the importance of each change. Most importantly, by better integrating our prototyping and development processes, programmers can help designers iterate early on in the development cycle and designers can continue to iterate 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 greater than a front-end programmer and 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 the usability of the application throughout the entire development process and it cannot stop at the 1.0 release. The usability iteration must continue as long as the product is being maintained. If we do all of the UX first, it will be much more challenging to iterate on it later.
I think that the best way we can move toward a more cohesive, agile development process that includes both UX designers and programmers is to stop seeing our roles as so different. UX designers and programmers can each learn skills from one another and support an overall product iteration that includes UX at its core.
Image of peas and carrots courtesy Shutterstock