A decade ago, UI (user interface) design was often the responsibility of developers with little or no knowledge of the art and science of visual communication. As designers venture away from advertising agencies and into corporates, many developers find themselves working side-by-side with these creatives. While the goal of both designers and developers should be the same — to provide software that delights its users- all too often there is a chasm between these two disciplines. This article is based on my experience as a developer collaborating with many designers and suggests some ways in which developers can improve their collaboration with the designers in their team.
1. Understand the basics of their fields
Collaboration requires mutual understanding and respect. By understanding the basics of the design fields, there is a shared vocabulary. A shared vocabulary helps you to communicate implementation limitations better and to understand the designer’s vision. When explaining these limitations, be aware that the designers may not understand the intricacies of the technical implementation. Make sure that you communicate the problem in a way that supports collaboration and not create confusion.
Furthermore, by understanding the basics of design, you are demonstrating respect for their field and the individuals themselves. When deadlines are looming, respect ensures that relationships don’t become strained, but rather that collaboration increases without compromising the design vision or the code base.
How you go about learning the basics of the design fields is based on your style of learning and the depth of knowledge that you want to gain. I can recommend two resources. In his book, The Joy of UX: User Experience and Interactive Design for Developers, David Platt describes the fundamentals of UX (user experience) design in a way that is relevant to developers. GetSmarter, in collaboration with UCT (University of Cape Town), offers a practical short course that has equipped many developers with UX design knowledge and skills.
2. Ask questions — respectfully
Don’t be afraid to ask questions, but watch your tone. Designers recognise that you don’t understand the finer points of their fields. Good designers know that verbal communication with their team is as essential as visual communication in their work. They will, therefore, take the time to explain the motivation behind a design decision. Very often, designers base their decisions on cognitive science and well-established design principles rather than a mere whim. However, it is important to phrase your questions thoroughly, focussing on understanding why they made a specific decision, rather than expressing your own opinion of what constitutes pleasing design.
3. Ask for feedback
As you implement their designs, ask for the designers’ feedback. Designers have an excellent eye for detail — they quickly pick up mistakes that developers miss, despite their best efforts. Frequently asking for feedback ensures that there is no unnecessary pressure just before a deadline.
Just as you should have a code review process in place, so you should have a design review with your designers before any UAT (user acceptance testing) takes place. This ensures that the design vision is correctly implemented and that mistakes and inconsistencies are picked up before your code gets to production.
4. Try and try again
Occasionally, you might hit an implementation limitation that simply can’t be overcome without some design compromise. However, before reaching that point, make sure that you have done all the research and development brainstorming you can to solve the problem. Should the limitation prove to be insurmountable, ensure that the designers understand the fundamentals of the problem, and ask for an alternative design. Make sure that they have enough time to conceptualise an alternative by keeping them informed of difficulties.
5. Keep learning and innovating together
Good developers know how to implement designs, but great developers keep up-to-date with the best ways to implement designs. By continually researching advancements in frontend design, you can confidently communicate the possibilities of your chosen technology to the designers.
Some corporates allow their developers to take some downtime to participate in hackathons, developing side projects for the sheer enjoyment of it. Why not allow designers to participate in some of these hackathons, creating and innovating side-by-side with their developers? Designers and developers can learn from each other in a relaxed environment, and encourage developers to stretch themselves by implementing more advanced interactions and animations.
Platt, D., 2016. The Joy of UX: User Experience and Interactive Design for Developers. 1st ed. Boston: Addison-Wesley Professional.