Do You Wear A Bra? The Truth About Being A Woman Programmer

sexism-picture

I asked my coworker politely if he could remove the bra descriptions and mock bra products from our base project template.

Without even a hint of concern, he asked, “Do you wear a bra?”

“That’s not a question appropriate for work,” I said.

“Do you wear a bra?” he persisted.

It’s not just that he asked it in the hearing range of 2/3 of our development team, consisting of all males except myself, and that all eyes and ears were tuned in to our conversation at this moment from the instant the “b” word was mentioned.

It’s also the fact that while we were team-coding a few weeks prior, he sat next to me and browsed the Target website’s bra section, knowing I could see the screen full of scantily clad women.

It’s also the fact that when I said, “Please make sure those products don’t end up in our base template,” he assured me they wouldn’t. He lied.

But this was only the tip of the iceberg. In my tenure as a computer programmer, I’ve been the recipient of the following remarks (and not all just at one company, and not all are listed here):

“We’re outsourcing your job to India. You should consider just staying at home with the kids. Motherhood is a wonderful thing.”

“She’s probably just got PMS.”

“Do you need me to accompany you to the bathroom? You know, you could be raped on your way there.”

“We should put porn on her computer while she’s getting coffee.”

“Woman, go to the kitchen and get me a snack.”

“You’re an HR risk.”

“No, you can’t come with us for lunch, that would be an HR liability.”

“How’s that sexy software coming along?”

In response to my question about who would be replacing the “back end” developer who had moved, on, “Oh, we have all the confidence in the world that you can service all the back end needs of the entire team by yourself.”

“What if I want to get my wife fake breasts?”

“Wow, you’re really fertile!”

In response to me saying that no woman would feel comfortable in the development atmosphere at a particular company, “Well, you were our experiment.”

mm

These are overtly offensive comments. But guys, let’s face it. Sexism isn’t just about that unprofessional titter. It’s about the condescension and lack of respect we women experience in the field on a daily basis. I say “we” because it’s not just me. A female friend of mine, who was recently managing a team of developers, told one of them not to put business logic in a stored procedure. He went above her head to her boss, who told him to go ahead and put it in the stored procedure, “because that’s the way we’ve always done it”–as in, she’s just a girl, she doesn’t know what she’s talking about. Or, when she tried to save the moment when her boss made a horribly insensitive remark about a segment of society, he rolled his eyes in front of everyone, dismissing her concern rudely, showing all those lower in the chain that she wasn’t respected. And then, during her first one on one meeting with the team members, an ex-marine came in the door with her resume printed up, and his printed up, and said that he was more qualified for her job than she was–apparently oblivious to the fact that if that had been true, he would have been hired for it and not she. While these examples may not shout “SEXISM!” as blatantly as the sexual comments, they occurred in a culture of bullying, which can be its own form of sexism.

When I’ve been at the brunt of this type of dismissive, arrogant lack of respect for women as computer scientists, I’ve suddenly felt that simply because I have a vagina, I’m seen as an “un-equal.” Do you forget, simply because I’m a woman, that yes, I have a brain, and that yes, I can code elegantly and efficiently? It’s so hard not to throw in “probably better than you” at the end of the last sentence. But this isn’t about competition. It’s about a lack of team work and respect in our field. I don’t care if I’m the worst coder you’ve ever met. Make your grudge about that, not about the fact that I’m a woman for pete’s sake.

Understand where I’m coming from–I’m not a feminazi or even a feminist, and I’m not advocating here or anywhere else that women should be “she-men” and men should be sensitive pansies. The blatant truth is that I’m a professional woman caught in one of the few sectors of the work force left that refuses to leave the 1950s behind. And I’m freaking sick of the sexism in our field. The “brogrammer” mentality is not only aggravating, men, but paramount to living in the stone age. How can you take pride in being a part of such a technologically advanced field, and yet allow this kind of outdated, absurd behavior toward women to rule the development environments you work in? You wouldn’t treat your wife or your sister or your mother like that, or allow them to be treated like that. Not only is it unprofessional, it’s beneath you.

You can do better.

So, what do I want? The answer is, I want a few things from you men and a few things from us women to get us beyond this bottleneck that prevents teamwork and productivity.

Men:

  • Don’t say things to your buddies or to women developers that you wouldn’t say to your mother. (FYI, asking whether or not your coworker is wearing a bra is inappropriate. “Frenching the Hooker” is not an acceptable work IM status.  In general, do not mention any part of the female body, particularly if it begins with “b,” and refrain from all 8th grade humor. Don’t mention strip clubs, your online porn habit, or what you did last night. Never mention PMS. Etc.)
  • If you are in doubt about whether or not some comment you are about to make is inappropriate, DON’T SAY IT.
  • Inquire about our thoughts regarding team policy, code policy, code strategy, etc., and take our answers seriously.

dismissive

  • Don’t be dismissive.
  • Don’t treat us like “one of the guys.” Treat us as intellectual equals, and as ladies.
  • Don’t say the “F” word. In fact, don’t swear–it’s just plain unprofessional.
  • If another team member engages in sexism toward a female team mate, don’t stand for it. Be a man and stand up for her.

2406503712_ca541bba97_z1

Women,

  • Don’t dress suggestively. This will make anyone, including other women, cease to respect you.
  • Don’t dress like men. We aren’t men. We are ladies. The minute you buy into the lie that we should be “like one of the guys,” all the boundaries become blurred, and it opens you up to being mistreated.

oneofthechaps

  • Don’t take it. Realize that you are a human being worthy of respect, and that nothing should make you feel like less. Don’t make excuses. Then, gently educate whoever just insulted you or made you feel less: “John, what you just said made me feel like you see me as inferior.” Sometimes, a man really has no idea that what he said was sexist, and you have to be patient and point these things out. If it continues, take it to HR. But always, always stand up for yourself.
  • If the management is sexist, leave the company. Management sets the tone for the rest of the organization. If it’s rotten at the top, it’s rotten to the core, right down to the cubicle next to you.
  • Don’t work for a company that outsources its HR, or whose HR department is flimsy. On the flip side, don’t take every stupid thing a man says to HR. Use that recourse wisely. For instance, if you find yourself in tears, you’ve waited too long.
  • Don’t hold grudges. Carrying the poison of the pain you’ve experienced as a result of sexist treatment from one job to another can work against you. Forgive and move on.

It’s only been by virtue of experience that I’ve gotten what I wanted: an innovative, respectful team with an amazing company poised to skyrocket. In my interview, I said, “I want to be seen as an intellectual equal, and still be treated as a lady.” And you know what? That is exactly what I got.

And I know the company I’m with is going to continue to succeed, precisely because of the awesome team we’re building,  in which sexism doesn’t have any part.

menofquality

Now, let’s put this garbage behind us and write some freaking awesome code.

Permalink: http://thecodergirl.wordpress.com/2012/12/16/do-you-wear-a-…man-programmer/ ‎

Save Yourself From MyBatis Hell

* This has been sitting in my unpublished posts since February. Time to get it out there! Some of the images look weird, just click to view them.

 

This is the story of how to save yourself from some MyBatis hell.

I had a class called Row:

And a class called ParameterMap:

And a MyBatis map to call a stored procedure to populate an IList of type Row:

The stored procedure was called via a repository, whose test looked like:

When I ran this test, I kept getting this seemingly incorrect error message (“Unable to optimize create instance: Count not find public constructor matching specified argument for type “Row”):

This led me to tons of crazy troubleshooting to see where the following two things differed:

NOW, FOR THE CRUX OF THE MATTER:

The way I solved this and got to the true error was…
By adding a parameterless constructor to my Row class:

Then I ran my repo test again, resulting in the following USEFUL error message:

This led me to examine the sproc, and I noticed that:

DOES NOT EQUAL

Once I changed the casing to “DistrictID,” voila:

THE End.

The moral of the story is: Add a parameterless constructor to the class in question if you get that bogus first error about an incorrect constructor.

DevTalk: The Zeroth Episode

Today I had a blast getting together with fellow blogger and tech colleague, Jeff Vera (aka, the barebonescoder). We decided to start a podcast/videocast series to discuss tech topics and to begin conversations among developers, especially those in the Tampa Bay area.

Though neither of us had done something like this before, we asked ourselves, “How hard could it be?” Answer: Very easy.

It turned out that all we needed was a laptop with a webcam, two bar stools, and a lot of patience with each other as we moved through blooper after blooper onscreen. Eventually we jotted down the initial flow we wanted to follow, and got the time down under ten minutes so we could post it on youtube. Our topic was innocuous enough: blogging.

While this initial podcast was meant to help us “get our feet wet”, we do have a vision for the series, so stay tuned. I’ll be posting information about upcoming topics so you can weigh in before or during the broadcast. If you’d like to be a guest on the series, email me and we’ll skype you in.

Our next topic will be: Women in Software Development.

Permalink: http://thecodergirl.wordpress.com/2011/12/10/devtalk-the-zeroth-episode/ 

Why I Love to Code

I’m a passionate person, pouring my heart and soul into everything I do, including my profession as a software developer. I don’t just sit around and write IF statements and loops all day (like we did in college), or SELECT statements, or lame SVN commit messages (although sometimes those slip out when I’m not looking). I’m not in this for the money, prestige, or political power.

For me, it’s about the thrill of the chase.

I’m a lover of mysteries with a penchant for puzzles and an addiction to problem solving. The fires of this passion were first stoked when, at the age of twelve, I discovered the fictional detective Sherlock Holmes and ravenously devoured the entire series of whodunits in record time. Like a hound fresh on the trail of his quarry, I followed the clues with an electric anticipation, attempting to deduce the solution to the puzzle, the question, the mystery before it was revealed. Unfortunately and alas, this led to a rather unrequited love affair with a fictional character, whose brain I was hopefully smitten with. But at twelve, those things are bound to happen and I got over the fact that we could never be together.

This first affair with mystery set me on an irrevocable path toward problem solving–a path that has been refined through the years by the fine-tuning inherent in studious endeavors. In high school, the passion burst to life again when I began studying chemistry, particularly the periodic table of elements. I remember being fascinated with the fact that the structure and order of the periodic table allowed scientists to deduce the existence and properties of elements that had yet to be actually discovered. Equations and their answers, math and the problems presented, never failed to catapult me into the thrill of the chase in pursuit of their answer.

Since then, leisure time for me has always included some kind of puzzle or game, from crosswords to sudoku to scrabble to boggle to jigsaws to reading stories and watching them unfold. What I find so appealing about a puzzle is not only the pure satisfaction that answering it brings, but also the pleasure experienced in pursuit of that answer. In this sense, the journey is just as important and rewarding as the end. I think Thomas Aquinas put it best when he said that play is valuable because we do it for its own sake, and the result of play is joy. At least, he said something like that. And he’s right.

So what does this have to do with writing code? Everything. Coding is formulating solutions, it is building structures, it is conducting them in a symphony of harmonious accord. Architecture is akin to a tetris puzzle where every piece has its optimal place. Debugging is like following the threads of a mystery, picking up clues until the culprit is apprehended. Production support can be data sleuthing toward an answer. Yes, some parts of development can be tedious, boring, maddening; but then the challenge becomes turning those aspects of it into opportunities for discovery and growth. The passion is in the fun of it.

Permalink:  http://thecodergirl.wordpress.com/2011/12/07/why-i-love-to-code/