1. If you inverted this equation, it would be pretty bad (can I create a list of "white male" engineers to hire). Do we have a rational reason why we should be discriminating against certain groups and not others?
2. You are hiring based on gender, rather than purely on skills. This has the chance to make teams function less well, if they believe someone was hired not due to merit, but merely on gender. This could also make the person hired feel unworthy if they think it was only due to gender. In the worst case this could make team / company performance worse. Only a company who can spare efficiency could use this policy. The best would be to take the best possible candidates, some of whom are bound to be female (unless you presume there are no qualified female engineers).
3. Historically programming and computer field was dominated by women, we don't fully understand the reason for the shift, so fixing things at the endpoint (hiring) may or may not be "fixing" the root of the problem (possibly education bias?). If you can't explain why the situation is as it is, then you're just changing random lines of code and hoping that each "commit" will fix the bug, even though you have no idea why its broken.
4. Every situation humans find themselves in is the result of an unbroken chain of historic conditions, but attempting to correct for it usually creates more problems due to arbitrary decisions, which fail to account for all those causes, and which result in unforseen future consequences. The best policy given that you don't know anything about those circumstances is meritocracy (just hire the best). This allows those who were disadvantaged to eventually come to equal footing (we take our foot off the gas of arbitrary discrimination), but also means that we aren't making things worse due to ignorance (e.g. the daughter of a wealthy engineer with admission to ivy league tech program vs being "while male" the son of poor russian immigrants with no education, being "woman" here isn't the disadvantaged state).