When we fail to welcome diversity, we're missing out on being better at software engineering.
The skills you need to thrive in an inclusive workplace are the same skills that will make you an amazing software developer. So not only do we have teams where diversity is not valued – the developers in those teams are missing out on the chance to be so much better at their jobs!
Let's break this down. I'm going to show you three skills you need in order to succeed in a diverse workplace – three skills that will also make you a stand-out software developer.
If the person you're talking to comes from a different background, you might have a harder time understanding them or getting your point across. When you don't share the same childhood experiences, don't watch the same TV shows or live in the same country, you have to make a special effort to understand each other.
This requires a really good communication skillset. The same skillset that is great for explaining technical topics to people without a technical background, onboarding a junior developer or finding the right way to present data to a user.
Working effectively with someone different from yourself requires something we often call empathy – the ability to see things from their perspective.
Empathy also helps you:
- Collaborate with co-workers playing different roles e.g. product management, design, legal, sales
- Better understand what your users or customers need from the software you're building (spoiler: your user base is likely very diverse)
- Guide someone you mentor as they try to visualise a career path or a find a resolution to a difficult situation
- Review code well - this requires the ability to understand what the person was trying to achieve through the code they wrote
Here's where I think things get really interesting. At its core, empathy is an act of imagination. To truly understand someone, you need to put yourself in their shoes and see the world like they do. It's easy to leap from here to the general value of imagination in the workplace – imaginative thinkers are better problem solvers, more creative, more resourceful.
But this extends to writing code too:
- Writing software is in many ways creating something out of nothing and for that you need a bit of imagination to understand what it is you're trying to create
- Debugging software requires the ability to imagine what's happening in the computer's memory
- Software design is often about creating useful abstractions. These act as metaphors for a system and you need to use your imagination to create them and understand them.
How do you see yourself? Are you aware of your strengths and weakness? Of your prejudices and biases? Of how you come across? Being able to answer these questions is crucial to working effectively with people from different backgrounds and is also the bedrock of a good software engineering career.
Knowing yourself will allow you to better plan your career, know the skills you need to build and gather the right feedback to support your learning. It will also help you understand the adjustments you need to make to respond to different situations (e.g. a new project, a tough job interview, learning a new UI framework).
Not only will working in an inclusive workplace help you gain the skills above, but I've found that working with people from a variety of backgrounds gives you a much broader range of skills to draw from, to lean on and to enjoy learning from. If you imagine the skill-set of your team as a bookshelf with each book representing a skill, a diverse team means you get to work with a much fuller bookshelf.
If you're hiring software developers and you think you have to make a choice between hiring a diverse team and a good team – think again.
If you're a software developer looking for your next role (irrespective of your background) look to work in as diverse a team as possible and favour employers seeking to build an inclusive workplace.
I believe there's a strong ethical argument for us to demand inclusivity as a core practice from our employers, but even on a personal level doing so will give you the opportunity to work with people that can teach you some of the most valuable (and rarest) skills in the tech industry.