I had this argument as a mid-level developer working on a government project. In hindsight it seems about as important an argument as who is the best Dr. Who.
The forms we were building all used the term “gender” in place of “sex” which I thought was goofy, because the rationale was that the word “sex” was not politically correct, despite the possible values being “male/female” versus “masculine/feminine”. I just did what they asked me to and shrugged my shoulders. Not even close to the top of the list of bad government design decisions on that project.
How about leaving gender as an enumerated numeric data type and letting the customer worry about how to label the values?
I worked on a medical application where there were valid reasons to have other values in the place of “Male/Female”, so I created an open-ended enumeration started with “Male/Female” and walked away. Unless there are any evaluations required, this is a moot argument. If there are evaluations required, why not (JSON):
[
{
id: 0,
label: 'Male',
evaluateAs: 0,
},
{
id: 1,
label: 'Female',
evaluateAs: 1,
},
{
id: 2,
label: 'Male, born Female',
evaluateAs: 0
},
{
id: 3,
label: 'Female, born Male',
avaluateAs: 1
}
]
But to make the developer guidelines an argument about conservative vs. liberal and political correctness is simply obnoxious, is wholly unprofessional, and misses the point of the post, which is about testing code, not about the politically correct customer and how stupid he may or may not be.