Beyond Code: The Human Element in DevEx - Belonging, Collaboration, and Communication Explained
Welcome to the fourth edition of DevEx Nuggets, your weekly guide to enhancing Developer Experience (DevEx). After delving into the importance of psychological safety, security, and stability in our previous editions, we're taking a step further up the Maslow Pyramid of DevEx, focusing on "Belonging, Collaboration, and Communication".
Belonging
Every person needs a sense of belonging to flourish truly. Feeling out of place or disconnected can dampen creativity, reduce productivity, and increase turnover rates. Let’s see how to build this in our teams:
Foster Inclusivity: Creating an inclusive environment where every person, regardless of background, feels valued, respected, and heard is paramount. A great first step in this direction is to approach differences with curiosity instead of rejection. Acknowledging our unconscious biases and seeking to understand first gives people the space to express themselves and feel respected. As a leader, create an environment where everybody feels comfortable to speak up and share their thoughts. Invite people into discussions who are naturally more silent and rarely speak up without being asked.
Celebrate Small Wins: Recognize and appreciate the little successes. It not only boosts morale but also reinforces a sense of belonging. Appreciate people openly for their contributions and their work.
Encourage Networking: Close relationships across the company form a support network for individuals. People are far more likely to address and solve their challenges when they can turn to various people they trust. Ensure that people take time to connect on a personal level. This nurtures trust, safety, and belonging.
Spend time together: Teams are not only groups of individuals. They form a unit that works closely together. Ideally, teams spend significant time together working synchronously and also spending time together outside of the classical work context. This can happen during offsites, team coffee chats, or virtual games. However, in my experience, the best team-building activity is a proper collaboration session with personal moments.
Collaboration
Effective collaboration is a crucial aspect of high-performing teams and essential to outstanding developer experience.
Pair-, Ensemble- and Team-Programming Sessions: It’s not just about writing code. It’s about learning, teaching, and working together. It is about understanding each other, growing connections, and building trust and relationships. And it also will yield better results.
Use the Right Tools: With more and more work happening in distributed settings, invest in collaboration platforms like Slack, Zoom, Miro, and others which make working together seamless. While this is essential for remote teams, it is also crucial for hybrid teams or teams with a home-office policy. When one team member is remote, you won’t get outstanding developer experience and performance without optimizing for that setting. Using the right tools significantly contributes to the experience during collaboration sessions and their success.
Choose the correct format: Successful collaboration depends on all people being able to participate fully. Depending on the group and people within, power dynamics, insecurities, or other aspects might negatively influence the groups’ ability to collaborate effectively and with an outstanding experience for participants. Consider different formats, an external facilitator, or a suitable Liberating Structure to ensure effective and enjoyable collaboration sessions.
Code Reviews: Asynchronous code reviews should be your last resort in collaboration. Remember that they mean delayed feedback and potentially wasted work. Genuine collaboration is always more effective and yields a better developer experience. When doing asynchronous code reviews, aim for short (no) delays and focus on the bi-directional learning opportunity rather than fault-finding.
Cross-Team: Collaboration isn’t just something to be done within a team. When results depend on the interaction with other departments or teams, it is better to engage with those teams and find ways to collaborate more closely instead of handing over partly finished work and waiting for completion. Note that the need for cross-team/cross-department collaboration can indicate a mismatch of team topologies and value streams. If those dependencies exist long-term, realigning teams and their ownership can positively impact DevEx and organizational performance. (Reach out if that is an important topic for you)
Communication
Clear communication can prevent misunderstandings, missed deadlines, and flawed implementations and deepens the feeling of belonging. Here’s how to strengthen it:
Default-to-Open: You never know who can benefit from or contribute to a conversation or a piece of information. While it is tempting to quickly ask something in a direct chat, asking in a public channel has the benefit of more people being able to answer and learn from the answers. I wrote more about this principle here.
Make it effortless: Communication with any person in the organization needs to be initiated without effort. An engineer might need to talk with somebody in sales or marketing or vice versa. This shouldn’t require long conversations to find the right person to talk to and the right way to approach them. Ideally, every person in the organization (including the CEO) is just a Slack message away and quick to jump on a huddle if that eases the communication. If communicating with the right person is difficult, people tend not to do it and find workarounds like making assumptions about what that person would say.
Over-communicate: Just because you said something once does not mean it was received or understood. People might overhear or miss your announcement or not consider it important when hearing it the first time. Important messages should be shared repeatedly and via various media (like all-hands, video, and chat messages).
Make it bi-directional: When communicating vision, strategy, or values, many leaders make the mistake of treating those as uni-directional announcements. This doesn’t increase the likelihood of the message to stick. Better engage people, ask them questions, and help them think about the topic. This deepens their understanding and ensures that it matches yours. Furthermore, it opens the space for discussing and questioning certain aspects, leading to better results and buy-in.
Explain it back: When somebody explains something, make it a habit to explain it back in your own words. This makes it easy for them to check if you understood it correctly and helps deepen your understanding. This practice helps to prevent misunderstandings from the beginning.
Documentation: Make it a habit. Whether it's code, design decisions, or meeting minutes, documenting ensures everyone is on the same page. Be mindful of different lifecycles of documentation and keep documentation updated if it is supposed to be long-living.
Question of the Week
How do you promote belonging, improve collaboration, and strengthen communication within your team?
👉 Share your strategies and challenges in the comments.
Tobi's Top Reads of the Week
Developer Productivity for Humans, Part 4: Build Latency, Predictability, and Developer Productivity — This week, I enjoyed reading this paper by Ciera Jaspan and Collin Green on build latency and its developer productivity. To summarize, there isn’t a magic number threshold below which build time is considered good enough— even small improvements in the build time and predictability of those positively impact developer productivity and experience. Engineers will switch tasks less often and get feedback faster.
Scaling Engineering Teams Without Traditional Managers — Companies without classical hierarchies can perform better, allowing for a better developer/employee experience. Therefore I enjoyed reading this experience report by Alexandre G. about a startup choosing an alternative approach.
Thank you for staying tuned to DevEx Nuggets. Next week, we'll explore the elements that drive focus, clarity, and flow in engineering.
Until then, keep coding and connecting!
Warm regards,
Tobi