How Well Do Developers and Non-Developers Work Together?
I asked 200 cross-functional dev teams how well they communicate and collaborate. Here's what I learned.
Join the DZone community and get the full member experience.Join For Free
Product development is (almost always) a team sport.
To build a successful product, multiple stakeholders must work together during the development cycle to get things done. This includes engineers (obviously), product and project managers, designers, QA, and even the folks in marketing and sales.
But getting “developers” and “non-developers” (non-engineering stakeholders) to work well together isn’t trivial. Because not only does each role fill a different technical function, but they are also fundamentally different in terms of how they work, the tools they use, and the way they communicate with others on the team. And when asking people with different roles, personas, and styles to collaborate on a complex task - there's bound to be some tension.
This workflow tension between stakeholders is widespread and well-known across the industry. Just look at the number of memes and jokes that are out there poking fun at how developers and non-developers interact.
But what's interesting is that sometimes, the most commonly recognized issues are the least defined and most misunderstood.
Sure, everyone knows that cross-functional collaboration issues exist, but most of us don’t give it much thought. We just roll with it, mutter some stuff under our breath and continue on to the next all-hands meeting. It seems a lot easier to accept it and suffer than to analyze, understand, and correct it.
So I decided to go against the grain and take a closer look at this. For the past year, I (together with my team) have studied how developers and non-developers collaborate and communicate throughout the product development workflow. I looked at what works and what doesn’t work and what exactly each persona is thinking about the other at every step of the way.
If you're wondering why anyone would spend so much time on this, it's a fair question.
The truth is, I've experienced this tension first hand having worked in product and marketing roles for several companies, But my main motivation was joining Livecycle. Because by doing so, I was tasked with helping to build a product designed to solve this very issue.
Since the primary value of our product is to speed up feedback loops and reduce workflow tensions (by enabling contextual feedback on top of any preview environment), I felt like I needed to deeply understand what those tension points were all about in the first place.
And what better way to do that than to speak to hundreds of people who are affected by this every day?
So I got to work and ended up hearing from representatives of 200 software development teams from around the world (how I got them to talk to me is another story entirely). I asked them about their routines and workflows. I inquired about their interactions and their frustrations. I gathered responses from people filling all of the key engineering and non-engineering roles working in companies ranging from pre-seed startups to publicly traded corporations.
Some of the data reinforced what was perhaps to be expected, but much of it was revealing. And the whole process was really fascinating.
I've put together a summary of some key data points and takeaways with the hope that my efforts can be valuable to some of the other teams out there.
Developers and Non-Developers Communicate Differently
The first thing that jumped out at me was the extent to which developers and non-developers communicate (and operate) on different wavelengths. Each persona on the team has their own unique cadence and style of communication.
Some of the key numbers:
Developers Get Interrupted Way Too Often
41% of developers admitted to being “annoyed on a regular basis” because non-developers interrupt them with random questions.
Developers Don’t Understand the Feedback They Get
53% of developers said they often don’t understand review feedback from non-developers, and they need to invest more time to review it with them in order to proceed.
Developers Are Asked to Use Too Many Tools
54% of developers said that they are forced to use too many tools for the sole purpose of communicating with the other stakeholders on the team during the development workflow.
Developers Are More Frustrated About This Than the Rest of the Team Realizes
The fact that developers are frustrated about these kinds of things is notable but not entirely surprising.
What was really interesting, though, was discovering the extent to which the rest of the team has no clue that their engineering colleagues feel this way.
When we asked non-developers how their developer colleagues felt about these issues, a significantly lower percentage of non-developers answered affirmatively compared to the direct responses from the developers themselves.
Here’s a side-by-side comparison:
“Developers Are Annoyed by Frequent Interruptions by Non-Developer Colleagues”
41% of developers agreed with this statement.
But only 15% of non-developers felt this was true.
“Developers Often Don’t Understand Product Review Feedback From Non-Developer Colleagues”
53% of developers agreed with this statement.
But only 29% of non-developers felt this was true.
“Developers Are Forced to Use Multiple Tools to Retrieve Feedback and Context From Non-Developer Colleagues”
54% of developers agreed with this statement.
But only 23% of non-developers felt this was true.
This shows that, on average, “non-developers” don’t realize how frustrated their engineering colleagues are about these workflow and communication pain points.
Context Switching Negatively Impacts Developer Productivity
As a general rule, developers like to stay focused, and they hate context-switching. A typical collaborative workflow involving multiple stakeholders makes this challenging.
Two Types of Context Switching
Through our discussions with developers, it became clear that this aversion to switching contexts manifests itself in at least two ways: switching tasks and switching environments.
Switching tasks is when developers are asked to stop (current) task one and focus instead on (new) task two. Developers can’t stand this.
However, switching environments is more subtle and possible even within the context of the same task. This is when developers are forced to leave the context of a preferred tool (say, GitHub, for example) and move to a more foreign tool or platform to complete the task at hand (this might include reading an email or reviewing a Jira ticket).
The Impact of Context Switching
The bottom line is that any type of context-switching negatively affects a developer’s ability to be productive. In our research, 44% of developers admitted that “interruptions and context switches regularly and negatively impact my productivity” in a significant way.
This is even more significant when combined with our previous findings about developer interruptions. Remember that above, we highlighted that non-developers are 50% less likely to realize that developers are annoyed by their questions and interruptions.
That means that non-developers are twice as likely to keep asking these “innocent” questions and causing context switches during the development workflow.
Poor Collaboration Has a Direct Impact on Developer Experience
As an industry, we’ve coined a new phrase in “developer experience.” If “user experience” is the level of comfort, accessibility, and joy that an end user feels when using a product for its intended purpose, “developer experience” is the level of comfort, accessibility, and joy that an engineer feels when actually writing code and developing software.
Technical employees expect work environments and tools that will enable them to do their best work. Companies are realizing this and taking deliberate steps to make the actual workflow more enjoyable. Some companies have gone as far as introducing a new Developer Experience function on the team whose sole responsibility is literally to enhance the work experience of the development team.
And so, as part of our research, it was important for us to try and assess the impact of poor collaboration and communication on a team's overall developer experience.
To do this, we asked developers and non-developers if they agreed with the following statement: “Poor communication and collaboration with other stakeholders make my time at work less enjoyable in a direct and significant way.”
- 52% of developers agreed with this statement.
- By contrast, only 26% of non-developers agreed.
This discrepancy is in line with our findings above that non-developers are ~50% less aware of the workflow frustrations of their developer colleagues. And, significantly, more than half of the developers we surveyed felt that their developer experience was negatively impacted by the team's communication and collaboration issues.
Developers See the Cause and Effect of Poor Collaboration More Than Non-Developers
It’s difficult to measure the impact of poor workflow collaboration and communication in real business terms. Instead, we tried to understand at least how the impact is perceived by the people involved. We asked the product development teams to indicate the extent to which poor workflow collaboration and communication directly affected their product quality, delivery schedule, and tensions with outside parties.
Here’s what we learned:
Poor Workflow Communication Leads to Lower-Quality Products
45% of developers said that these issues have directly and negatively impacted the quality of their products. Interestingly, only 18% of non-developers felt this way when asked the same question.
Poor Workflow Communication Leads to Delayed Deliveries
47% of developers said that these issues have directly caused delays in product delivery.
32% of non-developers felt this way when asked the same question.
Poor Workflow Communication Leads to Tension With Customers and Management
46% of developers said that these issues have directly created tension between the team and company management or between the company and the customer.
38% of non-developers felt this way when asked the same question.
Cross-Functional Collaboration Affects How People Accept and Leave Jobs
The impacts of poor workflow collaboration and communication aren’t limited to product quality and delivery delays.
Our research found that these issues are having a real effect on the HR department as well.
Nearly 60% of developers and 65% of non-developers indicated that the ability (or inability) to collaborate effectively with other stakeholders during the product development workflow is a key consideration when deciding whether to take or leave a specific job.
In a time when tech companies are scrambling to find, hire and retain quality talent, these are startling numbers. It’s clear that the productive interaction between developers and non-developers as they build products together is a lot more serious than just another funny joke or clever meme.
Which Workflow Tasks Need the Most Improvement?
The data points presented thus far give us broad indications about the state of cross-functional collaboration during the “development workflow,” but they don’t help us understand specifically what actions need to be improved. Every workflow contains a series of specific activities that have the potential to be trouble spots for the multidisciplinary team tasked with executing them.
So we took a deeper dive on this point to better understand exactly which workflow tasks could use the most improvement with regards to cross-functional communication and collaboration.
Here’s the data we came back with:
UI Design Reviews = 57% of respondents said their team needed to improve this.
Bug Reporting = 37%
Acceptance Testing = 35%
Copy Reviews = 28%
Setting up staging environments = 26%
Code Reviews = 20%
Documentation = 4%
Analytics = 2%
"Our workflow is perfect!" = 2%
Developers Are Slightly Less Optimistic Than Non-Developers
Finally, after hearing so much about the problems and frustrations, we were curious to know if these development teams held any hope for change and progress. To do this, we asked our respondents if they agreed with the following statement: “Developers and non-developers will never fully collaborate or communicate. It’s like cats and dogs or oil and water. They just don’t go well together.”
45% of developers agreed with this statement, as opposed to only 3% of the non-developers.
It’s clear that developers are frustrated with the state of communication and collaboration during their pre-release development workflows.
Non-developers are relatively oblivious to their feelings on the matter, and they don’t correlate the effects of poor communication and collaboration the way that developers do.
Everyone agrees that these issues are fundamentally important and that they have the potential to affect many areas of a team’s day-to-day operations.
And while many developers believe that there is nothing that can be done to improve this, the vast majority of non-developers remain optimistic.
Just being aware of these friction points, understanding their prevalence, and appreciating their impact are important first steps. That awareness, together with the adoption of developer tools, is proving to be a combination powerful enough to dramatically improve — if not completely reverse — these negative trends.
So, all things considered, we’re pretty optimistic about where things are headed.
Despite what half the developers out there might tell you :-)
Published at DZone with permission of Zevi Reinitz. See the original article here.
Opinions expressed by DZone contributors are their own.