I doubt that the "programmer" gets to change the requirement. It was probably set by some "systems engineer", "data analyst" or "scientist" and handed down, like in the old days...
Yes, as "programmer" with a Level-C badge I can neither do criticism. I am an executor. The only things they accept is a note for some requirements that are not clear (and I have to say "they are not clear TO me, can't say they are wrong or too vague).
I know that part of the design comes from someone with an higher user-level than me, i.g. "systems engineer", "data analyst", "scientist" ... who knows? I can't interface directly with them, from my console their comments are not catch directly, I only get echos from the information propagation - from my question, to the answer - through the rigid hierarchy, and it's always a one-way divine revelation from outer space entities with a god certificate.
Anyway, my email can't physically reach their server because even the internal lan needs a user-level to operate. I can interface only to a guy in the middle, who will interface with someone higher than me in the hierarchy, who will interface to someone higher in the hierarchy, .... until someone who has a user-level badget that allows him to enter into the divine circle of those who do "the design"!
The development chain follows the command chain, thus it is unable to bend or be forced out of shape. Not flexible, and forget democracy. Someone gives orders, and you have to obey. Someone gives requirements, and you have to code.
I usually don't know more details than how many they want to give (usually ... a few, and it's not useful to do your job, but you can't question), I only know that they use the tool "
Stood" as support for AADL design, and this tool uses Ada and artificial intelligence that implies tons of statistical data used in the process