In my design career, I have observed an “Us vs Them” mentality between designers and engineers. I feel fortunate that my experience has been different, but for many people that is not the case. I view the software engineers that I work with as my partners in design, and developing an effective working relationship with them has made my job easier. I would like to share some of the tips, and design processes that have helped me improve my working relationships with engineers.
Build Empathy for your Teammates
Every time a designer says, “ugh, the developer messed up my designs,” they are making it worse for all of us. We don’t put half the effort into understanding our coworkers goals as we do our users, what if we considered the perspectives of our team member’s more? Everyone is responsible for the experience of a product, and part of our role as designers is to use the processes we’ve learned to find solutions to the problems we are solving. Why not apply those skills to our coworkers?
Ask How They Like to Work
Whenever I start on a new team, I ask the engineers I work with how they would like to be involved. Some want to be involved in the entire process, and love arguing about the best way to build features. Others would rather just be heads down and build. Sometimes this is something you just learn as you work with someone, but everyone appreciates being asked their opinion. When you involve someone early on in the decision making aspects of the project, they will have more of a sense of ownership, and will care more about building the product.
Get Feedback Early
It’s really easy to get deep into a design and head off in one direction, only to show the designs to your engineering team and have them say “thats not possible.” To help avoid this problem, get the engineers involved in the early concept stages of product creation. They will look at the problem from a different perspective than you will, and will offer up ideas and suggestions from a different perspective. They will also inform you of the technical constraints that they will be working with and that your designs will need to consider.
Pair Design with Engineers
Pair Design is the process of working with a partner on solutions to your problem. You may have experience doing this with other designers but why not try it with the engineers you work with? Before you open up your computer, sit down with them and start a conversation, sketch out your ideas on paper or on a white board. Get the design process out of your head and out in the open where others can see it. Articulating your choices and considerations makes you really think through the choices you are making. It’s likely that the engineers you are working with are capable of coming up with great design solutions too. When you engage with them early in the process, you foster respect and rapport. With engineers on your side, it’s a lot more likely that they will work with you to get some of your crazier ideas out the door.
Sit with the Engineering Team
Co-locate with your engineering team. Conversations flow easier when you can lean over and chat with someone, or swivel your chair around. If you can’t sit with them, go out of your way to get lunch or coffee, and get to know them better. The better you understand your co-workers perspectives, the better prepared you will be as a designer. Don’t be that stranger that lives across the building, and comes over every once and a while to boss them around.
Embrace New Tools
Check out some code, break the build, plead for help as you try to fix your mistake. Get your hands dirty. This will help you create more empathy for what goes into building a product. There are many times I’ve asked a developer I’m working with to “just move this one little thing,” but once I dug into the tools myself, I found out that “that one little thing” was just a flick away from toppling the dominoes that make up the app. Learning the platform you’re designing for by being a user of it not only makes you a better designer but also earns you respect from engineers.
Embrace Design Patterns
My work is focused mostly on native mobile apps and I encourage other designers to embrace platform design patterns. By taking advantage of a platform’s native building blocks, the engineers can ensure maximum compatibility with both previous and future versions of a platform. Which in some cases makes it quicker and easier to build. On the user’s side, when your design uses those patterns they can draw on the muscle memory they have from owning that devices and using it frequently. iOS is moving towards a responsive experience, like the web. Android has embraced that pattern for a while now. Our designs need to work on smartwatches, phones, phablets, and tablets of an increasing variety of sizes.
Teach about Design
As you are learning more about the platform, UI patterns, and the code base, offer to teach your engineers about typography, color theory and other design principles. Explain why that little tiny gray line is so important and the impact that has on the branding of your application. We are at a time where companies can no longer get away with releasing products with bad design. It’s up to us to evangelize design, and teach others about the importance of design thinking.
We are taught as designers to build empathy and trust with our users on the products we create. Now, let’s use those skills with the people we work with. I believe that a better working relationship between designers and engineers will make for tighter-knit and more effective teams. Teach engineers about design thinking, involve them early in the process, pair design with them and create empathy for your team mates. Creating software is awesome, so lets go out there, and make something amazing together.