Tuesday, August 08, 2017

Jobs, Not Jail Sentences

The Google employee who wrote a document opposing efforts within Google to increase diversity among the workforce has been fired.

His document was released in full on Gizmodo, a tech website:
In the memo, which is the personal opinion of a male Google employee and is titled “Google’s Ideological Echo Chamber,” the author argues that women are underrepresented in tech not because they face bias and discrimination in the workplace, but because of inherent psychological differences between men and women. “We need to stop assuming that gender gaps imply sexism,” he writes, going on to argue that Google’s educational programs for young women may be misguided. 
I haven't read the whole thing, but it's clear this person is a typical conservative who has a ton of preconceptions about how the world works and is trying to justify the higher position of men by stating those preconceptions as facts, while falsely pigeonholing all women into the same stereotype.

This section, in particular, tries to justify why men should get paid more and have higher positions than women:
We always ask why we don’t see women in top leadership positions, but we never ask why we see so many men in these jobs. These positions often require long, stressful hours that may not be worth it if you want a balanced and fulfilling life.
Yes, we do too ask why there are so many men in these jobs, and we know the answer: it's called "the good old boy network."

His premise is false on two fronts: first, most jobs do not require people to put in all those long hours, especially as programmers (more on this below). These are jobs, not jail sentences.

Second, there are women who are willing to work long hours. My wife put in more hours a week than I did because her company was filled with conservative men who had the same stupid preconceptions as this Google employee.

I worked as a programmer for more than 20 years. I worked with all kinds of people: American men, American women, Israeli men, Ukrainian men, Indian men, Dominican men, black men, white women, black women, Indian women, gay men, lesbian women, you name it. Most of them were regular people who just were doing a job for money. They would finish their work and go home to their spouses, kids, pets and hobbies.

Some programmers didn't work that way. They would spend all their time at work. They ate breakfast, lunch and dinner at work. Their only friends were at work. These people typically thought of themselves as the best coders simply because they spent the most time at work.

This has become the dominant mindset in Silicon Valley and among programmers in general.

It is a completely false premise. Number of hours spent on a task is not an indicator of competence. It is often inversely proportional: the longer it takes someone to do something, the less competent they are.

As a programmer I would work eight or nine hours a day. I wrote design documents, broke the project up into detailed tasks, then made time estimates for each one separately. When it was time to start coding I would work on the interfaces first, then on the hardest and most complex parts, getting them out of the way at the start. I would write code in small pieces, compile it repeatedly to find syntax errors, then test it immediately. Writing code and debugging code were the same task for me, a completely integrated process: I would find and eliminate most of my bugs within a few minutes.

The "stay at work all the time" guys operated differently. They would stay late into the night and sometimes pull all-nighters. They didn't like writing detailed design documents, or breaking down projects into small tasks, or making detailed time estimates: they would try estimate how long an entire project would take in one fell swoop, without segmenting it up, based on their vast "experience."

They were always "big picture guys." They would spend a lot of their time at work writing "tools" unrelated to the project at hand, investigating third-party libraries to "improve productivity," experimenting with other programming languages, and were always on the vanguard of the next big thing.

They coded differently too. They would write hundreds and hundreds of lines of code at a sitting, writing for several days before even trying to compile it. It would take them hours to fix the compilation errors alone. Debugging all that code could take weeks, with all the interactions between various parts.

These guys might have been work at 10 or 12 or 16 hours a day, but they weren't doing a full eight hours of work. They spent a lot of time reading email and in online "newsgroups" discussing programming languages, and asking and answering programming questions for the community at large.

Because these guys didn't get enough sleep, and they didn't have any change of scenery, they were never operating at peak efficiency.

Towards the end of projects, my modules would generally be done on time. I would go home at the normal time. The "work all the time" guys would be behind. They would stay late at night, maybe pull a couple of all-night marathons trying to find a bug hidden in thousands of lines of untested code.

The most important thing I found when writing code was avoiding distractions: when your attention wanders you get bugs. You want your programmers 100% focused on the job. The "work all the time" guys claimed they could only focus when no one else was around, and that's why they had to work late.

The upshot is that you might get four to six hours of real work a day out of a guy like this, with all the extracurricular activities and the roadblocks they'd run into because they were too distracted during the day to get their work done, and too tired after everyone else went home to think straight.

But the fact is you're only going to get six or eight or 10 hours of decent code out of a person a day: beyond that it's diminishing returns. Any more and you're introducing more problems than than you're solving.

Now, this type of behavior isn't peculiar to programmers: we all know men like this. The sales guys who are always on the road, taking clients out to dinner and golf, in the break room talking about football. Schmoozing with the boss.

These guys aren't particularly good at their jobs: they're not very bright, or very charismatic. But they just keep slogging away. They're always there, looking busy, always hanging around, always jostling the boss's elbow to let them know they're on board.

Because so many men in business are this kind of schmoozing hanger-on, they have all convinced themselves that this lifestyle -- not the actual work itself -- is the requirement for the job.

This is the false narrative that drives the idea that women can't be good programmers, or good CEOs for that matter.

At its core, the justification for why these men should be in charge is essentially this: I served my time.

But jobs -- especially in technical fields -- are supposed to be based on competence. Not time served.

No comments: