Friday, April 10, 2009

Why I almost did a sys.exit()

I almost quit programming.

It was back in the late nineties, early aughts, when I found myself working at a start-up. We provided hosting and VPN solutions, and I was employed partly as a customer service person and a programmer. I was thrilled. After doing cookie cutter code in school and projects that were never seen again, I was finally going to do some code that would be used in live environment!

Our desks were arranged in x's, with one person in each section of the x. There were no barriers, as cubes were both evil and very expensive. As a result, we chatted a lot over the top of our monitors.

I got placed with some other developers, all male. We were discouraged from wearing headphones, as that meant we were passing up learning opportunities, so I got to hear everything the guys talked about. This was in the midst of the *nix wars, and these guys were sworn enemies on that front.

Every day, I got to hear about what was better: SuSE? CentOS? Red Hat? Solaris? Pure, unadulturated Unix dug up from Bell Labs? They had lots of ammunition, too. Which kernel compiled faster. Which had more updates. Which performed slightly better. Why the other person's bench tests sucked. Why the other person obviously didn't know what the hell he was doing if he had to recompile his kernel all the time. Why certain *nix distros cause cancer.

It was so. F'ing. Boring.

Being hormonal and under a deadline (I was about seven months pregnant), I did finally threaten to find all the burned *nix disks, break them into shards, and stab them into their eyeballs. That moved the fights into email. At least the heated glares I could ignore.

When most of us were laid off some months later, I seriously considered whether I wanted the rest of my life to be sandwiched between two long-hairs that can't agree to disagree. I loved programming, but did I love the people enough?

After a long side-jaunt, I came into a job at NASA via pydanny. It wasn't a programming job. I was simply to be a requirements gatherer and needs analyzer. I was happy in that capacity, and probably would have stayed in that track had it not been for one thing:

Plone.

Say what you will about Plone, ye lovers of other frameworks, but of all things it may do right or wrong, it did one thing very right:

It got me back into the fold.

Pydanny was hot to use it for something, anything. We won approval to go ahead with using Plone for a new website. I was the requirements gatherer. Danny was the coder. After a while, he encouraged me to pick up Python so I could join him in coding as well. I did so, and loved it. Adored it. Got scolded because I was stepping outside of my career path. I didn't have to worry about all the piddly discussions about kernals or whether one algorithm was a smidgen faster than another. I could just code. And make things work.

Maybe this should be called "How to get more women into Python, part II." The sentiment of 'why are we arguing about this crap' has been fairly universal when it comes to the women I've spoken to. They've been willing to learn new things, learn best practices, but one thing they have not been willing to do is argue about which module is slightly faster. We just want to get our work done. Because, lord knows, there's more to life than code.

Arguing isn't a bad thing. But if it's all you do, if the arguments span mealtimes, perhaps it's time to step back and think about if the energy the fight is taking isn't just getting in the way of doing cool stuff, and getting others to do cool stuff as well.

3 comments:

Tony Arkles said...

While I was in school, there was a small but loud group that would argue about the same kinds of things. At the time, it was annoying; now, I realize that it was also significantly missing the point!

It really doesn't matter which platform you're using, or which kernel, or which language runtime... so long as you're using tools that let you effectively achieve your goals. Additionally, it makes no difference if someone else wants to use a different set of tools to accomplish their goals. By no means should someone interpret a statement like "I like to use Plone" as "Framework X (which is not plone) is stupid and no one should use it"... although that seems to be the exact interpretation that some take.

Bob Haugen said...

Thank you.

This is not just a gender issue. I am an old man. I have a family. I am involved in social issues. And I like to code.

The current arguments about whose DCS is better leave me cold. I can easily get into arguments about user interaction or class-model issues, but yeah, if they interfere with lunch...

It might be what level of the stack you find most congenial, and when you find the right level, you will find congenial people? Or maybe it's whether the people have a life or not?

kcunning said...

Of course, two guys comment to agree with me :)

@Tony: I definitely agree. There's things I prefer to retain a bit of magic, as long as someone else takes care of it.

@bhaugen: I'd have to say, the guys engaged in the *nix wars most certainly did not have a life :)