“Full stack” learning, empathy and tackling the designer-developer divide

Improving team empathy and encouraging multi-disciplinary learning can help designers and developers work together more effectively across the design process.

(Photo credit: Mimi Thian, Unsplash)

Product development is one of the biggest teams in tech, where you find people with various roles and skill sets with a passion for building something amazing. But are they really working together? 

A product team can have the best quality UX designers and software developers in the industry, yet often these roles will work within their siloes with little to no interaction until hand-offs in the latter half of the design process, ultimately creating a designer-developer divide. 

A far too common lack of interaction between these key roles has caused unnecessary setbacks, distrust in teams, stereotyping and even an “us vs them” attitude from both sides. Anyone with experience in product teams will tell you that UX design and development are equally important for building amazing products, and alignment between these roles is critical.

So why do rifts form between the two? The answer is inevitably a need for more empathy and understanding across teams.

 

Pitfalls of the ‘divide and conquer’ method

In product teams, tasks are often delegated to designers who focus on user needs and developers who focus on building within the boundaries of existing technology. This is coupled with many design and development teams having designated spaces to work in their offices. While these spaces can be useful for deep or focused work, they can encourage teams to work separately and lose collaboration throughout the design process. 

The most common example is the design hand-off to the development team. When this occurs, after little to no involvement of developers in the early phases of the design process, pressure is placed on developers to execute design artefacts that may not be functionally possible or within budget. 

“Communication between designers and developers is not encouraged, we get the designs once they’re finished without any feedback from developers.”

(Anonymous Full Stack Developer, 4 years’ experience) 

Designers will then spend long periods researching and crafting user interfaces that include creating new features and interactions, only to be told big changes will be made to their designs to fit within technical and budgetary constraints. They will construct a view of developers as overly technical and limiting their creativity by giving them these constraints, and developers will respond by perceiving design as subjective and lacking technical knowledge. This way of working leads to the consequences of distrust among teams and a lack of transparency. 

Both these characterisations are far too common in the product space and point to lack of communication and understanding. Ultimately, designers and developers seek the same goal, but speak a different language.

With this in mind, let’s explore some solutions for improving collaboration and team empathy.

 

Include developers in the whole end-to-end design process

Many teams will only start to involve the development team in the latter half of the design process – develop and deliver when it’s time to make a practical solution. This leaves developers in the dark on understanding the problem, and too much of the exploratory tasks to designers. It also causes unnecessary bottlenecks where designers wait to hear back on changes as developers grapple to make designs work that may not be viable.

“You need to bring devs in early, set up effective design systems with them involved and create a collaborative workflow, otherwise it just puts too much pressure on the team later on”

(Kelly, UX/UI Designer @ Deloitte Digital)

Instead, encourage the development team to collaborate and be involved in the end-to-end design process. This can be achieved by having developers represented in sprint planning, defining workflows, and building design systems. This will encourage development and design teams to make changes early on, avoid delays in the design hand-off and interact more frequently.

Communicate across teams and use the same language

Developers and designers can have their own spaces to chat and work, but if it’s noticeable that they’re unaware of what each other does or what’s going on in the teams, it falls upon leadership to encourage open communication between the two. 

This can be done by leveraging in-person collaboration days, conducting sprint retros, and having developers attend designer meetings and vice-versa. Developer representation at design meetings will give devs an improved understanding of what UX design involves and allows them to have a stake in ideation and design critique. Likewise, having designers at developer meetings will demystify the technical boundaries they’re working with and help to represent user needs when delivering Minimal Viable Products.

Designers and developers must ensure they communicate by speaking the same language to have effective conversations and avoid confusion. One of the ways to do this is by sticking to your documentation on terminology and naming conventions, or through learning the basics of each other’s roles and what tools they work with.

 

Encourage “full stack” learning to fill knowledge gaps

A lot of developers and designers will only learn what’s required for their field and to get a job, staying in their own lane of specialist knowledge. But on the contrary, not only can these teams be more valuable individually in the job market by embracing “full stack” learning but will be able to empathise with one another’s teams when difficulties arise and build a better product in the long run. 

The “full stack” refers to developers who are able to build programs using the entirety of a system or application, comprising both the back and front-end. Design has a similar categorisation too, with full stack designers being capable of UX research, user interface design and front-end development. The “full stack” has also recently come to be defined as an adjective that refers to all phases or the entirety of its makeup, e.g. a start-up that can handle the entire value chain of its operation. It has become synonymous with multi-disciplinary capability, where someone is acquainted with many branches of learning, particularly in technology or business.

I chose to refer to what may be categorised as “generalist” or “multi-disciplinary” under this term, as I couldn’t help but notice the overlap in the Designer and Developer definition of what constitutes as the “full stack” below:

(Photo credit: Flatiron School)

What this shows is that designers and developers are more aligned than we think and there is enormous potential from it for improved collaboration. “Full stack” learning needs to be encouraged across teams, even if it means both teams learning the basics and uniting principles of each other’s role. 

For example, a designer may not be required in their role to learn to code (especially in large companies), but even being able to read and understand the basics of HTML, CSS and JavaScript makes a designer much easier to work with for developers. Similarly, UX/UI is not included as part of full stack development, but developers with UX and design thinking knowledge are able to build products that more effectively focus on user needs. 

Another option is hiring specific full stack designers and UX developers for linking the cross-over knowledge between teams. Tech Leads, Design Leads and Product Managers can also set a good example of the value of multi-disciplinary leadership by virtue of operating at the intersection of the teams at a high level. 

“A great Product Manager has the brain of an Engineer, the heart of a Designer and the speech of a Diplomat”

(Deep Nishar, Vice President of Product @ LinkedIn)


 

At the core, this is a pervasive clash of specialists, rooted in a lack of education and empathy of what each other do and why they matter to the team’s success. Designers and developers are equally valuable to product execution and have numerous things to learn from one another. By encouraging team cooperation and openness to learning skills across different fields, designers and developers will be able to deliver products beyond expectations.