posted 9 years ago
Chan,
What you are seeing is a manifestation of what happens generally
a) Men take to more risks at work than women in the work place
Men are more likely than women to take a riskier project, or go for a promotion that is out of their reach. I guess, when they are job hunting, men would be more likely to apply for that job they are not fully qualified for
b) Women, when they do take risks, are perceived more negatively than men
When men take risk, they are seen as go-getters. When women take risk, they are seen as rocking the boat. As a result, a man has more support from their friends and family to go for a riskier job, whereas a woman is more likely to not apply at all.
IMO, a job requirement is a list of things that the employer wants. However, that doesn't mean that it's a list of things that they "need". Many times, the manager may not be technical themselves, and you might know what they need better than they do. You can't expect them to be perfect.
Recently, I looked at the job requirement for a Dev Ops engineer at my job, and some of the requirements didn't make sense. I asked the manager, and she said "Oh they guy we are trying to replace has these qualifications, so I put these things in there". She wanted someone exactly like the guy who had left, so she took his resume and turned it into a job requirement.
Besides tech spec docs are not going to be perfect either, too! If you go to jobs and tell them, "I'm not able to work unless you give me perfectly written technical specifications", you are never going to get a job. No one is going to hire you. I have worked in this industry for 20 years, and I have not once relied on a tech spec. I have relied on my own ability to talk with the other person and understand their needs. I want to understand why I am doing something. Why is this person asking me to do this? Does he really need it, or does he think he needs it? How does my task contribute to the success of the whole project? Can the same thing be done better? Dealing with ambiguity is a big part of our jobs, and that applies to to job descriptions too. Really, if we had the ability to write tech specs unambiguously and perfectly, then we wouldn't need programmers. Someone can write a program that generates code from tech specs.
A big part of your job is to deal with ambiguity that is a natural part of any human endeavor. Typing out code is a much smaller part of your job.