Before getting the opportunity to run a design team, I worked as a Qt developer and trainer for many years. This has given me some insights into the development pipeline that I think a lot of people have missed. I’ve heard both developers and designers complaining about one or the other many times, but the reality is that both disciplines are more alike than many people would believe. I’ve blogged about this previously (Lean UX and Agile Development: Not So Different After All ) and I have to say that the similarities grow stronger the more I think about this.
Engineering is, at its most basic level, an exercise in problem solving. You are faced with a problem, you have a set of things you can do, an even bigger list of things you can’t do and you need to come up with a solution. That solution can be innovative or traditional, can be elegant or brute force, but in all cases, it has to get the job done. It has to be well thought through, with consideration of possible side effects, and should be achievable within the timeframe allotted.
In the preceding paragraph, was I talking about a design effort or a programming effort? I’d bet good money that, depending on the reader’s background, both answers came up. Both user experience design (UXD) and programming are creative disciplines that aim to solve difficult problems for someone, who we’ll call the “end user."
Both disciplines use different tools, techniques and jargon, but the similarities between them are many. Questions of design patterns, collaboration and source or document control often arise. Having to execute against incomplete requirements or inaccurate specifications happens more frequently than anyone wants to think about. And we all have to meet our deadlines or answer to management.
Granted, the details of the two disciplines vary greatly. I can already hear my programming brethren grumbling that any job that doesn’t involve fighting with git or the latest Linux compiler can’t be as hard as what they do. And while there may be some truth to that, it remains that there are a lot of really bad user interfaces out in the wild. Have designers do their part of the process, and then have developers do theirs – it will produce the best result for the customer. That type of teamwork is something we’ve come to practice daily here at ICS. Getting the right person with the right skill set to solve the right problem is what makes for a successful product.