The desperate need for diversity in software development.
James Damore doesn’t speak for tech. We need bright, inquiring, collaborative minds now more than ever.
I don’t often write about political, personal or sensitive subjects but in the aftermath of the idiot Google developer who got fired last week, it seems time to throw in my two cents. I’ve never met James Damore but I can tell you, apart from being someone I don’t want to meet, he’s also likely not a very good programmer, for reasons that get to the heart of modern software development.
I’ve been working in software for 20 years, both in huge and tiny companies, with groups of engineers from 2 to 50. It’s been exhilarating, frustrating and painfully rewarding, but I’m drawn to this business like a moth to the flame for the same reason so many of us are here — you can solve any problem with software.
What makes a good developer?
The appetite for engineers is voracious and the demand grows every year. There are very few careers where a person can pick up the phone, command a six-figure salary and land a job in 24 hours. There’s a huge and accelerating problem in sourcing the talent needed to build all the applications needed in the world. It’s a serious problem.
In the hiring process you often hear the question: “What makes a good developer?”. The logic goes that perhaps if you know which schools they must attend, or which programming languages they must know, then you just hire more of those and your company gets better. It seems like a logical approach to staffing but, in my experience, has never worked — even in industries with the budget to hire these supposed unicorns.
It’s frustratingly elusive because I’ve also seen dreadful developers who look great on paper — people the companies courted but they just failed to deliver on every level. Equally I’ve met people who changed careers, picked up some books and online courses, and went on to become giants. We all want to hire people who can build software well but who are these people? Why are they so hard to find?
The two most important traits of a great engineer.
While software development is portrayed as a science, one of the reasons why it’s so hard to build a great team is that it’s really not. Computer Science — the stuff they teach at school about algorithms and electrical engineering — is absolutely scientific and definitely helpful if you’re that way inclined.
But here in the real world, software development is much less about knowing anything scientific and much more about collaboration. There are no “teams of one” in corporate IT, there’s no flying solo in the paid business of building applications, and if you can’t work productively with other people you will crash and burn in this business. All but the most trivial software is now too large and too complicated for one person to build and maintain it. Colleges don’t teach this by the way.
The myth of the genius developer who works alone is actually nonsense and potentially dangerous. More often than not, if you come across an engineer who believes they are smarter than everyone else, their software is usually terrible — buggy, incomplete and badly commented. Movies might like the idea of the lone coder but in reality the development process simply fails when you encounter individuals like this.
The second skill — which I’ve believe is even more critical — is general problem solving. Over the years technology evolves, programming languages and frameworks are forever shifting, but the core nature of what we’re doing has never changed — we are solving problems. If you give up easily when facing complicated challenges, you’ll never been a great developer.
A good problem solver is somebody whose brain latches onto a question and refuses to let go. They think about it when they go to bed and wake up with a dozen ideas they want to try. They try, try, try, try and try again, and don’t stop trying until they’ve found a solution. I love these people — not only do they write good code but they inspire others around them through their steadfast, pain-in-the-ass doggedness of chasing down an answer.
Why diversity matters so much.
Software teams have so often been full of young, white men with computer science degrees, often to a ridiculous level. I mention ‘young’ because unfortunately tech is an ageist industry in addition to everything else. It self-perpetuates in the recruiting process since those teams tend to hire yet more people like themselves until eventually somebody notices that the group has become a mini cloning factory.
But let’s be clear: the problem here isn’t that we have a shortage of young, white men or that the lunchtime conversation can be incredibly dull. The real issue is that it tends to lead to a mono-chromatic, average approach to problem solving and an inability to think dynamically.
Creating a melting pot of people in a development team— young, old, male, female, black, brown, whatever — is not about meeting quotas or checking boxes for the HR department. Adding diversity is absolutely fundamental to the problem-solving process because we all have different life experiences, backgrounds and knowledge that combine to give us fresh insights and different approaches. Diversity is difference and that difference gives us a competitive edge.
The best software teams I have ever worked with, without exception, have always been extremely diverse, not just in terms of sex, race and nationality but also life experience. Tellingly, in the teams I’ve been most proud of, not once did anyone ever credit good work along race lines or question somebody’s ability based on their biology. It’s blatantly offensive, downright disgusting and patently absurd.
The damage of Damore’s diatribe.
Damore’s academic-looking paper could well have been titled “Sexism with Footnotes” though it’s surprising how many ill-informed people have jumped to his defense. It may be yet another joy of the current political environment, but the fact these ramblings were even given so much airtime has sinister overtones of a darker past.
His 10-page paper is a weird mixture of scientific-looking graphs, broad characteristics attributed to women, and whining about how nobody listens to conservatives. I read it just to make sure he wasn’t being misrepresented but honestly shouldn’t have wasted my time. Short of suggesting we could measure people’s skulls or start breeding smart people together, it reads like something more likely be produced by a white nationalist movement than anyone in technology. It’s an embarrassing disgrace — Google was right to fire him immediately, and hopefully the company vigorously defends his frivolous legal action.
I’m sure in a few days the world will forget about James Damore and hopefully with time he will grow up and reflect. I could care less about him, but my bigger concern is the lasting deterrent this has to women wanting a career in tech. Whether it’s Uber’s culture of sexism or the general lack of diversity in Silicon Valley, headline after headline, it would be easy to conclude that this would be a lousy career if you’re a woman.
I am here to tell you that is not the case.
I have worked with some brilliant women in this industry and there are limitless opportunities for women who want a bright future in this space. We have a huge, massively unmet need for talented people and we desperately need you.
Despite the headlines, there has never been a better time to make a career switch, change your college major, train online, join a hackathon, try a coding challenge or just see if it sparks with you. Despite the headlines, there are armies of men and women in this business who want you to join us, help us and lead us to the answers we’re trying to find.
Throughout my career, I have had the honor of working with some first class software developers, both men and women. What I’ve learned from them has been truly inspiring and has made me a much better software developer and product manager. I personally invite you to come and join us.