I want to fix the diversity on my event, help me!

If someone linked you this post is probable you are organizing an event where diversity and inclusivity is an issue and they want to help you fix that. If you want, you can jump to the subsection that better adjust to your case.

Remember: diversity is not a TL;DR, you probably need to read the full article to get a better grasp of what you need.

As usual: I'm going to focus on the gender gap because it's easier for me to talk in those terms, but similar strategies can be applied to any other under-represented group.

“The time is always right to do what is right.”

Martin Luther King

I was told I have a manel, what’s that?

A manel is a panel full of men (usually white and middle aged). Usually this manel is the main panel or the keynoters panel whose members are the most relevant/the most advertised speakers. They are the display case of your event and they may tell more about your event than you probably suspect.

Bonus track: Have you heard about the Techdel Test?

But I had no women speaker candidates for my event!

It doesn’t matter if it was a set of speakers chosen manually or if you sent a call for papers to the internet waiting for proposals. If you have few (or none) proposals that improve your diversity line-up, something went wrong. Because there are women (and PoC and functionally diverse speakers) out there. You just didn’t met them. But don’t worry, there’s many things you can do to improve it.

Asian woman with a laptop
There are more Women in Tech willing to go to events than you think WoCInTech

The key is on your network. It could be through personal face to face relationships, Twitter, LinkedIn, Facebook or even Instagram. But somehow you advertised your Call for Papers or searched for speakers and that was using a network. If your network is not diverse enough, you will never reach those people you want to reach.

If your network is based on a community or company, you can take a look at some hints.

A network grows slowly. Don’t rush here. You will have to invest time looking for the right connections to extend your reach.

Start with random seeds

It may be that your current network is so homogeneous, you don’t know where to start reaching out for under-represented voices. A quick way to work around this is to add random under-represented seeds to your network. Take a couple of hours to search for women (or members of your target under-represented group) on the internet that are related to your field/area. They may not be the most relevant. They may not say something you don’t already know. Those women can even be juniors and not very good at sharing what they know. But through them, on time, you will meet other members of that under-represented group which will be more relevant to you.

Even more: those juniors that doesn’t seem relevant right now, with proper sponsorship and mentorship, can become relevant figures on our industry in a couple of years. You can even help them yourself so they become the kind of speaker you are looking for. Remember: this is not a sprint, this is a long run.

Am I too late?

As said, your network will grow slowly. You can take some shortcuts but they won’t help you in the long run. Those shortcuts will probably take you to tokenism, on the best case. They may be patches that work for your current event, but don’t be fooled: we know they are patches. And that sums to your bad reviews.

Diversity and inclusivity is like security or accessibility: if you don’t design your architecture with them in mind, you will get a hard time later adding it.

As a general rule, if you start worrying about diversity after you launch your Call for Papers or you announce your first keynoters, you are too late. Inclusivity should be one of the main topics since the beginning. If it is not, you may make some decisions that will make your inclusivity harder to reach.

One common flaw is to choose a venue that is not accessible. You are already limiting the kind of people who can attend your event on the first steps.

I was told I told need a Code of Conduct, is that so?

Yes.

We are all civilized rational folks and we all understand what is right and what is wrong, right? I wish we were. That may work if you are on an homogeneous group. But different cultures have different points of view of what is a social acceptable behaviour and what is not.

For example, in Spain it is very common to give two kisses when saying hi to someone, even if it is the first time you meet that person. But that, as common as it is in Spain, is not a general rule on the rest of the world and it may be seen as aggressive. Never assume that your social rules are universal. Even if you run a local event, different social environments run by slightly different rules.

Why not write them down, just to make sure we are all on the same page? Why not write them down, so if someone is crossing the line, it is easier to point their behaviour and ask them to improve?

You can learn more about how to write a good CoC here.

My line-up of speakers is diverse, but not the attendees of my event

Usually, your event will have a better diversity after a few editions if you keep a consistent diverse set of speakers. If that’s not enough, consider if there’s something else you may be missing. It could be something simple like the already mentioned Code of Conduct (CoC) or it could be something more complex, like bad fame gained over the years. Don’t panic, all this has a solution.

“If I stop preaching to the choir, they would stop singing”

Martin Luther King

The most important thing is to be coherent and persistent. That will override any bad opinions your potential attendees may have. And it will generate good reviews that (don’t doubt it!) we will share among our peers, making them more favourable to join your event.

How do I know what is my flaw?

Reach to the current attendees that belong to under-represented groups and ask for feedback. They are the ones that survived to go to your event, but may give you some clues on why their pairs are not there. Don’t be afraid to ask, the worst thing that can happen is that they can’t help you.

Check things like time and date chosen, place, even the options for food and drink. Maybe your event is not child-friendly? Maybe your event collides with normal working time? There are many reasons why your potential attendees can’t attend. Is your venue accessible? Is it reachable by public transport?

Woman with a laptop
Even if you are not connected to us, we know each other and talk about your event #WoCInTech

Check how you look from the outside

Maybe you are advertising it on a way that is not attractive? It could be that your inclusivity is not clear. Or even worse: maybe your inclusivity is obviously missing. Use inclusive language and photos. Try to make your event attractive. Make it clear that you are open.

Maybe you already have some members of your targetted under-represented group in your network. But they suffer from Imposter Syndrome. You can sponsor them to make sure they are not left behind.

If all this fails, you can try other strategies like offering free tickets to under-represented groups. See next section for this.

There are no magic solution for diversity, each community has its idiosyncrasy that has to be taken care of. This is not an exhaustive article that covers everything, this is just a head up on where to start.

Free tickets on my event for under-represented groups!

This is a good approach to attract some under-represented group members. But don’t sell yourself cheap. Try to make some kind of competition, make yourself hard to catch, gamify it.

If you just offer free tickets on your website and social networks and don’t do anything to reach the under-represented groups, that’s a red flag for us. It means that you heard you have a problem, but are not really into fixing it. You just wait with your doors open to see if we enter, not really caring why is it we are not entering your event.

You may be tempted to offer the tickets to some community of under-represented folks and then delegate on them to place the tickets. Don’t just give them the tickets and assume it will work. Our communities are usually hand-full with many things, we may not be able to focus on your problem. Specially if you just delegate and forget.

We are not here to solve your problem. We can help you solve your problem. Because the problem is yours, not ours.

Travel Grant

If you are running a national or international event where your attendees usually travel, you might consider offering travel grants to your under-represented groups. This means: you may want to pay their travel costs to make sure they can make it to your event.

When you are trying to reach to under-represented communities that are somehow linked to having economic issues (for historical reasons, usually), this can come in handy. But it can be helpful for other under-represented groups that may need a last push to want to join your event.

Travel grants require some work. Not only to decide who and how much are you going to give, but also you require to collect the money first. You would be surprised how good a donation campaign may work. Some companies are also willing to donate and sponsor as long as they have some visibility on your event. Don’t see it as selling yourself to those companies: a mention thanking the donation is usually enough.

Hey, you are female, do you want to join my event?

Could be. Let’s talk.

But beware of tokenizing that female speaker you just reached. That won’t fix your problem and it will make us feel uncomfortable.

https://www.flickr.com/photos/wocintechchat
Do you mind if I tokenize you for my event? WoCInTech

Consider that if we have to travel and it has to come from our own money, we have a limited budget. And many events we may want to visit. So be prepared to receive a “no” if you can’t pay for the expenses (see travel grant section).

Even if you can pay for the expenses, preparing a talk is also a work that will come out of our free time. Don’t assume that just because we are WiT activist we are going to be on all events filling all the slots.

Can you help me fix the diversity problem of my event?

That’s a fair question. After reading this article you are sure you have a problem and are a bit overwhelmed. So you want someone who seems to know how to fix it to take the lead.

Let me ask you this: Why would I want to help you fix your problem?

If you have a good answer to that question, let’s talk. Consider, as in the previous section, that WiT activists are usually busy fighting against the gender gap. I am not going to waste my time with someone who don’t really care for inclusivity and diversity. But if your answer is good enough, why not?

And if you don’t have a good answer, are you willing to pay for the consultancy? Or give something in exchange? Before you ask for help, give at least one good reason to help you.

How can I get a diverse and inclusive team?

TL;DR: If you are really interested on improving the inclusivity and diversity on your team, you need more than a TL;DR

TL;DR: Ok, there is a video of latest gvSIG Festival on diversity that cover most of the contents here.

Why do we need inclusivity and diversity?

Do we really need to explain the problem of diversity? IT is mainly white and male. Even the most egalitarian person have biases due to have lived on a non egalitarian world and this reflects on our community. There are also society pressure to some groups of persons not to work on IT.

“True peace is not merely the absence of tension; it is the presence of justice.”

Martin Luther King

In short, diversity should just be a matter of Social Justice.

But if you are looking for more purely economical reasons, recent studies have shown that diverse teams are more efficient and provide more quality outputs [1][2]. This means that even when a company invest explicitly on improve their inclusivity and diversity, the return of investment is usually high. Investing in diversity is a win win situation, but it requires some deconstruction and some effort from all the people involved.

On this article, I am going to focus on women and the gender gap because that’s the issue I am most familiar with. Also, because as half the population everywhere is female, it is an easy aspect to quantify. But all content here can be extrapolated to any other under-represented group. Just extrapolate statistics and adapt numbers, when applies.

We know that the origin of the problem is probably not on your side: if fewer women study IT, how can half of your team be a women? But there are many things you can do to help leverage the issue.

The Warning Signs

Always check demographical status of your team. Are they all similar? Do they have the same backgrounds, same culture, same religion? Do they even have similar hobbies and family configuration? That’s suspicious. Society is not heterogeneous, and so shouldn’t your team be.

“We know through painful experience that freedom is never voluntarily given by the oppressor, it must be demanded by the oppressed.”

Martin Luther King

Compare your team with the society outside your team. Do demographics match? More than half of the population are women, are more than half of your team women? I bet it isn’t.

Group of people with high diversity
Does your team reflect the society? – #WOCInTech

Or maybe you have diversity on your team, but it is not stable: the persons that bring diversity to the team don’t stay long, you cannot retain their talent. That’s a huge sign that your environment is not comfortable for them, that they don’t feel part of the team.

A person is not diverse. Don’t tokenize.

Notice I said persons that bring diversity to your team and not “diverse person”. A person is not diverse. I am not diverse. I can bring diversity to a team that is different from me. Don’t tokenize. Don’t take that single person that is different from you and claim you are inclusive because you are friends.

Key Indicators for Diversity

One of the things you should do to increase diversity is define some key indicators to measure and quantify diversity. This can help you address the issue more easily and can help others know if your team is a safe space.

Don’t be shy showing your data. We know all companies have bad data at the start, what we are interested it is on the evolution of those numbers.

What to avoid

Don’t be like those companies that claimed that their diversity statistics were a “threat to competition” and “trade secrets”. That if they published their women employees they would be “stolen”.

First because that’s embarrassingly not true. And second because if you really fear your competitors may “steal” your employees, maybe you should offer them better benefits. Employees may leave because they don’t feel safe on your team or because they don’t feel valued.

Once you decide to publish your figures, don’t manipulate them.

Don’t be like that other company that has some pending trials accusing them for paying less to women. So their marketing team just published some statistics with a narrow cherry-picked analysis that has been widely published on media that claim that women are, in fact getting more bonuses than men.

Cherry-picking bonuses instead of checking the total salary and taking all variables into account. What accusations say is that they always offered women lower positions than what they should be offered according to their experience tables. As those positions have lower salaries, they also offered a bonus to compensate. Which means, women were mistreated: they were positioned on lower levels and compensated with bonuses to get the same salary as their male counterparts with no bonuses.

But hey, there is no gender gap because if you cherry pick the bonus data, women have high bonuses. Right?

So, not only women were losing the benefits associated to the level they belong. They were also not offered those extra bonuses their males were offered above the salary they were assigned.

Key Indicators for companies

The follow table is an example of a Key Indicator for gender gap. You can extrapolate to other under-represented groups based on the demographic statistics of the society around you.

Size of your companyWarning signs
Small (less than 20 employees)You have no women in your team
OR
You have only one woman (token)
MediumYou have less than 30% women
Big (more than 100 employees)You have less than 40% women

When doing this calculations, consider only your IT department. Hiring women on other departments (administration, cleaning, HR,…) is helpful but is not addressing the problem of the lack of women on IT. It only masks the problem.

The chosen percentages are different depending on the size of the company because the bigger the company is, the more they can invest on diversity.

Define different indicators, try to view the problem with different perspectives and approaches. Check not only that you have a good percentage of women, check also that they are evenly distributed among different levels. Are they all junior? Are they full or part time employees?

Now that we have measured the problem, what can we do about it?

You have to invest on diversity

Improving diversity and inclusivity on your team is not just a matter of good will. You have to invest time and resources to get it done right. To begin with, companies should train their personnel departments to know how to handle it. There are strategies on how to write and publish job offers, how to plan the interviews and how to follow up once you hire someone.

For smaller companies that have no HR/Personnel department, you should ask for advice to experts to know how to improve your processes. The cheapest strategy would be to look for resources yourself, but that will never be as effective as talking to some expert and getting an audit.

If you are an open source project or a not for profit community, you may not have money for training or hiring someone. You can then fallback to some fellow organization and ask for advice there, we can help you at least pointing to the biggest issues. But don’t forget that this comes with a cost, and free does not mean gratis. There should be some symbiotic relationship there to ensure sustainability.

Some tips on Closing the Gap

While you get some advice on your particular problem, here is a basic list of questions that can help you start brainstorming about how to improve the inclusivity in your team:

Women of Color working
Closing the gap – #WOCInTech

Do you have a Code of Conduct?

This is the first thing to check. Make sure there are clear red lines on what is an acceptable behaviour and what is not.

There are many codes you can use as baseline. Take your time to select one that applies better to your use case.

Make sure all your team have read and understood the full code. If some member of your team disagrees with your guidelines, make sure you talk about their disagreement.

On the best case, this Code of Conduct (CoC) is already being followed on your team and it is redundant and there will never be a report. But without a CoC, it may be that some people are creating a toxic atmosphere without even knowing it.

Do you have a safe workflow in case of problems?

Having a CoC is not enough if you can’t report problems. Always make sure that there is a clear, transparent and safe workflow for reporting incidents. As a base line, the consequences of reporting an issue can’t be worse than the issue itself. Protect the personal details of the reporters and make sure they are protected. Protect both parties of the incident and make sure all reports are taken seriously.

Do you have a Diversity Strategy Plan?

Define some goals and deadlines. Define how you want to achieve them. Assign resources to those goals.

You don’t have to be too ambitious, just make sure you make improvements. And if your strategy does not work, this plan can help you detect that, so you can sit again to define a new plan.

The speed on which you improve the diversity is not as important as making sure improvements are made.

When hiring

Go remote! Allowing flexibility will help you increment the pool of candidates to choose from. This is special for physically-challenged persons, family conciliation and similar situations where going to an office is not as simple as it looks like.

Use always inclusive language. Specially on job offers: they are your showcase to all possible candidates and you want to be as friendly and inclusive as you can. There are many tools you can use to check about your language. In time, inclusive language will come naturally to you, but until then, don’t hesitate and use them.

There are strategies to follow on job offers to make the more appealing. Following the MoSCoW method to define requirements of the job, adding a salary range, linking to your Diversity Plan and your CoC and, as said, use inclusive language.

On a similar candidate, hire the woman. And no, this is no discrimination against men, this is only compensating the already existing bias. There are many independent studies with different approaches that proves we have unconscious bias that make us evaluate better men than women (and white people better than people of colour). So when you look at two candidates that you evaluate as similar, you have to “unbias”. Consider if there may be any prejudgements you are making without knowing.

Make sure the team is safe BEFORE hiring

You feel ready to improve diversity on your team. So you open a job offer with inclusive language and look very carefully the CVs received to choose someone different that will improve diversity on your team.

Stop there. No matter how tempting it is, don’t start by hiring a junior.

There are many reasons why your team is not diverse. Are you sure you solved all of those problems already? Is your team ready? You don’t want to introduce a junior inexperienced woman on a team that is not used to diversity. Really, you don’t want that.

Instead, you can invest a bit more and start by hiring a pair: a senior and a junior. The senior already knows the industry and knows what to expect. And she can mentor the junior so she doesn’t feel so lonely. Make sure they are a good match and work together successfully.

Two women working
Hire by pairs – #WOCInTech

Don’t start by hiring a junior woman. Better by pairs: senior and junior

You may think this strategy is not what your company will benefit most. But remember again: the ROI of diversity is high. Even if you don’t really care if the women in your team are comfortable and want to stay, you want them to, because it is profitable for you.

Make sure the evolution is fair

Don’t push women to management, commercial or administrative tracks (unless they ask for it). It is very common to force women to pursue less technical tasks, something men don’t usually experience. Make sure you don’t have this bias and sponsor women on the IT track. If they survived to be on IT, it is because they want to be on IT.

Compare the evolution with the rest of your employees. Are you giving raises to everyone? Don’t forget to add some indicators here, make sure you don’t force women to jump to another job to advance.

Do you have former women employees? Ask for feedback! They have been there, they experienced it, they are the ones that know why you are leaking diversity.

Give voice to the under-represented

When you do an extra effort to give voice to the under-represented , you not only help them on their careers, you also normalize their presence and get the rest of the team used to consider them as equals.

On meetings, make sure everyone say at least something. When going to events, make sure everyone has a chance to present something. When making decisions, make sure everyone have a vote.

Event Listeners Personalizados en Java

Aunque el patrón Observer está implementado nativamente en Java, sometimes we need to make an event management that suits better our needs when using event listeners.

Some context

El problema del manejo de eventos es muy sencillo: Tenemos un objeto que va a ir cambiando de estado. Sin tocar su código, debemos ser capaces de "engancharlo" a otros objetos para que estén pendientes de estos cambios de estado y actúen en consecuencia. Este "enganche" debe poder activarse y desactivarse dinámicamente durante la ejecución.

To implement it we will use a static object, a class and an interface. The static object will be responsible for ensuring the relationships between observers and observables. It will also notify relevant changes to the objects concerned. To pass information during an event we use that class. The interfaces will make the distinction between objects observed and observable objects and any other objects on the application.

A real example

But the best way to see how event listeners works is through an example:

Las instancias de la clase MyCustomEvent serán las que porten la información de un observado a un observable cuando se produzca un evento. Esta clase deberá contener toda la información necesaria sobre ese evento. Por ejemplo, si el evento fuera un click del ratón, esta clase debería llevar datos tales como: coordenadas en la pantalla o el número de clicks. En concreto, nuestra clase de evento sólo contiene el objeto original que lanzó el evento.

import java.util.EventObject;
import java.util.LinkedList;
import java.util.List;

public class MyCustomEvent extends EventObject {

  private static final long serialVersionUID = 7383182229898306240L;

  private final MyCustomListener source;

  public MyCustomEvent (MyCustomListener OriginalSource) {
    super (OriginalSource);
    this.source = OriginalSource;
  }

 MyCustomListener public getSource () {
    this.source return;
  }
}

The static object that keeps the relations between observers and observables is MyCustomEventHandler. It is very important to use synchronization methods to avoid concurrency issues in multithreaded applications:

import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class MyCustomEventHandler {
  private static final Log log = LogFactory.getLog(MyCustomEventHandler.class);

  private static Map <MyCustomListener, Set > = new LinkedHashMap observable <MyCustomListener, Set > ();

  public static void fire (MyCustomEvent event) {
    log.trace ("fire (" + event + ")");
    try {
      Observers = getRemarks September (source);
      if (Observers! = null) {
        for (final MyCustomListener pl: Observers) {
          try {
            pl.fire (event);
          } catch (Throwable t) {
            log.error (t, t);
          }
        }
      }
    } catch (Throwable t) {
      log.error (t, t);
    }
  } 

  private static synchronized September getRemarks (MyCustomListener source) {
    observables.get return (source);
  }

/ **
* Register to watch to alert you when observable change
*
* @ Param observer
* @ Param observable
* /
  public static synchronized void register (MyCustomListener observer, MyCustomListener observable) {
    Observers getRemarks September = (observable);
    if (null == observers) {
      observers = new HashSet();
    }
    observers.add(observer);
    observables.put(observable, Observers);
  }

/ **
* Deregister not become observers to alert you when observable
* Modify
*
* @ Param observer
* @ Param observable
* /
  public static synchronized void deregister (MyCustomListener observer, MyCustomListener observable) {
    Observers getRemarks September = (observable);
    if (null == Observers) {
      Observers = new HashSet ();
    }
    observers.remove (observer);
    observables.put (observable, Observers);
  }
}

Tanto los objetos observables como los objetos observadores tienen que implementar la interfaz MyCustomListener. Esta interfaz obliga a implementar el método fire(MyCustomEvent event) . En los observables, esta función será la encargada de llamar a MyCustomEventHandler. En los observadores, esta función será llamada cuando se lance un evento de su objeto observado.

Actually, it would be convenient to separate the interface into two: one for observers and another for observables. If an object wants to be both observer and observed, it may have problems with this system. But for simplicity for the example we have chosen this implementation.

import java.util.EventListener;

public interface extends EventListener {MyCustomListener
  public void fire (MyCustomEvent event);
}

Si quisiéramos tener diferentes tipos de eventos (parecido a como funciona el MouseListener), lo único que necesitaríamos es ampliar la interfaz MyCustomListener con todas las funcionalidades que queremos que tenga:

import java.util.EventListener;

public interface MyCustomListener extends EventListener {
  public void fireObjectRecycled (MyCustomEvent event);
  public void fireObjectRefreshed (MyCustomEvent event);
  public void fireObjectUpdated (MyCustomEvent event);
}

Así mismo, podríamos usar diferentes clases derivadas de MyCustomEvent para cada una de estas funcionalidades.

We have to modify the static object MyCustomEventHandler to launch the different events.

Referencias: Hilo donde se discute este tipo de implementación de Event Handler