The Clean Code Blog

by Robert C. Martin (Uncle Bob)

Women In Demand

04 October 2017

The demand for programmers is high, and growing:

“According to the U.S. Bureau of Labor Statistics, software developer jobs are expected to grow 17% from 2014 till 2024. They categorize this growth as “much faster” than the average rate among other professions.” Forbes 2017

The supply of programmers is well behind the demand.

“In an average month, there were 115,058 unique job postings for software developers and 33,579 actually hired. This means there was approximately 1 hire for every 3 unique job postings.”Emsi 2017

Why then is the industry ignoring nearly 50% of the population?

“92.1 percent of the respondents to Stack Overflow’s 2015 developer survey identified as male; only 5.8 percent identified as female. (The remaining respondents either chose “other” or declined to answer.) The survey was conducted online in February, using ads placed on Stack Overflow, and included respondents from 157 countries.”Splinter 2015

Could this be a clue?

“Computer Science and Engineering majors have stagnated at less than 10% of all degrees conferred [to women] in the U.S. for the past decade, while the demand for employees with programming and engineering skills continue to outpace the supply every year”Randal S. Olson 2014

Or this?

“The share of computer science majors who are women also has been in a near constant decline since the early 1980s, with women representing about 15 percent of computer science majors in 2011.”Inside Higher Ed 2015

This is made all the more poignant given that women outnumber men in college by 2:1.

“Although college enrollment has increased, the ratio of male to female students is nearly 1:2 “Denver Post 2017

So, even though twice and many women enroll in college than men, fifteen times as many men become programmers than women.

This ratio is much worse than the CS graduation rates.

  • Of the 812,669 bachelors degrees earned by men in 2015, 48,840 (6%) were in Computer science. NCES

  • Of the 1,082,265 bachelors degrees earned by women in 2015, 10,741 (1%) were in Computer Science NCES

So five times as many men than women graduate with BSCS degrees. Then, nearly two out of three of those women do not pursue a programming career.

I gave a keynote talk to several hundred programmers recently. I asked all the programmers to stand up; and then asked all the men to sit down. A paucity of people remained standing. Perhaps one in twenty.

I don’t want to overstate it; but that’s a significant signal. The question is, what does it signify and what can be done about it?

The question is not an idle one. The demand for programmers is not going to abate. We are going to need more and more programmers over the next several decades. The lack of supply is going to drive salaries higher and higher. You’d think that massive numbers of young people, both men and women, would be lining up. And yet most women are not. Why not?

I have pair programmed with women who coded rings around me. I know women can code. So why do so many who graduate in CS take another direction. And why do so many entering college fail to consider the career?

Is it possible that women are being actively rejected by the job market? Given the high demand and the low supply, that possibility seems absurd. Businesses that are starved for programmers can’t afford to filter based on gender. They can’t afford to filter based on anything except merit[1], and they’ll have to compete for that. What’s more, there are many employers who have engaged in outreach programs specifically aimed at recruiting minorities and women. So, whatever it is that is shunting women away from becoming or remaining programmers, it’s difficult to believe that it’s a hiring policy.

Is it possible that women are being actively resisted by the colleges? In a student body that is dominated 2:1 by women, you’d think a problem like that would be resolved very quickly. No institution is going to want to alienate two thirds of it’s paying clients. Any institution that did, would find itself in deep financial trouble very quickly.

If a plurality women students expressed interest in computer science, the universities would bend over backwards to accommodate them. In fact, they are bending over backwards to accommodate them. Or at least some are. The rest are certainly very concerned.

Some researchers think the problem is really in high school.

“Researchers found that computing appeal for girls peaks in middle school, where having an inspiring teacher and thinking that coding is “for girls” are instrumental in sparking interest. The appeal dips in high school in what researchers call the “high school trap” because of a lack of friends in coding classes or the lack of those classes at all.”USNews 2016

We can envision this as a pipeline of potential programmers. This pipeline begins in primary school or before, and wends its way through middle school, high school, college, early internships and jobs, and finally to careers. Somewhere along this pipeline, and perhaps at many places, women are shunted aside.

That shunt may be very early indeed. As Maggie Johnson, Director of Education and University Relations at (ironically) Google, says:

“It’s important to note that there are no biological or cognitive reasons that justify a gender disparity in individuals participating in computing (Hyde 2006). With similar training and experience, women perform just as well as men in computer-related activities (Margolis 2003). But there can be important differences in reinforced predilections and interests during childhood that affect the diversity of those choosing to pursue computer science.

In general, most young boys build and explore; play with blocks, trains, etc.; and engage in activity and movement. For a typical boy, a computer can be the ultimate toy that allows him to pursue his interests, and this can develop into an intense passion early on. Many girls like to build, play with blocks, etc. too. For the most part, however, girls tend to prefer social interaction. Most girls develop an interest in computing later through social media and YouTubers, girl-focused games, or through math, science and computing courses. They typically do not develop the intense interest in computing at an early age like some boys do – they may never experience that level of interest (Margolis 2003).”Google Research Blog 2015

Director Johnson’s notion is, to put it very simply, that women tend not to be as interested in programming as men because, as very young girls, they prefer different forms of play.

Whether she is correct or not is a matter of some debate. However, it would appear that there are potential shunts all along the pipeline, from the very start to the very end. How can we remove those shunts?

There seems to me to be little downside in encouraging young girls and young women to consider programming as an entertaining activity, something fun to learn, and eventually a good career. This could be undertaken by parents, schools, and employers using various educational and public outreach programs. I also think that the boot-camp idea has merit, especially as an alternative to university. All these mechanisms help to unclog the upstream portions of the pipeline, where it will do the most good.

Is there a way to increase the demand? After all, as demand increases so do salaries. Won’t this attract women into the industry? Unfortunately this is the strategy we have been using for the last few decades, and it does not seem to be working. In fact, despite the increase in demand, and in salaries, the trend for women seems to be going in the opposite direction. HuffPost 2015

What about hiring quotas? Will they help to unclog the pipeline? The theory of a quota program might be that it artificially increases the demand for women. But, again, demand isn’t the problem. It’s already sky high and rising.

What quotas will do, however, is to redirect women into those companies that employ quotas, and redirect men into those companies that do not. Let’s imagine a scenario.

Assume that there are two sets of employers. Set G represents the big, high profile, companies who hire 10% of all programmers. They have big beautiful buildings, and lavish work areas. They have all the glitz and glitter we have come to expect of big software companies. They attract the best and brightest; and can keep them. Resumes and candidates flood into G; but only a few make the cut. If G’s demand is not sated, it is only because G keeps their standards very high.

Set R represents all the rest. These are small to medium sized employers who need programmers just as much as G does, but have to fight much harder to get the best people. Resumes and candidates do not flood into R. Instead, R must pay search firms and employment agencies for resumes. They seldom see the best of the best.

Now let’s use the numbers from above, rounded for convenience. In 2015 there were 50,000 men, and 10,000 women who graduated with BSCS degrees. G will hire 10% or 6,000 of them; 1,000 women, and 5,000 men. R will hire the remaining 9,000 women, and 45,000 men. G will choose the top decile from the batch. R will draw from the rest.

Now clearly I am making a lot of assumptions here. There are many reasons why top decile programmers may not want to work at G. I have completely bypassed the effect of startups, culture, and location. Still, as a general principle, we should expect that G will succeed in hiring a disproportionate number of the top decile.

I am also assuming that programmers can be divided up by a single performance dimension and assigned into deciles. This is clearly simplistic. There are many dimensions that an employer will use to select employees to hire. Still, it should be clear that employers will attempt to rank the acumen of candidates; and choose from among those who rank highest.

The end result of our thought experiment is that G and R will end up with the same ratio of men and women, and that the relative ranking of men and women in each set will be the same. G gets the 6,000 in the top decile, and R gets the rest.

Now let’s assume that G decides to establish a quota to hire 2,000 women, instead of 1,000. This necessarily means that they must lower their standards to accept the top two deciles of women, while still maintaining their standards for the top decile of men. In fact, since they will be hiring fewer than 10% of the available men, they can actually raise their standards for the men. This means that, on average, men will outperform women in G.

R will hire 8,000 women who rank at the 7th decile and below. R will also hire 46,000 men who rank from just above the 8th decile and below. The result is that R will see a lower ratio of women to men (17% instead of 20%), and on average the men will outperform the women.

One argument that can be presented against this analysis is that G will not have to lower it’s standards in order to hire women, because G will be looking at “other factors” that compensate for raw acumen or ability. Those factors may include culture, personality, etc.

This may indeed be true. However, regardless of what set of complex criteria G uses to hire more than the normal share of the women, R will have to choose from women that G passed over.

A quota policy may seem to be helping women by offering them a greater chance of employment. However, at least in this simplistic thought experiment, the net result is to tilt the playing field in favor of men.

  • No more women get hired overall, because demand is too high to allow any candidate, male or female, to go unhired.

  • In the vast majority of environments (R) women will appear scarcer than they really are, magnifying and reenforcing the male signal.

  • In every environment the women will be working with men who, on average, will outperform them.

On top of all that, G will have hired 1,000 employees who fall below their normal standards. Overall the performance of their staff will be decreased. They must also face the ethical question of bypassing more qualified candidates in favor of gender – which is clearly discriminatory.

So it is difficult to see how a quota program helps anyone at all[2].


[1] I use the term “merit” in the sense of academic or professional achievement.

[2] I am fully aware that this post will generate a fair number of nasty responses. That’s the way of things in our current polarized environment. My hope is that it also stimulates some reasoned and civil discourse. I do not hold that my conclusions are absolutely correct in every regard. My goal is to learn from others. So if you can tell me, kindly, and respectfully, where the flaws are in my analysis, I would be grateful.