Diversity, Scarcity, and Labour in Tech

An anonymous software engineer explains why we need to democratise software engineering education.

March 30, 2018

It happens in many a company: someone who is not on the engineering team posts an article in the #todays-smiles slack channel. It’s 500 feel-good words about computer science education in public schools, starting in elementary school, taught to everyone. The attached stock photo shows a first-grade girl with chubby cheeks and glasses, grinning over a keyboard. “They’re trying to devalue our labor”, murmur the engineers, glaring into the eyes of the girl in the photo. The only woman on the team shifts in her chair, wishing someone had taught her about computers when she was in first grade, the way her coworkers’ parents and older brothers had taught them. “They’re trying to flood the market so they can pay us less”.

Top-shelf benefits. Vacation time. Education stipends. A wage that can support a family. Respect in the workplace. On-the-job training and internal promotion pipelines. These are all the things software engineers have come to expect from their jobs, and they are all things that are very rare in the US labor market—despite being the bare minimum in other countries. Right now, it is only the whims of the market and the high barriers to entering tech that allow engineers to live the comfortable lives promised by their expensive educations. Relative scarcity of engineers forces workplaces to exploit them less than they exploit other workers. Software engineers must live in fear of the thing that engineering most desperately needs: diversity.

When I say engineering needs diversity, I don’t mean for the reasons the technocracy claims to think engineering needs diversity. It is true that a tech job is a good job that can give an individual class mobility (though that is not, right now, guaranteed by anything other than the whims of the market). It is also borne out by studies that diverse engineering teams are less likely to engage in groupthink, make better business and product decisions, and therefore are more profitable for their employers. These are the justifications for diversity for which you will hear neoliberals and liberals advocate because they are individualistic, profit-motivated, and rooted in identity. They are true, but they are not the full picture. Software isn’t just something that makes money. Software isn’t just a tool. Software is an ecosystem. It is the ecosystem in which increasing numbers of people are living, and if they only people who are designing and building the new ecosystem are the people who already rule the old one, the hegemonies inherent in the old system will propagate. We are building realities for our users. In order to make them fair and just, we must make them democratic.

There’s a very simple way to democratize software engineering: democratize software engineering education. The radical remapping of the world in which we live is far too important to be given to only the people who could afford a college degree, or a bootcamp (often touted as a solution to the “pipeline problem”, the first-ever coding bootcamp has actually closed down because in order to promote diversity, it ended up not charging enough tuition to keep its doors open), or the connections that allow them to drop out of engineering degrees and get a job from someone they or their parents know. Tech education must be free and accessible to everyone.

This is not to say that “anyone can learn to code”, the mantra repeated by well-meaning (but rarely technical) diversity advocates. Software engineering is difficult work. It is fiddly and requires advanced abilities to reason about systems and a limitless tolerance for failure. Very few people have both of those things. But far more of them do than are currently engineers. Democratizing technical education will allow those people to come into contact with computers earlier, regardless of identity or background. It will put the kids who have the talent but no one to tell them how to use it on the path to becoming the engineers who will make life better for the people in their communities. It will keep software engineering from being siloed into things that are profitable but functionally useless for most of humanity (when I lived in a rural community, there were many problems and Uber solved none of them) and will help us unleash the full potential of our technology and talent to build a better world; something tech companies all claim to do but which somehow rarely turns a profit.

Democratizing technical education, and thereby diversifying the industry, would be a boon to humanity as a whole, not to mention the individuals who discover their talents and put them to use. But engineers (justifiably) fear it would come with a price: more engineers mean fewer benefits. All those things mentioned above: top-shelf benefits, vacation time, education stipends, a wage that can support a family, respect in the workplace, on-the-job training and internal promotion pipelines…evaporated. Software engineers revealed by the market to be what they have been the whole time: workers. But software engineers are not the only workers who enjoy these things. All the aforementioned benefits are hallmarks of union jobs. They are enshrined in law elsewhere in the world as the fruits of organized labor.

The employers of software engineers can clearly afford to provide these things to them right now; it would be no more onerous for them to continue to do so regardless of how many engineers there are on the market. Furthermore, an tech workers’ union would allow the codification of pay scales and grievance policies, giving fair and standardized ways to deal with discrimination, putting an end to costly and embarrassing lawsuits that often force harassed workers to simply quit, fixing that “other” pipeline problem of what happens when people who don’t fit the mold of the average tech worker make it into tech. It would allow tech workers to safely choose not to participate in building unethical software. It would provide a force other than profit to drive the priorities of the tech industry.

If we want to diversify software engineering, if we want to actually “build the better world” the tech industry has promised, we don’t have to make a trade. We can address the barriers to entry and the discrimination that persists for those that do make it in without losing the compensation that makes our profession so attractive right now; we can organize as workers while we have the leverage of scarcity and ensure that once that leverage is gone, our leverage as workers remains. They can’t build it without us. Let’s make sure they build it with all of us.

The author of this piece wishes to remain anonymous.

read next