I think these points are missing an important point that as a programmer it is part of your professional obligation to help create the requirements that you'll be working under to ensure that they are do able, make sense and will benefit your client. The way the original poster worded things it sounded as if things were completely out of his control. Obviously that's not true in any reasonable situation - I you were my teammate then I'd expect you to push back on things that don't make sense and help to guide things appropriately. Things still can still go badly but at least you'll have exercised your obligation to do a good job which is a larger issue than just having good code.