Posted by Anthony Mooney
18 October, 2019

An appreciation of design is common amongst developers. Well, that's a bit of a blanket statement. If we focus on the front end for now we can just about get away with saying something like that. Not meaning to say that a back-end developer won't recognise good design – I'm sure many of them do – but it’s less inherent in that area of work, and so, for the sake of this discussion, let us focus on the browser and the visual elements of web development that users see and with which they interact.

Ideally, designers and developers should have the same goal in creating websites and for the most part, I think they do. Primarily, a performant website should be easy for a user to interact with. It should assist them in finding the information they need and it should never be taxing for them to complete the journey they’ve undertaken. In the end, the experience should give them satisfaction. This is an overly simplified view but it’s something that designers and developers will largely agree upon. But in reality, the paths to achieving these simple goals can be divergent, as joint objectives quickly become a host of individual tasks for each party.

So how can designers and developers maintain their collective focus as one might strive for aesthetic perfection whilst the other might be prioritising something else, like better performance? Well, there is no established route for guaranteed success but akin to so many things, communication and looking at different perspectives can go a long way in helping.

Working effectively together is an amazing feat of human cooperation and as a result we have achieved things that no other species could. No small part of that success is our ability to understand each other. In this context, a shared vocabulary can help designers and developers to appreciate the goals and/or challenges that each might face. Acting as a basis for this appreciation, the Gestalt Principles offer a foundation for us all to better comprehend the way in which we perceive the world around us and underwrite much of what designers are trying to achieve. This common working understanding eases the flow of information from developer to designer and helps in establishing an overall design mindset which can reduce the forces that push design and development down their potentially disparate paths.

Collectively buying into this design-led approach requires developers to gain an understanding of design principles as well as an appreciation for the aims of a particular design. Layout, grid systems, colour theory and typography are all integral parts of website design and each play an important role in whether a site can be deemed consistent and predictable. Both of which contribute greatly to a site’s overall success. But layout, grids, colours and type have different connotations for developers and this is why it is so valuable for developers to grasp design principles so that they can make sure their sites are built exactly to a designer’s specification so that it can achieve its usability goals and deliver the desired experience.

Many people say they're not creative. It’s common enough to hear, particularly amongst developers. It’s also sad and untrue. Everyone has creative potential but like exercise, it's harder if you don't do it regularly. In her talk, 'Design for Developers', Sarah Drasner touches upon this topic and its relation to developers who deem themselves to be 'left-brained', therefore struggling with aesthetics but excelling in analytics and logic. There's no evidence to suggest that humans are exclusively left- or right-brained. It’s actually a bit diminishing to think that our brains could be so binary, when by our very nature, we are so highly adaptable. Sarah’s talk really just encourages us all to give it a go and everyone can benefit from a little design thinking in their lives – but developers who can properly appreciate the principles that are driving the projects they are building are certain to create better experiences with far less effort. Which is beneficial to everyone involved in the process and, of course, the end user.