Skip to main content

Coding Towards Diversity

Average rating: *****
(5.00, 1 rating)

The issue of women in technology teams is hot right now. Not hot as in sexy, but hot as in unpleasantly heated. On the fringes are people that are very angry. Some are angry that we are talking about it because it should be a solved problem, and “Why isn’t the future here yet?”. On the other end are people who are angry that it is even considered worthy of considering, because “Things are fine the way they are”. Most people are in the middle, having angst about the issue without a good algorithm for change.

The process that most well meaning tech companies take towards hiring women mirrors the typical engineering hiring practice:

var employee = findWomanEngineer();
if (employee) {
hire(employee);
}

When needing a to hire an engineer, we put this behavior into a loop until we fill the role. If we apply this same loop to increasing diversity, we end up never resolving to a hire.

while ( needEmployee() ) {
var employee = findWomanEngineer();
if (employee) hire(employee);
}

Why is that?
* There are less women engineers than men. (You can’t control this)
* Women feel less empowered to transfer into the career than men
* Diversity clumps together, making it harder to get diversity if you have none

This means that plugging in a woman focused function into the existing loop, will likely resolve in a hopeless infinite loop. When companies arrive at this loop, being competent coders they recognize it immediately. They create an escape clause and alternative logic to fix the gap:

var i = 0,
employee;

while ( needEmployee() && i < MAX_LOOP_COUNT ) {
employee = findWomanEngineer();
if (employee) hire(employee);
i++;
}

while ( needEmployee() ) {
employee = findEngineer();
if (employee) hire(employee);
}

Sadly women will not get hired at this company despite the best intentions. Both of these algorithms are also patently illegal. You can’t go looking for a woman developer, just like you cannot go looking for a male developer. Hiring solely on the basis of gender is wrong.

Another problem with this algorithm is that the escape clause is measured by effort of the algorithm instead of its business value. That is likely because we don’t have a firm grasp of the business benefits of having a woman on the development team. That missing business value is called diversity.

So let’s rewrite or algorithm with a mind towards its business value.

while ( needEmployee() && diversity() < desiredDiversity() ) {
employee = findDiversifyingCandidate();
if (employee) hire(employee);
}

It is still an infinite unproductive loop, but it is now no longer illegal. The reason for the change is polymorphism. Instead of specifying a particular gender for the developer, we are specifying a business satisfying quality of the developer. We can continue to think of this as the same problem despite the change in language, and the unproductive infinite loop remains. So, let’s take a divergence into the value of diversity to examine the feature fully.

A series of studies has shown that the IQ of groups increase not with the IQ of members, but with the proportion of women:
http://www.sciencemag.org/content/330/6004/686.full. The researchers who produced the study conjecture that women bring social sensitivity to the group, which fosters the ability to solve problem better. Another reality is that people from different backgrounds see the same thing differently. They, in fact, think differently.

Developers tackle hard problem regularly. If a group of developers has a variety of visions in the problem space, and also the social sensitivity to explore and evaluate those visions, lots of good things happen. I value a diverse team over a monocultural team at a rate of 2-3 to 1. That means I see teams perform 2 to 3 times better if they have diversity. Actual experience may vary.

Since, diversity attracts more diversity, an organization only has to find a one bit of diversity to start on the path to a deeply diverse organization. That initial seed of diversity can take many different forms. As long as it is combined with an attitude that appreciates and fosters diversity.

Looking at the feature through this lens, transforms the entire algorithm:

while ( cannotFindDiversity() ) {
changeAttitude();
}

But what is involved in changing the attitude of an organization?

Change Unfriendly Culture:
* Value collaboration over competition.
* Squash essentialist beliefs.
* Choose curiosity and openness over superior brilliance.

Examine Your Barriers to Entry:
* Interview for ability not culture.
* Choose drive and passion over pedigrees.

Publicize Your Intention:
* Blog about the diversity that you want
* Organize events to foster diversity

Look More Carefully, Diverse Candidates Are Less Visible
* Look for candidates that have been passed over
* Find candidates that have settled for less than they can do
* Recognize engineers that have been diverted to careers nearby

Look More Creatively:
* Look for people that are already re-educating themselves
* Scour the people near you that have the coder mindset
* Mentor and create an internship program

This kind of infinite loop adds value with each iteration, kind of like JavaScript’s event loop. And it works.

Kane Baccigalupi

gSchool, Galvanize

Kane Baccigalupi has been building technology-based startups since 2005. She has held a variety of roles from Founder/CTO, to Agile Development Consultant. Before working in the startup world, she did engineering work on the largest particle accelerator in the world. She went to school for Mechanical Engineering at Berkeley, and Fine Art at the San Francisco Art Institute.

Sponsors

For exhibition and sponsorship opportunities at Fluent conference, contact Sharon Cordesse at (707) 827-7065 or scordesse@oreilly.com

Download the Fluent Sponsor/Exhibitor Prospectus

For information on trade opportunities with O'Reilly conferences contact Jaimey Walking Bear at mediapartners
@oreilly.com

View a complete list of Fluent 2013 contacts