A different language is a different vision of life.” – Federico Fellini, Italian film director
I’m a UX/UI designer and ten weeks ago I set out to learn the fundamentals of Swift. With no prior experience in coding, I started an 11-week part-time online course to learn Apple’s iOS mobile-specific programming language at BrainStation. Full disclosure: I absolutely love being a UX/UI designer and have no plans to switch careers. So, why learn Swift? Or more specifically, why learn to code?
“Learning to code for me was about opening the door into the developer’s workshop…”
Exploring the digital toolbox
I’ve always had a healthy curiosity about how things are built. My father was a trained civil engineer with a mechanical mind who could make and fix just about anything. As a young girl, we often built things together in his workshop and I knew my way well around a toolbox. Learning to code for me was about opening the door into the developer’s workshop and exploring the digital toolbox where I could learn, foundationally, how a digital product works.
Designers who code
Recently, there has been a lot of discussion around cross-functional teams and specific disciplines, one of which is whether or not designers should learn to code. I don’t believe anybody should be expected to know everything; however, it is helpful for UX designers, like myself, to have a holistic understanding of the entire product production cycle, specifically, general knowledge of development languages for the product UX I am designing. It connects the various parts of the product, just like in fashion or architecture. A fashion designer, for example, doesn’t weave their own fabric, and an architect doesn’t install their own electrical wiring. But they do know their medium—what’s in their toolbox—and they know the people and processes it takes to bring their product to life.
It’s helpful to understand the resources that go into every design decision made, and how important it is to stay within scope and stick to the requirements. At aequilibrium, for instance, our team will get together to critique the designs before a product goes into the development phase. We involve the development team during the visual and experience design phase because they have a wealth of knowledge, can provide positive input on practical constraints particularly around gold-platted UX thinking. This results in a happy compromise between excessive designer-overload and meeting deadlines. In this process, I’ve learned, for example, how one button that may take me 5 minutes to design can translate into half a days work for them. For a designer, it can be a grueling process having your designs critiqued by the team, but as my confidence has grown over time, I’ve found this process to be very rewarding and a catalyst for my growth through being able to make more informed, performant, and connected experiential design decisions. Through this process, I also learned to have tremendous respect for developers, their knowledge, expertise, and dedication.
“There’s a lot of crossover with what designers and developers do.”
Design & Dev crossover
I’ve also come to see that there’s a lot of crossover with what we do. When creating digital products, UI/UX designers are engaged in the process of building, too. They are using logic to structure information architecture, engineer workflows and customer journeys, as well as build efficient, repeatable design components for multiple platform types. Likewise, a programmer is also a designer. They design architectures, data structures, algorithms, and solutions to complex problems. Adding to the recent dialog our team had on communication and team dynamics, we’re like two sides of the same coin working with Agile to hone a synergistic and symbiotic relationship. We’re constantly learning from each other and we’re completely reliant on each other to get a product designed, built, and shipped. To sum it all up, the better we understand one another, the better our product will turn out. If we want to build a robust, functional, seamless product, we need to start with a robust, functional, and seamless team.
What about developers?
On the flipside, would it also be beneficial for developers to learn a few basic principles of design? To examine the opposite point of view, I spoke to a developer at work who had studied a part-time course in user experience design. He also faced challenges learning new skills. This is what he had to say about it:
One of the biggest challenges for me is when things become art. For example, there are a million colors. How do I choose a palette? And fonts. Out of all of the serifs and sans serifs, which font does one choose? User expectations also seem to keep growing and a nicely designed website isn’t enough anymore. People want things like animations. Another challenge is dealing with self-doubt. I often thought to myself during my design course that my limited skills wouldn’t be enough to make something good.
Questioning every design choice, being overwhelmed at the possibilities of a blank slate, and the avid self-doubt are all things most designers can relate to. What’s interesting though was the way I felt about knowing that he had taken the time to complete the course. It made me appreciate him more as someone I work with every day, as a colleague and teammate. It dawned on me then where the real value was in learning Swift.
Breaking down barriers
As humans, we all want to be understood. We want people to speak our language, or at least try. It’s human nature to want to experience that others know us, it helps us feel more connected. I finally grasped why developers want us to understand how to code. Not because they want us to build our own products, code our own animations, or fully architect our solutions, but because they want us to understand the complexity of the world they navigate every day, and to design products with that complexity in mind. So, after 11-weeks learning Swift, I believe that learning to code is a tool of empathy and collaboration, and ultimately of respect and understanding.
Will I continue to develop my skills in Swift? There’s still a long way to go until I can produce something of lasting quality, but I do have a project in mind that I’d like to build. Now that I know the fundamentals of Swift, I’ll be pulling it out of the toolbox if and when I need it.